Spaces:
Sleeping
Sleeping
| <html lang="uz"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <meta name="theme-color" content="#0D1F23"> | |
| <meta name="description" | |
| content="M-TEXTILE katalogi β Barcha kiyim-kechak mahsulotlarini ko'ring, filtrlang va xarid qiling."> | |
| <title>Katalog β M-TEXTILE</title> | |
| <link rel="stylesheet" href="css/global.css"> | |
| <link rel="stylesheet" href="css/components.css"> | |
| <link rel="stylesheet" href="css/pages.css"> | |
| <link rel="stylesheet" href="css/premium.css"> | |
| <link rel="manifest" href="manifest.json"> | |
| <!-- AOS CSS --> | |
| <link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet"> | |
| </head> | |
| <body> | |
| <!-- Global Preloader --> | |
| <div id="global-preloader" class="preloader"> | |
| <div class="preloader-spinner"></div> | |
| </div> | |
| <div class="page-wrapper"> | |
| <div class="page-content"> | |
| <section class="section-padding" style="padding-top: calc(var(--navbar-height) + 2rem);"> | |
| <div class="container"> | |
| <div class="section-header" style="margin-bottom: 2rem;"> | |
| <h2 id="catalogTitle">Barcha Mahsulotlar</h2> | |
| <p class="section-subtitle" id="catalogSubtitle">Eng sifatli kiyim-kechak mahsulotlari</p> | |
| </div> | |
| <div class="filter-overlay" id="filterOverlay"></div> | |
| <div class="catalog-layout"> | |
| <!-- Sidebar Filters --> | |
| <aside class="catalog-sidebar" id="filterSidebar"> | |
| <div | |
| style="display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;"> | |
| <h3 style="font-size:1.1rem;">Filtrlar</h3> | |
| <button class="btn btn-ghost btn-sm" id="clearFilters">Tozalash</button> | |
| </div> | |
| <div class="filter-section"> | |
| <h4 class="filter-title">Kategoriya</h4> | |
| <div class="filter-options" id="filterCategory"></div> | |
| </div> | |
| <div class="filter-section"> | |
| <h4 class="filter-title">Narx diapazoni</h4> | |
| <div class="price-range"> | |
| <input type="number" placeholder="Min" id="priceMin" step="10000"> | |
| <span style="color:var(--clr-gray)">β</span> | |
| <input type="number" placeholder="Max" id="priceMax" step="10000"> | |
| </div> | |
| <button class="btn btn-sm btn-secondary mt-md" style="width:100%" | |
| id="applyPrice">Qo'llash</button> | |
| </div> | |
| <div class="filter-section"> | |
| <h4 class="filter-title">O'lcham</h4> | |
| <div class="size-selector" id="filterSizes"></div> | |
| </div> | |
| <div class="filter-section"> | |
| <h4 class="filter-title">Rang</h4> | |
| <div class="color-selector" id="filterColors"></div> | |
| </div> | |
| <div class="filter-section"> | |
| <div class="filter-options"> | |
| <label class="filter-option" id="filterDiscount"> | |
| <div class="filter-checkbox"></div> | |
| <span>Faqat chegirmali</span> | |
| </label> | |
| </div> | |
| </div> | |
| </aside> | |
| <!-- Products Grid --> | |
| <div> | |
| <div class="catalog-toolbar"> | |
| <div> | |
| <span class="catalog-count" id="productCount">0 ta mahsulot</span> | |
| <button class="btn btn-sm btn-outline" id="mobileFilterBtn" | |
| style="display:none;margin-left:0.5rem;"> | |
| Filtrlar | |
| </button> | |
| </div> | |
| <div class="catalog-sort-group"> | |
| <select class="form-input" id="sortSelect" | |
| style="width:auto;padding:0.5rem 2.5rem 0.5rem 0.75rem;font-size:0.8rem;"> | |
| <option value="default">Standart</option> | |
| <option value="price-asc">Narx β</option> | |
| <option value="price-desc">Narx β</option> | |
| <option value="rating">Reyting</option> | |
| <option value="newest">Yangi</option> | |
| <option value="discount">Chegirma</option> | |
| </select> | |
| <div class="view-toggle hide-mobile"> | |
| <button class="view-btn active" id="gridViewBtn" title="Grid">β¦</button> | |
| <button class="view-btn" id="listViewBtn" title="List">β°</button> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="products-grid" id="productsGrid"></div> | |
| <div id="noResults" style="display:none;"> | |
| <div class="empty-state"> | |
| <div class="empty-state-icon">π</div> | |
| <h3 class="empty-state-title">Mahsulot topilmadi</h3> | |
| <p class="empty-state-text">Filtrlarni o'zgartirib ko'ring</p> | |
| <button class="btn btn-primary" onclick="clearAllFilters()">Filtrlarni | |
| tozalash</button> | |
| </div> | |
| </div> | |
| <!-- Pagination --> | |
| <div class="flex justify-center gap-sm mt-2xl" id="pagination"></div> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| </div> | |
| </div> | |
| <script src="js/products.js"></script> | |
| <script src="https://www.gstatic.com/firebasejs/10.12.0/firebase-app-compat.js"></script> | |
| <script src="https://www.gstatic.com/firebasejs/10.12.0/firebase-auth-compat.js"></script> | |
| <script src="js/firebase-config.js"></script> | |
| <script src="js/api.js"></script> | |
| <script src="js/store.js"></script> | |
| <script src="js/app.js"></script> | |
| <script src="js/catalog.js"></script> | |
| <script> | |
| if ('serviceWorker' in navigator) navigator.serviceWorker.register('sw.js').then(() => console.log('SW Registered')).catch(e => console.error('SW Error', e)); | |
| </script> | |
| <!-- AOS JS --> | |
| <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script> | |
| </body> | |
| </html> |