0Pricing
React Academy · Leçon

Variables CSS pour changer de thème

Définissez une palette de couleurs complète avec des propriétés personnalisées CSS et changez de thème en basculant un attribut de données

Variables CSS pour changer de thème est une leçon React Academy gratuite sur CoddyKit. Ceci est la leçon 2 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.

Définition des jetons de couleur sur :root

Les propriétés personnalisées CSS (variables) définies sur :root sont disponibles partout dans la feuille de style. Définissez une palette de couleurs complète une seule fois — arrière-plans, couleurs du texte, surfaces, bordures — et référencez-la partout. Cette source unique de vérité rend le changement de thème trivial.

Surcharges du thème sombre avec data-theme

Lorsqu’un attribut data-theme="dark" est défini sur document.documentElement, un sélecteur CSS tel que [data-theme='dark'] remplace les variables racine par des valeurs sombres. Les composants référencent var(--color-bg) et récupèrent automatiquement les nouvelles valeurs sans aucune modification du code.

Variables clés à définir

Au minimum, définissez : --color-bg (arrière-plan de la page), --color-text (texte principal), --color-primary (couleur de marque), --color-surface (arrière-plan des cartes ou panneaux) et --color-border (séparateurs). Un jeu cohérent de jetons empêche l’apparition de valeurs de couleur choisies au cas par cas dans les composants.

Application des variables dans les styles des composants

Dans le CSS de vos composants, référencez les variables avec background: var(--color-bg) et color: var(--color-text). Vous pouvez également fournir une valeur de repli : var(--color-bg, #ffffff). Le navigateur évalue la variable au moment du rendu, de sorte qu’une seule classe fonctionne pour les thèmes clair et sombre.

Transition fluide lors du changement

Ajoutez transition: background-color 200ms, color 200ms au sélecteur :root. Lorsque l’attribut data-theme change, tous les éléments qui utilisent des variables CSS s’animent simultanément vers leurs nouvelles valeurs. Cela donne une finition soignée sans code d’animation JS.

Variables CSS ou styles en ligne contrôlés par JS

La gestion du thème via des variables CSS est préférable à la définition de styles en ligne depuis JavaScript. Le navigateur gère nativement tous les recalculs de styles, aucun rendu supplémentaire de React n’est déclenché pour chaque composant enfant thématisé et la cascade CSS gère automatiquement l’héritage. JS doit seulement modifier un attribut sur l’élément racine.

Solution de repli au niveau de l’OS avec prefers-color-scheme

Vous pouvez combiner les variables CSS avec la requête @media (prefers-color-scheme: dark) comme solution de repli uniquement en CSS. Définissez vos surcharges sombres dans la requête média en plus du sélecteur data-theme ou à sa place. Cela garantit que le mode sombre fonctionne même si JavaScript ne s’est pas encore exécuté.

Combinaison de data-theme avec une solution de repli par requête média

L’approche la plus robuste consiste à superposer les deux mécanismes : la requête @media fournit la valeur par défaut de l’OS, tandis qu’un attribut data-theme permet une surcharge utilisateur via JavaScript. Lorsque l’attribut est présent, il est prioritaire grâce à sa spécificité ; lorsqu’il est absent, la requête média prend effet.

Images en mode sombre

Pour les images qui rendent mal sur des arrière-plans sombres, utilisez l’élément HTML picture avec un élément enfant source media="(prefers-color-scheme: dark)". Le navigateur sélectionne automatiquement la variante sombre. Pour les icônes SVG en CSS, vous pouvez utiliser filter: invert(1) comme approximation rapide.

Variables de thème à portée limitée

Les variables CSS peuvent également être limitées à des composants individuels en les définissant sur l’élément racine d’un composant plutôt que sur :root. Cela permet une personnalisation par composant, par exemple une barre latérale avec son propre jeton d’arrière-plan, différent de celui de la page, tout en continuant à changer correctement avec la bascule de thème globale.

Débogage des variables CSS dans DevTools

Chrome DevTools affiche les valeurs calculées des variables CSS dans le panneau Styles. Cliquez sur la référence de la variable pour accéder à sa définition. Il est ainsi facile de vérifier que le jeton sombre ou clair correct est appliqué à un élément. Vous pouvez également modifier les valeurs des variables directement dans le panneau.

Propriétés personnalisées CSS pour les thèmes

Quel sélecteur CSS utilise-t-on pour définir des propriétés personnalisées CSS globales qui s’appliquent à l’ensemble du document ?

Récapitulatif de la leçon : variables CSS pour changer de thème

Les propriétés personnalisées CSS sur :root fournissent un système centralisé de jetons pour les thèmes. Basculez un attribut data-theme sur l’élément HTML pour changer instantanément de thème. Ajoutez des transitions CSS pour une animation fluide, utilisez la requête média prefers-color-scheme comme solution de repli uniquement en CSS et évitez les surcharges de style JS par composant.

Questions Fréquemment Posées

La leçon « Variables CSS pour changer de thème » est-elle gratuite ?

Oui — le texte complet de « Variables CSS pour changer de thème » 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 « Variables CSS pour changer de thème » ?

Définissez une palette de couleurs complète avec des propriétés personnalisées CSS et changez de thème en basculant un attribut de données 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 2 sur 4.

Combien de temps prend la leçon « Variables CSS pour changer de thème » ?

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

  1. Détecter le thème de couleurs du système
  2. Variables CSS pour changer de thème
  3. Contexte React pour l’état du thème
  4. Conserver le thème et éviter le flash
← Retour à React Academy