Enjambre Discografia May 2026
// Helper: normalizar texto function normalizeText(txt) { return txt.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, ""); }
// inicializar y renderizar function init() { initFilters(); render(); }
<div class="container"> <div class="discog-grid" id="discogGrid"></div> </div> enjambre discografia
<footer> <i class="fas fa-crown"></i> Enjambre · discografía esencial 2006–2024 · hecha con <i class="fas fa-heart" style="color:#b47c48;"></i> para los seguidores </footer>
// elementos DOM const gridContainer = document.getElementById('discogGrid'); const searchInput = document.getElementById('searchInput'); const filterBtns = document.querySelectorAll('.filter-btn'); const statsSpan = document.getElementById('statsCounter'); div class="discog-grid" id="discogGrid">
// fondo de imagen con gradiente + ícono representativo const bgGradient = `linear-gradient(135deg, ${album.coverColor}dd, ${album.coverColor}aa)`; // lista de tracks (mostrar máximo 6 primeros) const trackListItems = album.tracks.slice(0, 8).map(track => `<li><i class="fas fa-music" style="font-size: 0.6rem; margin-right: 4px;"></i> ${escapeHtml(track)}</li>`).join(''); const moreTracks = album.tracks.length > 8 ? `<li style="background: none;">+${album.tracks.length - 8} más</li>` : '';
if (filteredData.length === 0) { gridContainer.innerHTML = `<div class="no-results"><i class="fas fa-dove" style="font-size: 2rem; opacity: 0.6;"></i><br/>No encontramos lanzamientos con esos criterios. <br> 🎧 ¡Prueba con "Manía" o "2020"!</div>`; return; } i class="fas fa-crown">
// evento de búsqueda con debounce suave let debounceTimer; function onSearchInput() { clearTimeout(debounceTimer); debounceTimer = setTimeout(() => { currentSearch = searchInput.value; render(); }, 280); }