Chaîne

La chaîne de jetons est active pour les variables CSS de fondation. Elle prouve que les jetons se génèrent depuis la source et que la feuille de style de production consomme la sortie générée.

Source et sortie#

ÉlémentChemin ou commandeRôle
Jetons sourcestokens/core.tokens.jsonSource DTCG révisée à la main, avec $value et $type
Configuration de générationstyle-dictionary.config.mjsConfiguration Style Dictionary et transformation de nom personnalisée
CSS généréassets/css/generated/tokens.cssPropriétés personnalisées générées, regroupées avant le CSS du site
Collections de thèmestokens/themes/{light,dark}.tokens.jsonRemplacements de couleurs sémantiques ciblés par sélecteur
CSS de thèmes généréassets/css/generated/themes.cssSortie des collections claire et sombre
Données généréesdata/brand/tokens.ymlDonnées Hugo générées pour les tableaux de référence des jetons
Pont Tailwind générétailwind.tokens.cjsValeurs du thème Tailwind générées depuis les jetons
Exports de diagrammestokens/exports/diagram.json, static/tokens/diagram.jsonValeurs résolues pour les diagrammes du dépôt et publiés
Commande de générationnpm run tokens:buildRégénère le CSS des jetons
Commande de donnéesnpm run tokens:dataRégénère les données Hugo des jetons
Commande Tailwindnpm run tokens:tailwindRégénère le pont de thème Tailwind
Commande de thèmesnpm run tokens:themesRégénère le CSS des collections de thèmes ciblées par sélecteur
Commande de diagrammesnpm run tokens:diagramsRégénère les exports des jetons de diagrammes
Commande de testnpm run tokens:testValide la résolution des alias et le contraste des couleurs
Commande de mise à journpm run tokens:updateRégénère et vérifie toute la sortie générée des jetons
Commande de vérificationnpm run tokens:checkVérifie la sortie générée et les références CSS

Hugo regroupe le CSS généré avant la feuille de style traitée du site, donc assets/css/site.css peut consommer des variables comme --color-accent, --font-serif et --space-s-m sans posséder leurs valeurs. outputReferences: true garde visible la chaîne d’alias de couleur active dans le CSS généré : les variables sémantiques d’interface se résolvent par leurs primitives --color-palette-*. La documentation rend les tableaux de catégories depuis data/brand/tokens.yml, qui est généré depuis les mêmes métadonnées de jetons.

Utilisez Architecture des jetons pour la limite de la source, la sélection des thèmes, le modèle des consommateurs et la routine complète de changement.

Règles de génération#

  • npm run tokens:build doit se terminer sans avertissement.
  • npm run tokens:update doit régénérer le CSS principal, les données, les valeurs Tailwind, le CSS des thèmes et les exports de diagrammes avant qu’un changement de jetons soit validé.
  • npm run tokens:check doit passer sans modifier le worktree.
  • La sortie générée devrait être validée seulement lorsqu’elle est déterministe.
  • Les changements aux jetons sources et à la sortie générée devraient arriver dans le même commit.
  • visibility: internal s’applique aux primitives d’implémentation d’appoint. Elles restent disponibles pour les alias CSS générés, mais ne paraissent pas dans le tableau public des jetons ni dans le pont Tailwind.
  • Le CSS ne devrait pas référencer un jeton généré absent de la sortie.
  • Le CSS du site ne doit pas contenir de littéral de couleur hexadécimal brut. Ajoutez plutôt un jeton sémantique, puis consommez sa variable CSS générée.
  • Le CSS du site ne doit pas utiliser un utilitaire de palette Tailwind non gouverné. Les utilitaires de couleur Tailwind approuvés se résolvent par les variables générées des jetons.
  • Le CSS du site ne doit pas utiliser d’utilitaire arbitraire brut de graisse, taille ou approche typographique. Ajoutez ou réutilisez plutôt un jeton typographique et son utilitaire soutenu par un jeton.
  • Les avertissements sont traités comme du travail, selon la politique de dépendances et d’avertissements de l’ADR 0004.

Inspiration#

Red Hat Design System utilise les jetons comme une bibliothèque de design system, avec des consignes d’installation, des catégories générées et des notes d’utilisation pour les développeurs. C’est une inspiration utile, mais ce site garde une chaîne plus petite : jetons sources, CSS généré, données Hugo générées et pages de catégories rendues depuis ces données.