Mis à jour 11 juillet 2026

Architecture de tokens multi-marque

Un seul produit au service de plusieurs marques — une maison de marques, une plateforme en marque blanche, un portefeuille d’acquisitions — est un problème de superposition de tokens : gardez une seule couche sémantique partagée (le vocabulaire de rôles que chaque marque remplit), donnez à chaque marque sa propre couche de primitives (sa couleur de départ et les rampes qui en dérivent), et laissez les composants ne consommer que la couche sémantique. Changer de marque revient alors à permuter le jeu de primitives, sans toucher à un seul composant.

La mécanique est la même que celle du thème clair et sombre, un cran au-dessus : un thème sombre est un second jeu de réponses derrière les mêmes rôles, et une seconde marque est le même geste avec une couleur de départ différente. Cet article — qui fait partie de notre guide des couleurs de marque — couvre la superposition, l’exemple concret à deux marques, ce qui doit être testé marque par marque plutôt que présumé, et la question de gouvernance qui sous-tend le tout.

À quoi ressemble l’architecture en couches ?

Trois couches, avec des règles de circulation strictes entre elles :

components         →   semantic roles    →   primitives (per brand)
button fill            accent                brand A: blue-600  |  brand B: green-700
button label           on-accent             brand A: white     |  brand B: white
page background        background            brand A: cool white|  brand B: green-tinted white

Les primitives sont propres à chaque marque : la couleur de départ de chaque marque génère ses propres rampes — les teintes claires et foncées de la couleur de marque, une échelle de neutres teintée à partir de la même couleur de départ, les couleurs fonctionnelles. Les sémantiques sont partagées : background, surface, text-primary, border, accent, on-accent et leurs voisins forment un unique vocabulaire de rôles que chaque marque doit remplir. Les composants ne consomment que les sémantiques — un bouton sait qu’il est rempli avec accent, jamais que accent est actuellement un bleu particulier.

L’intuition derrière ce fonctionnement : les composants posent une liste fixe de questions — quelle couleur a l’arrière-plan d’une page ici ? quelle couleur a le texte sur un remplissage accent ? — et une marque n’est rien d’autre qu’un jeu complet de réponses. Tant que la liste de questions reste fixe et que chaque marque y répond entièrement, un nombre quelconque de marques peut se tenir derrière le même produit, et en ajouter une demande d’écrire des réponses, pas de réécrire ceux qui posent les questions.

Que change réellement un changement de marque ?

Uniquement le jeu de primitives. Voici deux marques qui remplissent les six mêmes emplacements sémantiques — la marque A dérivée d’un bleu, la marque B d’un vert :

