Générateur d'animations CSS, gratuit

Construisez visuellement des animations CSS @keyframes · choisissez un préréglage ou personnalisez durée, transformations et courbes. Copiez du code prêt pour la production.

Préréglages

Paramètres

Aperçu

Boîte

CSS généré

Comment utiliser

  1. Choisissez un préréglage d'animation : sélectionnez parmi les animations courantes, fondu, glissement, rebond, rotation, pulsation, secousse et plus.
  2. Personnalisez la durée et le comportement : ajustez durée, délai, fonction d'easing, nombre d'itérations et fill mode.
  3. Copiez le CSS : la définition @keyframes complète et la propriété raccourcie animation sont prêtes à coller dans votre feuille de style.

Pourquoi utiliser le générateur d'animations CSS ?

Les animations CSS font vivre les interfaces, attirant l'attention sur les éléments clés, donnant un retour visuel et créant des expériences utilisateur soignées. Écrire des règles @keyframes à la main exige de connaître la bonne syntaxe, les noms de courbes et les bonnes combinaisons de propriétés. Ce générateur propose des préréglages d'animation soignés avec aperçu en direct et vous laisse ajuster chaque paramètre, produisant du CSS prêt pour la production sans JavaScript ni bibliothèque d'animation.

Fonctionnalités

Questions fréquentes

Quelle est la différence entre animation et transition en CSS ?

Les transitions CSS se déclenchent sur des changements d'état (survol, focus, bascule de classe) et animent entre deux états. Les animations CSS utilisent @keyframes pour définir plusieurs états et tournent indépendamment de l'interaction utilisateur, elles peuvent boucler, s'inverser et démarrer automatiquement.

Qu'est-ce qu'animation-fill-mode et pourquoi est-ce important ?

animation-fill-mode contrôle si l'élément conserve les styles de l'animation avant qu'elle ne commence (backwards), après qu'elle s'est terminée (forwards), ou les deux. Sans forwards, l'élément revient brusquement à son style d'origine à la fin de l'animation.

Les animations CSS sont-elles performantes ?

Les animations qui n'utilisent que transform et opacity sont accélérées par le GPU et très fluides. Évitez d'animer des propriétés de mise en page comme width, height, margin ou top/left, elles déclenchent des recalculs de layout et peuvent causer des saccades. Restez sur transform et opacity pour du 60 i/s.

Ce que les animations CSS font vraiment

Les animations CSS interpolent une ou plusieurs propriétés CSS entre des images-clés définies dans le temps, produisant un mouvement ou un changement visible sans JavaScript. Le modèle a deux pièces : les règles @keyframes définissent à quoi ressemble une animation à des étapes basées sur des pourcentages (0% à 100%), et la propriété raccourcie animation (ou ses cousines longhand animation-duration, animation-delay, animation-timing-function, animation-iteration-count, animation-fill-mode) dit au navigateur comment jouer cette définition de keyframes. Le navigateur gère toute l’interpolation, l’atténuation et le timing des images en C++, généralement accéléré par GPU pour les changements de transform et d’opacité.

Les animations diffèrent des transitions CSS de deux manières. Les transitions se déclenchent lorsque l’état d’un élément change (un survol, une bascule de classe, un événement de focus) et interpolent entre exactement deux valeurs : l’ancienne et la nouvelle. Les animations s’exécutent indépendamment de l’état, suivent un nombre arbitraire d’étapes de keyframes, peuvent boucler indéfiniment, peuvent jouer en sens inverse, et peuvent être déclenchées, mises en pause et reprises via CSS ou JavaScript. Les transitions sont le bon outil pour « passer de A à B en une demi-seconde » ; les animations sont le bon outil pour « boucler cette pulsation attire-attention pour toujours » ou « jouer cette séquence d’entrée une fois quand l’élément apparaît ».

Pour le design web moderne, les animations CSS remplacent une énorme quantité de ce qui nécessitait des bibliothèques JavaScript. Les spinners, les fondus, les glissements vers le haut, les pulsations d’attention, les coches de succès : tous sont maintenant des modèles CSS standards. Le compromis est l’expressivité pour les séquences complexes. Les animations CSS peuvent faire beaucoup mais cessent d’être pratiques autour de 5 à 7 étapes de keyframes avec des changements de propriétés synchronisés ; pour les animations storyboardées, les séquences liées au défilement, ou tout ce qui est dynamique dépendant de l’état JavaScript, les bibliothèques dédiées (GSAP, Framer Motion, Web Animations API) restent le meilleur choix.

Comment cet outil fonctionne en coulisses

Lorsque vous choisissez un préréglage (par ex. « bounce » ou « fade-in »), l’outil charge une chaîne de @keyframes prédéfinie dans la zone d’aperçu et applique la propriété d’animation à la boîte d’aperçu. Les keyframes sont du vrai CSS, pas un format personnalisé : ce que vous voyez est ce que vous obtenez à copier. Les curseurs mettent à jour les valeurs de timing d’animation (durée, délai, nombre d’itérations) en éditant la propriété animation inline en temps réel, donc l’aperçu reflète chaque changement instantanément sans rechargement de page.

La sélection de la fonction d’atténuation utilise les valeurs CSS standards de timing-function : linear (vitesse constante), ease (par défaut, début et fin lents), ease-in (début lent), ease-out (fin lente), ease-in-out (début et fin lents), ou cubic-bezier(x1, y1, x2, y2) pour des courbes personnalisées. La courbe d’animation visible est calculée par l’implémentation native de timing-function du navigateur ; l’aperçu est la sortie réellement rendue par le navigateur, pas une simulation JavaScript.

