${item.title}
69 |${item.description}
70 | 71 |├── assets ├── css │ ├── catalog.css │ └── style.css ├── images │ ├── author.png │ ├── blog-1.png │ ├── blog-2.png │ ├── blog-3.png │ ├── blog-4.png │ ├── blog-5.png │ ├── blog-6.png │ ├── blog-7.png │ ├── blog-8.png │ ├── blog-9.png │ ├── edited.png │ ├── hero.png │ ├── blog-10.png │ ├── favicon.ico │ ├── pattern.png │ ├── logo-dark.svg │ └── logo-light.svg └── js │ └── script.js ├── catalog.html └── index.html /assets/css/catalog.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/author.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VIPSHAKH/DevCatalog/HEAD/assets/images/author.png -------------------------------------------------------------------------------- /assets/images/blog-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VIPSHAKH/DevCatalog/HEAD/assets/images/blog-1.png -------------------------------------------------------------------------------- /assets/images/blog-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VIPSHAKH/DevCatalog/HEAD/assets/images/blog-2.png -------------------------------------------------------------------------------- /assets/images/blog-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VIPSHAKH/DevCatalog/HEAD/assets/images/blog-3.png -------------------------------------------------------------------------------- /assets/images/blog-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VIPSHAKH/DevCatalog/HEAD/assets/images/blog-4.png -------------------------------------------------------------------------------- /assets/images/blog-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VIPSHAKH/DevCatalog/HEAD/assets/images/blog-5.png -------------------------------------------------------------------------------- /assets/images/blog-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VIPSHAKH/DevCatalog/HEAD/assets/images/blog-6.png -------------------------------------------------------------------------------- /assets/images/blog-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VIPSHAKH/DevCatalog/HEAD/assets/images/blog-7.png -------------------------------------------------------------------------------- /assets/images/blog-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VIPSHAKH/DevCatalog/HEAD/assets/images/blog-8.png -------------------------------------------------------------------------------- /assets/images/blog-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VIPSHAKH/DevCatalog/HEAD/assets/images/blog-9.png -------------------------------------------------------------------------------- /assets/images/edited.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VIPSHAKH/DevCatalog/HEAD/assets/images/edited.png -------------------------------------------------------------------------------- /assets/images/hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VIPSHAKH/DevCatalog/HEAD/assets/images/hero.png -------------------------------------------------------------------------------- /assets/images/blog-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VIPSHAKH/DevCatalog/HEAD/assets/images/blog-10.png -------------------------------------------------------------------------------- /assets/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VIPSHAKH/DevCatalog/HEAD/assets/images/favicon.ico -------------------------------------------------------------------------------- /assets/images/pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VIPSHAKH/DevCatalog/HEAD/assets/images/pattern.png -------------------------------------------------------------------------------- /assets/js/script.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // navbar variables 4 | const nav = document.querySelector('.mobile-nav'); 5 | const navMenuBtn = document.querySelector('.nav-menu-btn'); 6 | const navCloseBtn = document.querySelector('.nav-close-btn'); 7 | 8 | 9 | // navToggle function 10 | const navToggleFunc = function () { nav.classList.toggle('active'); } 11 | 12 | navMenuBtn.addEventListener('click', navToggleFunc); 13 | navCloseBtn.addEventListener('click', navToggleFunc); 14 | 15 | 16 | 17 | // theme toggle variables 18 | const themeBtn = document.querySelectorAll('.theme-btn'); 19 | 20 | 21 | for (let i = 0; i < themeBtn.length; i++) { 22 | 23 | themeBtn[i].addEventListener('click', function () { 24 | 25 | // toggle `light-theme` & `dark-theme` class from `body` 26 | // when clicked `theme-btn` 27 | document.body.classList.toggle('dark-theme'); 28 | document.body.classList.toggle('light-theme'); 29 | 30 | 31 | for (let i = 0; i < themeBtn.length; i++) { 32 | 33 | // When the `theme-btn` is clicked, 34 | // it toggles classes between `light` & `dark` for all `theme-btn`. 35 | themeBtn[i].classList.toggle('dark'); 36 | themeBtn[i].classList.toggle('light'); 37 | 38 | } 39 | 40 | }) 41 | 42 | } 43 | 44 | const data = [ 45 | { title: "Manu.uz", category: "portfolio", url: "https://manu.uz", img: "https://manu.uz/images/person1.jpg", description: "Texnologiyalardan zavqlanuvchi dasturchi." }, 46 | { title: "ShopMax", category: "ecommerce", url: "https://shopmax.uz", img: "https://via.placeholder.com/250", description: "Onlayn savdo platformasi." }, 47 | { title: "TechBlog", category: "blog", url: "https://techblog.uz", img: "https://via.placeholder.com/250", description: "Texnologiyalarga oid maqolalar." } 48 | ]; 49 | 50 | const catalogItems = document.getElementById("catalogItems"); 51 | const searchBar = document.getElementById("searchBar"); 52 | const categoryFilter = document.getElementById("categoryFilter"); 53 | 54 | function renderItems(filterText = "", filterCategory = "all") { 55 | catalogItems.innerHTML = ""; 56 | data.filter(item => 57 | (filterCategory === "all" || item.category === filterCategory) && 58 | item.title.toLowerCase().includes(filterText.toLowerCase()) 59 | ).forEach(item => { 60 | const card = document.createElement("div"); 61 | card.className = "blog-card"; 62 | card.innerHTML = ` 63 |
66 | 72 | `; 73 | catalogItems.appendChild(card); 74 | }); 75 | } 76 | 77 | searchBar.addEventListener("input", () => renderItems(searchBar.value, categoryFilter.value)); 78 | categoryFilter.addEventListener("change", () => renderItems(searchBar.value, categoryFilter.value)); 79 | 80 | renderItems(); 81 | -------------------------------------------------------------------------------- /assets/images/logo-dark.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/logo-light.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /catalog.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |Find the best websites by category or search for your favorite.
119 | 120 |