Rôle sémantiqueMarque A (couleur de départ #2563eb)Marque B (couleur de départ #16a34a)
background#f8fafc (blanc à nuance froide)#f6faf7 (blanc à nuance verte)
surface#ffffff#ffffff
text-primary#0f172a#13201a
border#e2e8f0#dcebe0
accent#2563eb — la couleur de départ elle-même#15803d — un cran plus profond que la couleur de départ
on-accent#ffffff (≈5,2:1)#ffffff (≈5,0:1)

Cinq des six lignes sont exactement ce à quoi vous vous attendez : les neutres teintés penchent vers la teinte de chaque marque, l’encre du texte et les bordures suivent. La ligne accent est le piège.

La couleur de départ de la marque A peut être l’accent : le texte blanc sur #2563eb mesure ≈5,2:1, confortablement au-dessus du plancher de 4,5:1 pour le texte normal. Celle de la marque B ne le peut pas : au même emplacement nominal, le vert est une couleur plus claire — #16a34a se situe à ≈0,63 de luminosité OKLCH contre ≈0,55 pour le bleu — et le blanc dessus ne mesure que ≈3,3:1. Le même rôle, mappé de la même manière naïve, passe pour la marque A et échoue pour la marque B. La solution est un mappage propre à chaque marque : l’accent de la marque B pointe un cran plus profond dans sa propre rampe (#15803d, ≈5,0:1 avec du blanc), ou bien conserve la couleur de départ comme remplissage et bascule on-accent vers une encre foncée. Les deux sont légitimes ; présumer que le mappage se transfère d’une marque à l’autre ne l’est pas.

Ouvrez deux marques remplissant la même structure de rôles dans le Scale Composer — les valeurs de tokens de la marque bleue importées, le système vert dérivé de sa propre couleur de départ à côté d’elles, et les vérifications de contraste montrant exactement où le mappage de la marque verte doit différer.

Une palette de marque dérivée d'un bleu et une autre dérivée d'un vert remplissant la même structure de rôles sémantiques dans Scale Composer, avec les vérifications de contraste visibles par rôle

Qu’est-ce qui doit être testé marque par marque plutôt que présumé ?

Trois choses, toutes des variantes du piège ci-dessus :

  • Le contraste, par marque, par paire. Chaque rôle de remplissage doit atteindre les planchers avec ses propres couleurs de premier plan. La luminosité d’une couleur de départ décide quels crans de rampe peuvent porter du texte blanc, et les couleurs de départ diffèrent — le mappage rôle-vers-cran est donc une décision propre à chaque marque, vérifiée par rapport aux planchers, jamais copiée telle quelle.
  • Les couleurs fonctionnelles, ajustées à la marque. Le succès, l’avertissement, l’erreur et l’information exigent une attention propre à chaque marque sur deux axes. Le niveau de chroma : une marque sourde dont la palette murmure se fait couvrir par un rouge d’erreur à pleine chroma, tandis qu’une marque vive a besoin de couleurs fonctionnelles plus fortes pour être perçue comme système plutôt que comme encore de la marque. Et la collision : pour la marque dérivée d’un vert ci-dessus, un vert de succès par défaut se retrouve dangereusement proche de la couleur de marque elle-même — il faut les écarter jusqu’à ce que les deux se lisent comme des messages différents.
  • Les variantes sombres, dérivées par marque. Une palette sombre est dérivée d’une couleur de départ, et chaque marque a la sienne — partager un même thème sombre entre les marques élimine discrètement la teinte de marque qui faisait tenir chaque palette ensemble au départ.

À qui appartient le vocabulaire de rôles ?

À l’organisation, pas à une marque en particulier — parce que le vocabulaire de rôles partagé est le véritable actif. Les marques vont et viennent : les acquisitions arrivent avec leurs propres palettes, les clients en marque blanche se renouvellent, les sous-marques sont retirées. Les rôles persistent à travers tout cela, et ce sont eux qui rendent la marque suivante peu coûteuse à ajouter.

C’est pourquoi la discipline des rôles compte plus que n’importe quelle décision de couleur isolée. Ajouter un rôle parce que la campagne d’une marque veut un emplacement de dégradé spécial pollue toutes les marques : chacune doit désormais répondre à une question qu’une seule d’entre elles a posée, et chaque composant risque de se mettre à consommer la réponse. Un nouveau rôle ne devrait entrer dans le vocabulaire que lorsque le besoin d’interface sous-jacent existe pour toutes les marques ; tout ce qui est plus étroit relève du jeu de primitives d’une seule marque, où il peut mourir avec cette marque au lieu de lui survivre.

Comment voir la permutation par vous-même ?

En maintenant la structure fixe et en ne changeant que la couleur de départ. Permutez le jeu de primitives derrière une structure de rôles fixe — redonnez une couleur de départ à la palette, regardez chaque rôle se re-remplir à partir des nouvelles rampes, et vérifiez quels mappages rôle-vers-cran les planchers de contraste forcent à bouger.

Continuer la lecture

  • Chartes de marque vs design tokens

    Avez-vous besoin de chartes de marque, de design tokens, ou des deux ? Les chartes portent l'intention dont les humains ont besoin ; les tokens portent les valeurs exactes que consomment les outils. Reliez-les.

  • D'une couleur de marque à un système de design complet

    Une palette de couleurs de marque qui fonctionne est un système, pas un échantillon : ce que contient une palette complète — rampes, rôles, tokens — et pourquoi un seul hex plus des teintes se désagrège.