Animations

Animations d'entrée au scroll, de sortie, et au clic. Respect automatique de prefers-reduced-motion.

Animations d'entrée (scroll)

Ajoutez simplement une classe CSS. L'élément s'anime quand il entre dans le viewport :

fade-in
fade-in-up
fade-in-down
fade-in-left
fade-in-right
scale-in
scale-in-up
slide-in-up
slide-in-down
slide-in-left
slide-in-right
rotate-in
ClasseEffet
anim-fade-inFondu
anim-fade-in-upFondu + montée
anim-fade-in-downFondu + descente
anim-fade-in-leftFondu depuis la gauche
anim-fade-in-rightFondu depuis la droite
anim-scale-inZoom avant
anim-scale-in-upZoom + montée
anim-slide-in-upGlissement depuis le bas (fort)
anim-slide-in-downGlissement depuis le haut (fort)
anim-slide-in-leftGlissement depuis la gauche
anim-slide-in-rightGlissement depuis la droite
anim-rotate-inRotation + zoom
<div class="anim-fade-in-up">Je m'anime au scroll</div>

Modificateurs

Délai

ClasseDélai
anim--delay-1 à anim--delay-10100ms à 1000ms (incréments de 100ms)

Durée

ClasseDurée
anim--duration-fast300ms
anim--duration-slow1000ms
anim--duration-slower1500ms

Easing

ClasseEffet
anim--ease-bounceRebond à l'arrivée
anim--ease-elasticÉlastique
anim--ease-smoothDoux (décélération)
<div class="anim-fade-in-up anim--delay-3 anim--ease-bounce">
  Fondu + montée, délai 300ms, rebond
</div>

Animations de sortie

Ajoutez data-anim-exit="true" pour que l'animation se redéclenche quand l'élément sort et revient dans le viewport :

<div class="anim-fade-in-up" data-anim-exit="true">
  Animation re-déclenchable
</div>

Animations au clic

ClasseEffet
anim-click-pulsePulsation
anim-click-shakeSecousse
anim-click-bounceRebond vertical
anim-click-rippleEffet ripple Material Design
<button class="btn btn--primary anim-click-ripple">
  Cliquez-moi
</button>

Animations SVG

Animez vos SVG au scroll avec des classes simples. Idéal pour les icônes, graphiques et illustrations.

SVG draw
SVG draw-fade
SVG fade-up

Dessin de tracé (stroke)

Utilisez --svg-length pour définir la longueur du tracé (approximative, en pixels) :

<svg viewBox="0 0 120 120" fill="none" stroke="currentColor" stroke-width="3">
  <circle class="anim-svg-draw" style="--svg-length: 283;"
          cx="60" cy="60" r="45" />
  <path class="anim-svg-draw anim--delay-3" style="--svg-length: 60;"
        d="M40 60 L55 75 L80 45" />
</svg>
ClasseEffet
anim-svg-drawDessin progressif du tracé (stroke)
anim-svg-draw-fadeDessin + fondu d'apparition
anim-svg-fadeFondu simple (pour les éléments fill)
anim-svg-fade-upFondu + montée
anim-svg-fillAnimation de remplissage (fill-opacity)

Variable --svg-length

Définissez la longueur approximative du tracé SVG pour que l'animation fonctionne correctement. Vous pouvez obtenir cette valeur avec path.getTotalLength() dans la console.

Modificateurs SVG

ClasseDurée
anim-svg--fast0.8s
anim-svg--slow2.5s
anim-svg--slower4s

Les modificateurs de délai standards (anim--delay-1 à anim--delay-10) fonctionnent également avec les animations SVG.

Animations Variable Font

Animez le poids des polices variables (comme Inter). Si la police n'est pas variable, l'animation est ignorée.

Hover : survolez ce titre

Scroll : apparition au scroll

Loop : boucle 200→900

ClasseEffet
anim-font-weight-hoverPoids 400→700 au survol
anim-font-weight-scrollPoids 400→700 au scroll
anim-font-weight-loopBoucle 400↔700 infinie
<h2 class="anim-font-weight-hover">Survolez-moi</h2>
<h2 class="anim-font-weight-scroll">Au scroll</h2>
<h2 class="anim-font-weight-loop">Boucle</h2>

<!-- Custom -->
<h2 class="anim-font-weight-loop"
    data-font-from="200"
    data-font-to="900"
    data-font-duration="3s">
  Boucle custom
</h2>
AttributDéfautDescription
data-font-from400Poids de départ
data-font-to700Poids d'arrivée
data-font-duration0.4s / 2s (loop)Durée

Accessibilité

Toutes les animations (y compris SVG) respectent prefers-reduced-motion: reduce. Si l'utilisateur a désactivé les animations dans son système, tous les éléments apparaissent immédiatement sans animation.