100% gratuit · Soutenu par la communauté
/* Cards staggered animation */ (function() { if (!window.IntersectionObserver) return; var cards = document.querySelectorAll('.bd-card.reveal'); var obs = new IntersectionObserver(function(entries) { entries.forEach(function(e) { if (e.isIntersecting) { e.target.classList.add('visible'); obs.unobserve(e.target); } }); }, { threshold: 0.08, rootMargin: '0px 0px -32px 0px' }); cards.forEach(function(c) { obs.observe(c); }); })(); /* Card CTA spéciale */ .bd-card--cta { background: #1B1A18 !important; border-color: #1B1A18 !important; } .bd-card--cta .bd-badge { color: #D1D5DB !important; } .bd-card--cta .bd-card-title { color: #F5F5F5 !important; font-style: italic; } .bd-card--cta .bd-card-desc { color: rgba(248,244,236,.55) !important; } .bd-card--cta::before { background: #6B7280 !important; } .bd-card--cta::after { color: #D1D5DB !important; } /* ════ FILTRES CATÉGORIES ════ */ (function() { var tabs = document.querySelectorAll('.bd-filter-btn'); var cards = document.querySelectorAll('.bd-card[data-cat]'); tabs.forEach(function(tab) { tab.addEventListener('click', function() { var filter = this.getAttribute('data-filter'); // Active tab tabs.forEach(function(t) { t.classList.remove('active'); t.setAttribute('aria-selected','false'); }); this.classList.add('active'); this.setAttribute('aria-selected','true'); // Filter cards cards.forEach(function(card) { if (filter === 'all' || card.getAttribute('data-cat') === filter) { card.classList.remove('bd-hidden'); } else { card.classList.add('bd-hidden'); } }); }); }); })();