Chargement conditionnel de Swiper (CDN UMD) sur le template event.
Srcset dédié sans crop, 6 largeurs jusqu'à 3200w, toujours WebP.
Première slide en eager, suivantes en lazy.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Extrait le style onglet-bas en classes réutilisables (.bottom-tab,
.bottom-tab--invert) dans _generic.scss. Appliqué aux boutons de filtre
et à l'étiquette infos des cartes événement.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Boutons de filtre actifs via data-target sur les boutons et data-company sur
les cartes. Clic sur un filtre actif réaffiche tout. Étiquette infos stylée
sous chaque carte, ajustements de mise en page de la grille.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Noms de variables et fonctions explicites (sans abréviation), fonctions
unitaires, paths SVG construits via template literals avec constantes nommées.
Découpage en assets/js/characters/jump.js et pupilTracking.js, importés dans
script.js. Clamp de la rotation des pieds pour éviter le bounce à l'atterrissage.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remplace le ressort principal par une cinématique gravité constante (900 SVG/s²) pour un décollage vif et une chute naturelle
- L'animation de saut se déclenche en boucle au mouseenter et s'arrête au mouseleave (atterrissage propre en cours de vol)
- Extrait la logique d'animation dans characters.js, script.js garde uniquement le scroll
- SVG : groupe #right-character-body pour dissocier corps/tête des jambes lors de la compression
- CSS : overflow visible sur le SVG pour le débordement pendant le saut
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>