Transitions CSS avec les changements d’état de React
Déclenchez des transitions CSS en alternant les noms de classes avec l’état React : transitions d’opacité, de transformation et de couleur.
Transitions CSS avec les changements d’état de React est une leçon React Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage React Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours React Academy comprend 4 leçons au total.
Qu’est-ce qu’une transition CSS
Une transition CSS interpole progressivement une propriété entre deux valeurs au fil du temps au lieu de passer instantanément de l’une à l’autre. Vous la déclarez sur l’élément avec transition: property duration timing-function delay.
Dans React, vous n’animez généralement pas manuellement des valeurs intégrées. Vous basculez plutôt une classe ou un style à l’aide de l’état, et CSS gère les images intermédiaires à votre place.
Déclencher une transition en basculant une classe
Le modèle courant consiste à conserver une valeur booléenne dans useState et à remplacer une classe CSS lorsqu’elle change. Lorsque la classe change, la propriété ciblée reçoit une nouvelle valeur et CSS anime la différence.
Par exemple, isOpen détermine si l’élément possède la classe open, et la classe open définit une hauteur ou une transformation différente.
Un état booléen isVisible
Une configuration typique est const [isVisible, setIsVisible] = useState(false). Un bouton appelle setIsVisible(v => !v) pour inverser sa valeur.
L’utilisation de la mise à jour fonctionnelle v => !v évite les états obsolètes lorsque plusieurs mises à jour sont mises en file d’attente, ce qui rend l’inversion fiable.
Classe conditionnelle avec des chaînes modèle
Vous construisez className dynamiquement : className={'panel ' + (isVisible ? 'panel--shown' : 'panel--hidden')}. La classe de base contient la déclaration de transition, tandis que les classes modificatrices contiennent les valeurs de début et de fin.
Conserver transition sur la classe de base toujours présente permet à l’animation de fonctionner dans les deux sens, à l’ouverture comme à la fermeture.
Animer simultanément la transformation et l’opacité
Vous pouvez animer plusieurs propriétés à la fois en les énumérant : transition: transform 300ms ease, opacity 300ms ease. Un effet de fondu et de glissement associe une modification de opacity à un translateY sur transform.
Animer les deux ensemble produit une entrée soignée, durant laquelle l’élément glisse vers le haut tout en apparaissant progressivement.
Créer un décalage en cascade avec transition-delay
transition-delay retarde le début d’une transition. En attribuant des délais croissants aux éléments d’une liste, vous créez une cascade décalée dans laquelle chaque élément s’anime légèrement après le précédent.
Dans React, vous pouvez calculer le délai directement, par exemple style={{ transitionDelay: index * 50 + 'ms' }}.
Pourquoi la propriété d’affichage ne peut pas être animée
La propriété display ne peut pas être animée, car elle n’a aucune valeur intermédiaire entre none et block. Lui appliquer une transition produit un changement instantané, et non un fondu.
Animez plutôt opacity pour obtenir le fondu visuel et activez ou désactivez pointer-events: none afin que l’élément masqué ignore les clics lorsqu’il est invisible.
Fonctions de temporisation
La fonction de temporisation détermine comment la vitesse évolue pendant la durée. linear avance à vitesse constante, ease démarre et se termine lentement, et cubic-bezier(...) vous permet de définir une courbe entièrement personnalisée.
Les courbes personnalisées sont idéales pour obtenir un mouvement vif ou rebondissant, par exemple cubic-bezier(0.34, 1.56, 0.64, 1) pour un léger dépassement.
Variables CSS pour la durée
Vous pouvez stocker les durées dans des propriétés personnalisées CSS comme --speed: 300ms et les réutiliser : transition: opacity var(--speed) ease. Cela garantit une temporisation cohérente entre les composants.
React peut même définir la variable directement avec style={{ '--speed': '500ms' }}, ce qui permet aux propriétés de piloter la temporisation de l’animation.
Privilégier la transformation et l’opacité pour de meilleures performances
Les navigateurs peuvent animer transform et opacity sur le compositeur GPU sans recalculer la mise en page ni repeindre. Animer des propriétés comme width, top ou margin impose un travail de mise en page à chaque image et peut provoquer des saccades.
Lorsque vous devez déplacer, redimensionner ou faire pivoter un élément, utilisez transform ; lorsque vous devez le faire apparaître ou disparaître progressivement, utilisez opacity.
Assembler le tout
Une transition fiable dans React associe un état booléen, une classe modificatrice conditionnelle et une classe de base qui déclare transition sur des propriétés adaptées au GPU. L’état fait basculer la classe et CSS se charge de l’animation.
Vos composants restent ainsi déclaratifs, tout en tirant parti du navigateur pour produire des mouvements fluides.
Vérification rapide
Évaluez votre compréhension des animations performantes.
Récapitulatif
Vous avez appris à déclencher des transitions CSS en basculant des classes pilotées par l’état, à animer ensemble la transformation et l’opacité, à créer des décalages avec des délais et à éviter d’animer display en utilisant l’opacité avec pointer-events.
Vous avez également découvert les fonctions de temporisation, les durées définies par des variables CSS et la raison pour laquelle les propriétés composites du GPU assurent la fluidité des mouvements.
Questions Fréquemment Posées
La leçon « Transitions CSS avec les changements d’état de React » est-elle gratuite ?
Oui — le texte complet de « Transitions CSS avec les changements d’état de React » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours React Academy, passe à CoddyKit PRO. Le cours React Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Transitions CSS avec les changements d’état de React » ?
Déclenchez des transitions CSS en alternant les noms de classes avec l’état React : transitions d’opacité, de transformation et de couleur. Tu pratiques React Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer React Academy ?
Aucune expérience préalable n'est requise. React Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Transitions CSS avec les changements d’état de React » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon React Academy ?
Oui. Chaque leçon React Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Transitions CSS avec les changements d’état de React
- Animations CSS avec @keyframes dans React
- useLayoutEffect pour les mesures avant animation
- Animations d’entrée et de sortie sans bibliothèque