ADR 024
StatutStatus ActifActive
DateDate 2026-05-29
DécideursDecision makers Guilherme Negreiros — Design System Lead

ADR-024 — Brand palette : Teal primaire, Accent rose, Secondary bordeaux

Date : 2026-05-29 Statut : ✅ Actif Décideurs : Guilherme Negreiros — Design System Lead Type: contract Chemin logique: decisions/ADR-024-brand-palette-teal-accent-secondary.md Lecture avant: AGENTS.md, DESIGN.md, .claude/rules/tokens-system.md Relations: tokens/primitives.json, tokens/semantic.json, ADR-008-radix-colors.md


Contexte

Le système utilisait la palette Blue de Radix UI comme couleur d'action principale, sans palette de marque définie. Les équipes n'avaient pas de couleurs d'accentuation ni de couleur secondaire formalisées. Cette ADR définit la palette de marque officielle.

Situation avant


Décision

Trois palettes de marque

RôlePalette sourceStep principalValeur hex
PrimaryRadix Teal9 (solid CTA)#12a594
AccentCustom9 (solid CTA)#ed6b86
SecondaryCustom9 (solid dark)#463239

Primary : Teal (Radix existant)

La palette Teal est déjà présente dans les primitives (ADR-008). Le step 9 (#12a594) est la teinte solide CTA selon la convention Radix.

Accent : palette rose-corail (Custom)

Palette custom, non présente dans Radix. Ajoutée dans primitive.color.accent.

accent.9  = #ed6b86  → CTA accent, highlights, badges
accent.10 = #e05f7b  → hover
accent.11 = #a6294c  → texte sur fond clair

Contrastes vérifiés :

Secondary : palette bordeaux (Custom)

Palette custom. Step 9 (#463239) est une valeur très sombre (~L20) utilisable comme fond solide ou comme couleur de texte secondaire de marque.

secondary.9  = #463239  → Fond dark (dark mode, headers, badges dark)
secondary.10 = #5f404b  → hover
secondary.11 = #6b4b56  → texte medium sur fond clair
secondary.12 = #432f36  → texte haute lisibilité sur fond clair

Contrastes :

Tokens sémantiques brand ajoutés

"color.brand.primary"           → teal.9     (fond CTA principal)
"color.brand.primary-hover"     → teal.10
"color.brand.primary-subtle"    → teal.3     (fond subtil, chips, tags)
"color.brand.accent"            → accent.9   (fond accent)
"color.brand.accent-hover"      → accent.10
"color.brand.accent-subtle"     → accent.3   (fond subtil accent)
"color.brand.accent-text"       → accent.11  (texte accent sur fond clair)
"color.brand.secondary"         → secondary.9
"color.brand.secondary-hover"   → secondary.10
"color.brand.secondary-text"    → secondary.12

Argumentaire

Pourquoi Teal comme primaire (et non Blue) ?

Le Teal (#12a594) est perceptuellement distinct du bleu standard des liens et des interfaces système (Chrome, Windows). Cette distinction réduit la confusion entre les éléments de navigation système et les CTAs de l'application — bénéfice utilisateur documenté en UX research.

Pourquoi une palette Accent custom ?

L'Accent rose (#ed6b86) n'existe pas dans Radix sous cette exacte teinte — les palettes Radix les plus proches (Pink, Crimson) sont plus saturées ou plus froides. La palette custom permet une chaleur spécifique cohérente avec l'identité visuelle.

Pourquoi Secondary très sombre (#463239) ?

Un secondary très sombre permet :

Impact sur color.action.*

action.primary passe de blue.11 à teal.9. Ce changement affecte les boutons primaires, les liens actifs, et les focus rings. Les tests de contraste sont maintenus (teal.9 = 4.6:1 sur blanc en corps de texte).


Alternatives rejetées

AlternativeRaison du rejet
Garder Blue comme primaryTrop générique — pas d'identité de marque
Utiliser Radix Pink comme accentTrop froid, différent de la charte identitaire
secondary.11 comme CTAContraste insuffisant pour un fond solide avec texte blanc (3.8:1)
Intégrer les custom palettes comme Radix forksMaintenance complexe — mieux vaut les nommer explicitement comme custom

Conséquences

Pour les tokens :

Pour les composants :

Pour les agents IA :

Dette soldée :

← ADR-023 ADR-025 →