Explication des jetons de couleur sémantiques

Un jeton de couleur sémantique nomme une couleur par sa fonction, et non par son apparence : --primary, --muted-foreground, --border. Définissez les rôles une seule fois pour le mode clair et le mode sombre, stylisez vos composants selon ces noms, et l'ensemble de votre interface thématique sera cohérent. C'est le modèle utilisé par shadcn/ui et le système de thèmes de Tailwind.

Mis à jour 2026-07-13

Couleur sémantique vs couleur brute

Un jeton de couleur brute nomme la couleur elle-même : --blue-500, --gray-900. Un jeton sémantique nomme la fonction de la couleur : --primary, --background, --muted-foreground. Les composants peuvent alors ignorer les teintes littérales de la marque. Un bouton stylisé avec bg-primary text-primary-foreground fonctionnera avec du vert sauge, du rose vif ou un thème sombre car le rôle reste fixe tandis que sa valeur change.

C'est le modèle popularisé par shadcn/ui et celui sur lequel repose le thémage de Tailwind. Avec des jetons sémantiques, la refonte du thème d'une application peut se limiter à un seul bloc :root. Les classes codées en dur telles que bg-gray-900 et text-white transforment ce même changement en une recherche complexe dans toute la base de code.

La règle de couplage foreground

La plupart des rôles de base sont accompagnés d'un rôle -foreground associé pour le texte ou les icônes sur cette surface : --primary / --primary-foreground, --card / --card-foreground, --muted / --muted-foreground. Utilisez --primary-foreground sur --primary au lieu d'espérer que le foreground par défaut offre un contraste suffisant. Chaque paire doit tout de même être vérifiée dans les deux modes.

Les 28 rôles dont un système complet a besoin

Une palette minimale de trois couleurs laisse 25 décisions non définies : états de survol, texte atténué, bordures, anneaux de focus, séries de graphiques, mode sombre. Un système complet les nomme toutes. Les kits Identity Forge définissent ces 28 rôles, regroupés par fonction, pour le mode clair et sombre :

  • Surfaces : background / foreground, card / card-foreground, popover / popover-foreground. La page, les panneaux surélevés et les couches flottantes, chacune avec sa couleur de texte lisible.
  • Marque et emphase : primary / primary-foreground, secondary / secondary-foreground, accent / accent-foreground. L'action principale, l'action secondaire et la mise en évidence.
  • Discret et neutre : muted / muted-foreground. Arrière-plans atténués et texte secondaire.
  • État : destructive / destructive-foreground, success / success-foreground, warning / warning-foreground. Erreurs, confirmations et avertissements.
  • Formulaire et focus : border, input, ring. Séparateurs et contours, surfaces de champs de formulaire et indicateur de focus.
  • Données : chart-1, chart-2, chart-3, chart-4, chart-5. Cinq couleurs de série distinctes respectant la marque pour que les graphiques ne se rabattent pas sur une palette par défaut générique.

Pourquoi cinq couleurs de graphique sont importantes

La visualisation de données est l'endroit où les systèmes sous-spécifiés échouent le plus visiblement : un tableau de bord avec trois couleurs de marque et un arc-en-ciel aléatoire pour son graphique à barres. Définir chart-1...5 en amont permet de maintenir les graphiques dans le même langage visuel que le reste de l'application.

Visualisez les rôles sur un kit réel

Ci-dessous se trouve le kit gratuit ambient-sage entièrement rendu à partir de ces jetons. La rangée d'échantillons contient --primary, --secondary, --accent et les cinq rôles de graphique ; le bouton utilise --primary avec --primary-foreground ; les surfaces utilisent --background, --card et --muted. Rien ici n'est une couleur codée en dur :

Ambient Sage

Live render

Rendered from the kit's actual tokens, fonts, and treatments

AmbientSage/Dashboard
Search...⌘K
AS

Dashboard

Welcome back — here's how AmbientSage is performing today.