La boîte de code montre le CSS complet dont vous avez besoin pour déposer dans une feuille de style : à la fois le bloc @keyframes et la déclaration .votre-classe { animation: ... }. Cliquez sur « Copier CSS » et les deux sont écrits dans votre presse-papiers comme un seul bloc de texte. Aucun fichier n’est généré, aucun serveur ne traite quoi que ce soit, et l’outil n’a pas de backend à appeler. L’aperçu, la génération de code et l’écriture dans le presse-papiers se passent tous en JavaScript sur votre appareil. Rafraîchissez la page et votre configuration personnalisée est partie sauf si vous l’avez copiée d’abord.

Brève histoire de l’animation web

Flux du monde réel

Pièges courants et ce qu’ils signifient

Confidentialité : tout s’exécute dans votre navigateur

Les outils générateurs CSS viennent en deux saveurs : pages HTML simples exécutant du JavaScript côté client (privées, rapides) et éditeurs cloud qui sauvegardent vos projets (collaboratifs mais avec des compromis de confidentialité). Cet outil est du premier type. Vos valeurs de curseur, votre préréglage sélectionné, votre CSS généré : tout reste dans votre session navigateur. Rafraîchissez la page et l’état est parti sauf si vous avez copié le CSS d’abord. Aucun serveur ne stocke vos choix d’animation, aucune analyse ne suit quels préréglages vous avez testés, et aucun compte n’est nécessaire.

La propriété de confidentialité compte surtout pour le travail de design propriétaire. Un studio prototypant des animations pour un projet client confidentiel, un développeur travaillant sur les micro-interactions d’une application non annoncée, ou un designer itérant sur une campagne de marque : tout contexte où l’historique d’itération ou le design en cours pourrait fuir des informations sur le travail. Avec cet outil, il n’y a rien de capturé parce que rien n’est envoyé. Ouvrez l’onglet Réseau du navigateur et vous verrez zéro requête sortante pendant l’utilisation ; seul le chargement initial de la page récupère le HTML et JavaScript.

Quand un autre outil est le bon choix

Autres questions fréquentes

Comment faire qu’une animation joue une seule fois ?

Réglez animation-iteration-count: 1 (qui est la valeur par défaut si non spécifié). Pour que l’élément reste dans l’état final de l’animation après qu’elle se termine (plutôt que de revenir au style d’origine), réglez aussi animation-fill-mode: forwards. Le raccourci combiné est animation: fadeIn 0.5s ease-out forwards;.

Puis-je mettre en pause et reprendre une animation ?

Oui, avec animation-play-state: paused (ou running). Basculez cette propriété via JavaScript (par ex. au clic d’un bouton) ou en CSS via :hover pour les motifs « pause au survol ». L’animation se fige à son point actuel et reprend de là quand elle est remise en running, sans perte de progrès. Cela fonctionne pareil dans les transitions mais seule la propriété animation-play-state existe pour le contrôle de pause à l’exécution.

Comment déclencher une animation au clic ou au défilement ?

Pour les déclencheurs au clic, basculez une classe CSS via JavaScript : element.classList.toggle('animate-in'). L’animation s’exécute quand la classe est ajoutée. Pour les déclencheurs de défilement, utilisez IntersectionObserver pour détecter quand l’élément entre dans la fenêtre d’affichage et ajoutez la classe alors. Pour les navigateurs modernes, les animations CSS pilotées par défilement vous permettent de lier la progression de l’animation directement à la position de défilement sans JavaScript via animation-timeline: scroll().

Pourquoi mon animation scintille-t-elle ou bégaie-t-elle ?

La plupart des problèmes de scintillement/bégaiement viennent de l’animation de propriétés déclenchant la mise en page (width, height, top/left) au lieu des équivalents basés sur transform. Passez de left: 0 à transform: translateX(0) et l’animation devrait s’adoucir. Autres causes : surdessins par de nombreuses couches semi-transparentes, thrashing de mise en page par JavaScript lisant et écrivant les styles dans la même image, ou ombres et filtres excessifs sur l’élément animé.

Devrais-je utiliser des animations sur des interfaces critiques pour l’accessibilité ?

Utilisez-les, mais respectez prefers-reduced-motion. Les directives WCAG 2.1 recommandent de fournir l’option de désactiver le mouvement non essentiel. Enveloppez les animations décoratives dans @media (prefers-reduced-motion: no-preference) pour que les utilisateurs qui définissent la préférence OS obtiennent une expérience statique. Les animations de retour essentielles (indicateurs de chargement, secousses d’erreur) peuvent être conservées ; les purement décoratives devraient être opt-in pour les utilisateurs sensibles.

Puis-je utiliser cubic-bezier pour des courbes d’atténuation personnalisées ?

Oui. La fonction de timing cubic-bezier(x1, y1, x2, y2) vous permet de définir n’importe quelle courbe d’atténuation avec deux points de contrôle. Chaque valeur x est entre 0 et 1 (représentant le temps), les valeurs y peuvent être négatives ou supérieures à 1 (permettant les effets de dépassement et de rebond). Utilisez notre outil Cubic Bezier ou le classique cubic-bezier.com de Lea Verou pour choisir une courbe visuellement. Alternatives de préréglage courants : ease, ease-in, ease-out, ease-in-out, et la variable CSS aliasée linéairement cubic-bezier(0.25, 0.1, 0.25, 1) (ease par défaut).

Outils associés

Générateur de dégradés CSS, gratuit Générateur CSS de courbes cubic-bezier, gratuit Générateur CSS de loaders et spinners, gratuit Générateur CSS Flexbox, gratuit