// Generate category filters dynamically based on available categories function generateFilters() const categoriesSet = new Set(); downloadsData.forEach(item => categoriesSet.add(item.category)); const categories = Array.from(categoriesSet).sort();
/* category filters */ .filter-bar display: flex; flex-wrap: wrap; justify-content: center; gap: 0.8rem; margin-bottom: 3rem; www.lavileztechservice.com download
<!-- dynamic filter buttons --> <div class="filter-bar" id="filterBar"> <button class="filter-btn active" data-category="all"><i class="fas fa-th-large"></i> All</button> <!-- categories will be injected here dynamically from dataset, but we add static for demo --> </div> // Generate category filters dynamically based on available
.filter-btn background: white; border: none; padding: 0.6rem 1.5rem; border-radius: 60px; font-weight: 600; font-size: 0.9rem; cursor: pointer; transition: all 0.2s ease; box-shadow: 0 2px 5px rgba(0,0,0,0.03); color: #2c3e50; font-family: inherit; border: 1px solid #dce5ec; const categories = Array.from(categoriesSet).sort()
id: 6, title: "Lavilez SDK for Windows", version: "v2.1.0", category: "software", description: "Software Development Kit – API libraries, headers, and sample code to integrate Lavilez devices into custom applications.", fileSize: "156 MB", date: "2025-01-20", icon: "fa-code", downloadLink: "#", fileName: "Lavilez_SDK_Win_v2.1.0.msi" ,
.btn-download i font-size: 1rem; transition: transform 0.2s;
id: 5, title: "USB Firmware Updater", version: "v3.2.0", category: "tools", description: "Firmware flashing tool for Lavilez USB bridges and IoT modules. Supports rollback protection and CRC check.", fileSize: "7.4 MB", date: "2025-02-05", icon: "fa-sync-alt", downloadLink: "#", fileName: "USB_Firmware_Updater_v3.2.0.zip" ,