Jan 1 – Jan 30, 2026
Overview
Analytics
Reports
Notifications

Active users

15.1k

+5%

Trending up this month

vs. previous 30 days

MRR

$49.1k

+3%

Strong recurring growth

Net of churn

Retention

89%

+2%

Engagement above target

Rolling 28-day window

NPS

69

+3

Meets growth projections

Survey · n=1,204

Total revenue

Last 12 months

$49.1k+18.2%

12m30d7d
JanFebMarAprMayJunJulAugSepOctNovDec

Recent sales

You closed 265 deals this month.

AR

Alex Rivera

alex@ambientsage.com

+$1,999.00
MO

Mira Okonkwo

mira@ambientsage.com

+$39.00
JF

Jonas Feld

jonas@ambientsage.com

+$299.00
SQ

Sana Qureshi

sana@ambientsage.com

+$99.00
TL

Theo Lindgren

theo@ambientsage.com

+$2,400.00

Recent transactions

View all
CustomerStatusDateAmount
AR

Alex Rivera

Founder & CEO

Paid2m ago$1,999.00
MO

Mira Okonkwo

Head of Product

Pending1h ago$39.00
JF

Jonas Feld

Design Lead

Processing3h ago$299.00
SQ

Sana Qureshi

Engineering Lead

PaidYesterday$99.00
TL

Theo Lindgren

Brand Director

Refunded2d ago$2,400.00

Typography

Plus Jakarta Sans

Color system

28 semantic roles, light + dark

Agent outputs

DESIGN.md, CSS, Tailwind, shadcn

Chaque couleur que vous voyez est un jeton sémantique. Basculez un kit et chaque rôle prend une nouvelle valeur tandis que le code du composant reste identique.

Obtenez un ensemble complet de jetons

Vous pouvez définir les 28 rôles à la main, mais il est fastidieux de maintenir l'équilibre et l'accessibilité entre le mode clair et sombre. Chaque kit Identity Forge les fournit complets dans les deux modes, exportables en variables CSS, @theme Tailwind v3/v4, élément de registre shadcn, ou JSON DTCG/W3C. Le moyen le plus rapide d'intégrer un ensemble complet dans un projet shadcn/ui :

npx shadcn add https://identityforge.io/r/ambient-sage.json
Installe les 28 rôles sémantiques (clair + sombre) dans votre thème

Les jetons constituent également la moitié d'un DESIGN.md : les valeurs auxquelles le brief écrit fait référence. Ensemble, ils sont ce que vous donnez à un agent de codage pour que son interface reste cohérente.

FAQ

Que sont les jetons de couleur sémantiques ?

Des variables de couleur nommées par rôle plutôt que par teinte : `--primary`, `--background`, `--muted-foreground` au lieu de `--blue-500`. Les composants se stylisent selon le nom du rôle, de sorte que changer de thème ou passer en mode sombre ne nécessite jamais de modifier les composants.

De combien de jetons de couleur un design system a-t-il besoin ?

Identity Forge utilise 28 rôles sémantiques : des surfaces avec leurs foregrounds, des rôles de marque et de neutralité, des couleurs d'état, des rôles de formulaire et cinq couleurs de graphique. Chaque rôle possède une valeur claire et sombre.

Quelle est la convention -foreground ?

La plupart des rôles de base sont couplés à un rôle `-foreground` pour le texte ou les icônes placés sur cette surface : `--primary` avec `--primary-foreground`. Ce couplage garantit un contraste lisible en mode clair et sombre sans tâtonnement.

Comment exporter un ensemble complet de jetons sémantiques ?

Chaque kit Identity Forge exporte ses 28 rôles (clair + sombre) en tant que variables CSS, @theme Tailwind v3/v4, élément de registre shadcn ou JSON DTCG/W3C. Pour shadcn/ui, `npx shadcn add https://identityforge.io/r/<slug>.json` les installe directement.