React Academy · Leçon

Architecture de jetons multi-thèmes et multimarques

Structurez les jetons selon une hiérarchie à plusieurs niveaux (primitifs, sémantiques, de composant) pour prendre en charge les thèmes clairs et sombres ainsi que plusieurs marques.

Leçon 4 sur 413 étapes

Architecture de jetons multi-thèmes et multimarques est une leçon React Academy gratuite sur CoddyKit. Ceci est la leçon 4 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.

Thème ou marque

Un thème modifie le mode de couleur d’une même marque (versions claire et sombre d’un même produit). Une marque correspond à une identité visuelle différente : les mêmes composants du système de conception sont rendus avec des couleurs, une typographie et des espacements différents pour servir différents produits ou clients. Les deux utilisent la même architecture de jetons, mais à des niveaux d’abstraction différents.

Couche des jetons primitifs

Les jetons primitifs constituent la palette complète des valeurs brutes disponibles pour le système. Ils incluent chaque nuance de couleur (color-blue-50 à color-blue-900), chaque unité d’espacement et chaque taille de police. Les jetons primitifs ne sont jamais utilisés directement dans les composants : ils sont uniquement référencés par les jetons sémantiques. La palette est définie une seule fois et partagée entre tous les thèmes et toutes les marques.

Couche des jetons sémantiques

Les jetons sémantiques expriment une intention : color-background-page, color-text-primary, color-action-primary. Chaque jeton sémantique fait référence à une valeur de jeton primitif appropriée au thème actuel. Les composants sont construits exclusivement à partir de jetons sémantiques. C’est à ce niveau que la thématisation a lieu.

Correspondances sémantiques du thème clair

Dans le thème clair : color-background-page fait référence à color-white, color-text-primary fait référence à color-gray-900 et color-action-primary fait référence à color-blue-500. Ces correspondances sont définies dans un fichier de jetons propre au thème, qui remplace la couche sémantique pour le contexte clair.

Correspondances sémantiques du thème sombre

Dans le thème sombre : color-background-page fait référence à color-gray-950, color-text-primary fait référence à color-gray-50 et color-action-primary fait référence à color-blue-400 (légèrement plus clair pour assurer le contraste sur les arrière-plans sombres). Seules les correspondances sémantiques changent : la palette primitive et tous les composants restent inchangés.

Remplacements propres aux marques

La marque A utilise le bleu comme couleur principale (color-action-primary: {color-blue-500}). La marque B utilise le vert (color-action-primary: {color-green-500}). Le composant bouton lit var(--color-action-primary) : il ignore complètement la marque active. Les remplacements propres aux marques modifient uniquement les correspondances des jetons sémantiques, jamais le code des composants.

Changement de thème à l’exécution

Les propriétés personnalisées CSS rendent le changement de thème à l’exécution très simple. Stockez le thème actuel dans un attribut de données : document.documentElement.setAttribute('data-theme', 'dark'). Les règles CSS remplacent les jetons sémantiques sous [data-theme="dark"]. Le navigateur résout immédiatement toutes les références var() vers les nouvelles valeurs : aucun nouveau rendu JavaScript n’est nécessaire.

Thématisation de la marque à la compilation

Pour différentes marques déployées séparément, utilisez une thématisation à la compilation : générez des fichiers CSS de jetons distincts pour chaque marque avec Style Dictionary, puis chargez la feuille CSS correspondant à la bonne marque au démarrage de l’application. Cette approche convient lorsque la marque est déterminée au moment du déploiement (domaines, sous-domaines ou instances en marque blanche différents), et non lors d’une interaction avec l’utilisateur.

Combiner marque et thème

Un système prenant en charge plusieurs marques et plusieurs thèmes nécessite une matrice à deux dimensions : Marque A claire, Marque A sombre, Marque B claire, Marque B sombre. Les propriétés personnalisées CSS gèrent cela élégamment avec des sélecteurs imbriqués : [data-brand="a"][data-theme="dark"] remplace les jetons sémantiques pour cette combinaison précise. Quatre combinaisons correspondent à quatre blocs CSS, et non à quatre bases de code.

Versionnement et retrait des jetons

À mesure que le système de conception évolue, des jetons sont ajoutés, renommés ou supprimés. Versionnez les jetons dans le même dépôt que le code. Lorsqu’un jeton devient obsolète, conservez son ancien nom comme alias pointant vers le nouveau pendant un cycle de publication, ajoutez un commentaire indiquant son obsolescence et mettez à jour le code qui l’utilise. Coordonnez les changements de jetons entre la conception et l’ingénierie au moyen d’un journal des modifications structuré.

Gouvernance des jetons : à qui appartiennent les jetons

La gouvernance définit qui peut ajouter ou modifier des jetons et quel processus de revue est requis. Les jetons primitifs nécessitent l'approbation de l'équipe de conception. Les jetons sémantiques nécessitent une revue de la conception et de l'ingénierie. Les jetons de composant peuvent être gérés par le propriétaire du composant. Sans cette gouvernance, des jetons en double apparaissent et la garantie de « source unique de vérité » est compromise.

Distinction entre jetons sémantiques et primitifs

Pourquoi les composants doivent-ils référencer des jetons sémantiques plutôt que des jetons primitifs ?

Récapitulatif de la leçon

Les thèmes modifient les modes de couleur au sein d'une marque ; les marques correspondent à des identités visuelles différentes. Les jetons primitifs constituent la palette brute, tandis que les jetons sémantiques expriment une signification et permettent la thématisation. Les composants utilisent uniquement des jetons sémantiques. Le mode sombre et les remplacements liés à la marque ne modifient que les correspondances des jetons sémantiques : les composants restent inchangés. La thématisation à l'exécution utilise des propriétés personnalisées CSS avec des sélecteurs [data-theme] ; la définition de la marque à la compilation génère un fichier CSS distinct pour chaque marque. La gouvernance des jetons et la gestion des versions assurent la cohérence du système au fil de son évolution.

Gratuit pour commencer

Apprends React avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
88
Leçons
324

Questions Fréquemment Posées

La leçon « Architecture de jetons multi-thèmes et multimarques » est-elle gratuite ?

Oui — le texte complet de « Architecture de jetons multi-thèmes et multimarques » 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 « Architecture de jetons multi-thèmes et multimarques » ?

Structurez les jetons selon une hiérarchie à plusieurs niveaux (primitifs, sémantiques, de composant) pour prendre en charge les thèmes clairs et sombres ainsi que plusieurs marques. 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 4 sur 4.

Combien de temps prend la leçon « Architecture de jetons multi-thèmes et multimarques » ?

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. Que sont les jetons de conception et pourquoi sont-ils importants
  2. Style Dictionary : transformer et générer des jetons
  3. Jetons dans Tailwind, variables CSS et CSS-in-JS
  4. Architecture de jetons multi-thèmes et multimarques
← Retour à React Academy