Des palettes de couleurs pour le mode sombre qui tiennent la route

Choisir des couleurs sombres que vous aimez prend dix minutes. Les faire survivre à une interface réelle — états désactivés, bordures sur deux surfaces, un accent qui respecte toujours le contraste — est la partie qui pose problème. Voici cette partie, avec les chiffres de palettes réellement déployées.

Mis à jour 2026-07-27

Le mode sombre doit-il être en noir pur?

Presque jamais, et il est utile de comprendre pourquoi avec des chiffres plutôt que par simple règle empirique. Voici les fonds sombres et les surfaces de cartes de cinq palettes distinctes, en HSL :

Arrière-planCarteTeinte neutre
Industriel chaud30 8% 10%24 7% 14%Orange-brun chaud
Produit neutre0 0% 10%0 0% 15%Gris pur
Bleu d'archive222 31% 11%222 34% 15%Bleu profond
Vert discret128 40% 8%137 26% 11%Vert forêt
Tableau de bord Earth36 10% 10%36 7% 14%Sable chaud
Fonds sombres et surfaces de cartes de cinq design kits, extraits de leurs fichiers de tokens live. Les valeurs sont en HSL : teinte, saturation, luminosité.

Trois modèles, tous cohérents, aucun n'est le fruit du hasard.

  • Rien n'est à 0 % de luminosité. La valeur la plus sombre est à 8 %. Le noir pur est la seule valeur qui ne laisse aucune marge de manœuvre : dès que vous avez besoin d'une surface *sous* l'arrière-plan, vous êtes bloqué.
  • Les cartes sont plus claires que l'arrière-plan, de 3 à 5 points. Dans les interfaces sombres, l'élévation se traduit par une luminosité accrue. Cela inverse l'instinct du mode clair, où une carte est souvent l'élément le plus clair posé sur une page teintée.
  • Un seul des cinq est un vrai gris. Les autres portent une teinte — 30, 222, 128, 36 — généralement orientée vers la couleur d'accentuation. Un neutre sombre teinté paraît travaillé ; un neutre sans teinte paraît être un réglage par défaut, car c'est précisément ce qu'il est.

Le seul cas justifiant un presque-noir

Les écrans OLED consomment réellement moins d'énergie avec le #000000, et une interface média ou photographique peut vouloir faire disparaître le cadre. C'est un compromis délibéré au détriment d'une plage d'élévation, et cela fonctionne quand le contenu fournit lui-même le contraste. Ce n'est pas un choix par défaut polyvalent, et ce n'est pas ce que la plupart des gens recherchent en choisissant le noir.

Le mode sombre n'est pas une inversion

Le moyen le plus rapide d'obtenir un mauvais mode sombre est d'inverser la luminosité de chaque valeur du mode clair. Quatre éléments spécifiques s'en trouvent brisés, approximativement dans cet ordre :

  1. Les ombres ne fonctionnent plus. Une ombre est une zone d'obscurité projetée sur une surface plus claire. Sur une surface sombre, il n'y a plus rien à assombrir ; tous vos indices d'élévation disparaissent silencieusement et l'interface s'aplatit.
  2. L'accent manque de contraste. Une couleur de marque saturée et moyenne, parfaitement lisible sur blanc, est souvent trop sombre sur un fond presque noir. L'inversion des neutres ne la modifie pas, elle échoue donc discrètement plutôt qu'évidemment.
  3. Les bordures disparaissent ou deviennent criardes. En mode clair, une bordure est une ligne légèrement plus sombre. Inversée, elle devient une ligne légèrement plus claire — qui soit disparaît face à la carte, soit brille sur l'arrière-plan, selon la surface sur laquelle elle se trouve.
  4. Les états désactivés et atténués s'effondrent. En mode clair, ce sont des gris plus clairs. Inversés, ils deviennent des gris foncés sur un fond sombre, et l'état « atténué » devient « invisible ».
Une palette sombre est un second design, pas un filtre appliqué au premier.

L'élévation sans ombre

Les ombres étant indisponibles, les interfaces sombres expriment la profondeur via la luminosité des surfaces. C'est précisément le rôle de l'écart entre l'arrière-plan et la carte dans le tableau ci-dessus : chaque niveau supérieur dans la pile correspond à un gain de luminosité.

Vous avez besoin d'au moins trois niveaux, et il est préférable de les nommer plutôt que d'improviser : l'arrière-plan de la page, une surface surélevée (cartes, panneaux) et une surface de superposition (popovers, menus déroulants, dialogues) qui surplombe les deux autres. Un espacement de 3 à 5 points de luminosité permet de garder des limites lisibles sans transformer l'écran en zébrure. En dessous de 3 points, les niveaux ne sont plus distinguables à une luminosité normale ; au-delà de 6, la surface supérieure commence à ressembler à un panneau de mode clair parachuté là.

Surface vs surface tonale

Certains systèmes distinguent une surface surélevée neutre d'une surface *tonale* qui mélange un peu de la teinte de la marque dans l'élévation. Les deux approches sont légitimes. La version tonale donne l'impression que toute l'interface est délibérément colorée plutôt que d'être un « gris avec un accent » ; la version neutre réserve la signification des couleurs aux éléments qui en ont besoin. Choisissez-en une et appliquez-la partout — les mélanger est ce qui donne à un thème sombre l'air de deux thèmes différents.

Les accents doivent évoluer

Regardez à nouveau les couleurs primaires de ces cinq kits : 12 71% 46%, 46 85% 60%, 225 63% 80%, 114 47% 50%, 23 92% 60%. Toutes sont des teintes claires ou moyennes. Aucune n'est une version sombre et saturée de la teinte, car une couleur sombre et saturée sur une surface presque noire est à la fois difficile à lire et fatigante pour l'œil.

La règle générale est qu'un accent de mode clair doit être éclairci et généralement désaturé pour le mode sombre. L'éclaircissement apporte le contraste ; la désaturation empêche la couleur de « vibrer » contre le neutre sombre, un effet qui rend certains thèmes sombres physiquement épuisants. De plus, l'accent nécessite sa propre décision de premier plan : une couleur assez lumineuse pour être lisible sur fond sombre est souvent assez lumineuse pour nécessiter un texte *sombre* par-dessus, soit l'inverse du couple utilisé en mode clair.

Vérifiez les deux directions par rapport à un objectif de contraste. Le texte du corps sur l'arrière-plan est évident ; les deux points souvent oubliés sont le texte atténué sur une carte et le premier plan de l'accent sur l'accent lui-même.

Cinq échantillons ne constituent pas une palette

C'est là que la plupart des galeries de palettes vous abandonnent. Une rangée de cinq codes hexadécimaux vous donne l'ambiance, mais ne répond à presque aucune des questions qu'un écran réel pose : quelle est la couleur d'une bordure sur une carte, à quoi ressemble un texte atténué sur une superposition, quel aspect a un bouton destructif lorsqu'il est désactivé, quelle est la couleur de l'anneau d'un champ de saisie focalisé.

Token specimen · real values

Ambient Sage

Live render

Ambient Sage's actual tokens — the same values its exports use.

Color tokensSemantic roles with HEX / HSL / CMYK

Color tokens

Ambient Sage

dark · HEX · HSL · CMYK

Core

#1A1C17

background

H 84 · C7, 0, 18, 89

#E3E4DC

foreground

H 68 · C0, 0, 4, 11

#242620

card

H 80 · C5, 0, 16, 85

#292B24

muted

H 77 · C5, 0, 16, 83

#35372E

border

H 73 · C4, 0, 16, 78

Brand

#FEE951

primary

H 53 · C0, 8, 68, 0

#1A1C17

primary-fg

H 84 · C7, 0, 18, 89

#2F3129

secondary

H 75 · C4, 0, 16, 81

#F7E464

accent

H 52 · C0, 8, 60, 3

#FEE951

ring

H 53 · C0, 8, 68, 0

Semantic

#CC3333

destructive

H 0 · C0, 75, 75, 20

#FFFFFF

destructive-fg

H 0 · C0, 0, 0, 0

#66BB6A

success

H 123 · C45, 0, 43, 27

#FFA726

warning

H 36 · C0, 35, 85, 0

#FFFFFF

muted-fg

H 0 · C0, 0, 0, 0

Charts

#FEE951

chart-1

H 53 · C0, 8, 68, 0

#64B5F6

chart-2

H 207 · C59, 26, 0, 4

#81C784

chart-3

H 123 · C35, 0, 34, 22

#F48FB1

chart-4

H 340 · C0, 41, 27, 4

#FFCC80

chart-5

H 36 · C0, 20, 50, 0

Un ensemble sombre complet : des rôles nommés plutôt que des échantillons, chacun avec son hexadécimal. Chacun de ces rôles correspond à une question qu'un composant poserait autrement à la personne — ou à l'agent — qui le construit.

La liste des rôles est la même dans les deux modes, et c'est là tout l'intérêt : background, foreground, card, card-foreground, popover, popover-foreground, muted, muted-foreground, primary, primary-foreground, secondary, accent, destructive, border, input, ring, plus les séries de graphiques. Définissez-les une fois par mode et chaque composant se résout sans intervention manuelle. Si vous les ignorez, chaque nouvel écran devra faire un choix différent. La liste complète et l'utilité de chaque rôle se trouvent dans explications sur les design tokens de couleurs sémantiques.

Ambient Sage

Live render

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

Ambient Sage/Dashboard
Search...⌘K
AS

Dashboard

Welcome back — here's how Ambient Sage 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

Ces mêmes rôles rendus sous forme d'interface. Une palette n'est testable qu'une fois appliquée sur un écran avec une hiérarchie réelle.

Quatre palettes sombres complètes et ce qui les distingue

Tout ce qui précède est une règle. Voici quatre ensembles sombres qui s'y conforment, choisis parce qu'ils résolvent le même problème de manières visiblement différentes. Observez le couple background et card dans chacun d'eux : cet écart constitue le modèle d'élévation, et c'est la décision qui détermine le plus si une UI sombre paraît conçue ou simplement inversée.

Preview unavailable here. Browse complete kits in the kit gallery.

Token specimen · real values

Files Archival

Live render

Files Archival's actual tokens — the same values its exports use.

Color tokensSemantic roles with HEX / HSL / CMYK

Color tokens

Files Archival

dark · HEX · HSL · CMYK

Core

#191919

background

H 0 · C0, 0, 0, 90

#FAF6F3

foreground

H 26 · C0, 2, 3, 2

#242424

card

H 0 · C0, 0, 0, 86

#2A2A2A

muted

H 0 · C0, 0, 0, 84

#333333

border

H 0 · C0, 0, 0, 80

Brand

#4A6FE0

primary

H 225 · C67, 50, 0, 12

#FFFFFF

primary-fg

H 0 · C0, 0, 0, 0

#3D2B2E

secondary

H 350 · C0, 30, 25, 76

#F5DB7B

accent

H 47 · C0, 11, 50, 4

#4A6FE0

ring

H 225 · C67, 50, 0, 12

Semantic

#C9362A

destructive

H 5 · C0, 73, 79, 21

#FFFFFF

destructive-fg

H 0 · C0, 0, 0, 0

#2D7A4F

success

H 146 · C63, 0, 35, 52

#D4921A

warning

H 39 · C0, 31, 88, 17

#9A8E88

muted-fg

H 20 · C0, 8, 12, 40

Charts

#4A6FE0

chart-1

H 225 · C67, 50, 0, 12

#E29AA5

chart-2

H 351 · C0, 32, 27, 11

#F5DB7B

chart-3

H 47 · C0, 11, 50, 4

#E05040

chart-4

H 6 · C0, 64, 71, 12

#D2BDB6

chart-5

H 15 · C0, 10, 13, 18

L'approche archivistique : un fond plus chaud et plus clair qui n'atteint jamais le noir, où la séparation est assurée par des bordures plutôt que par un saut de luminosité de surface.
Preview unavailable here. Browse complete kits in the kit gallery.

Token specimen · real values

The Social Club

Live render

The Social Club's actual tokens — the same values its exports use.

Color tokensSemantic roles with HEX / HSL / CMYK

Color tokens

The Social Club

dark · HEX · HSL · CMYK

Core

#2E2C1F

background

H 52 · C0, 4, 33, 82

#F4F0E4

foreground

H 45 · C0, 2, 7, 4

#3C3A29

card

H 54 · C0, 3, 32, 76

#3C3A29

muted

H 54 · C0, 3, 32, 76

#4E503A

border

H 65 · C2, 0, 28, 69

Brand

#D6D84A

primary

H 61 · C1, 0, 66, 15

#1A1800

primary-fg

H 55 · C0, 8, 100, 90

#736E4E

secondary

H 52 · C0, 4, 32, 55

#D6D84A

accent

H 61 · C1, 0, 66, 15

#D6D84A

ring

H 61 · C1, 0, 66, 15

Semantic

#9C3C2C

destructive

H 9 · C0, 62, 72, 39

#FFFFFF

destructive-fg

H 0 · C0, 0, 0, 0

#2D702C

success

H 119 · C60, 0, 61, 56

#C47A15

warning

H 35 · C0, 38, 89, 23

#C4C1AE

muted-fg

H 52 · C0, 2, 11, 23

Charts

#D6D84A

chart-1

H 61 · C1, 0, 66, 15

#9C3C2C

chart-2

H 9 · C0, 62, 72, 39

#426063

chart-3

H 185 · C33, 3, 0, 61

#2D702C

chart-4

H 119 · C60, 0, 61, 56

#945C37

chart-5

H 24 · C0, 38, 63, 42

Un ensemble olive et jaune, le cas le plus difficile ici — un accent à faible luminosité nécessite que son premier plan soit vérifié dans les deux directions, et non supposé être blanc.

Comment analyser rapidement quatre palettes

Ignorez d'abord l'accent ; c'est la partie dont vous vous souviendrez, mais c'est celle qui importe le moins structurellement. Comparez background et card pour voir le modèle d'élévation, puis muted-foreground et card pour voir si le texte secondaire survit sur une surface surélevée. Ces deux comparaisons prédisent l'essentiel du comportement de la palette sur un écran réel.

Pourquoi c'est devenu urgent

Les interfaces sont de plus en plus conçues par des agents de code s'appuyant sur un brief écrit, et le mode sombre est l'élément le plus fréquemment oublié dans ces briefs. Nous avons analysé 299 fichiers DESIGN.md publics — le fichier qu'un agent de code lit avant de générer l'UI — pour mesurer leur contenu.

Part des fichiers
Aucun mode sombre69%
Aucun rôle de couleur sémantique — hexadécimal brut uniquement86%
Aucune interdiction, seulement des préférences76%
Omissions relevées dans 72 fichiers DESIGN.md de design visuel publics. La détection s'appuie sur les titres et se veut volontairement large ; ces chiffres constituent donc un minimum.

La conséquence est prévisible. Si on lui demande une variante sombre sans instructions écrites, l'agent inverse les gris — précisément l'erreur qui brise les quatre points mentionnés précédemment. Il produit un résultat plausible sur le premier écran, mais incohérent dès le cinquième ; et comme chaque écran semble correct individuellement, personne ne s'en aperçoit avant que l'application entière ne soit bâtie.

Un test de dix minutes

  1. 1

    Superposez trois surfaces

    Placez un overlay sur une carte, elle-même sur le fond, avec une bordure d'un pixel sur chaque élément. Si une limite disparaît, vos paliers de luminosité sont trop proches ou votre rôle de bordure remplit une double fonction.

  2. 2

    Affichez du texte atténué sur chaque surface

    Pas seulement sur le fond. C'est sur le texte atténué des cartes que les palettes inversées échouent généralement, alors qu'il s'agit de l'état de texte le plus courant dans une interface dense.

  3. 3

    Créez une confirmation d'action destructive

    Cela permet de tester simultanément la couleur destructive, son premier plan, son état de survol et sa bordure — le groupe de rôles que l'on définit en dernier et que l'on utilise en premier.

  4. 4

    Testez le focus

    Naviguez avec la touche Tab vers un champ de saisie. L'anneau de focus est une couleur que personne ne choisit délibérément ; c'est donc soit votre couleur d'accentuation qui remplit un rôle pour lequel elle est inadaptée, soit un défaut du navigateur que personne n'a souhaité.

  5. 5

    Examinez un tableau dense

    L'exercice le plus difficile pour une palette sombre est d'aligner trois nuances de gris. Une palette qui survit à un tableau de paramètres survivra sans effort à une page marketing ; l'inverse n'est pas vrai.

Erreurs courantes

  • Partir du noir pur. Cela supprime le niveau inférieur à votre arrière-plan avant même que vous ne réalisiez que vous en avez besoin.
  • Réutiliser la couleur d'accentuation du mode clair sans modification. Elle doit généralement être éclaircie, souvent désaturée, et peut nécessiter un texte sombre par-dessus.
  • Conserver les ombres tout en ajoutant des paliers de luminosité. Choisissez un seul langage d'élévation. Cumuler les deux donne l'impression que les surfaces surélevées sont floues.
  • Ne définir que les besoins du premier écran. Les rôles que vous oubliez sont ceux que l'écran suivant inventera, et il les inventera différemment.
  • Tester sur une page marketing. Les sections Hero flattent toutes les palettes. Testez sur l'écran le plus dense de votre interface.

Explorez des palettes sombres complètes, pas seulement des rangées d'échantillons

Chaque kit ici définit tous ses rôles de couleur en modes clair et sombre, ainsi que la typographie, les rayons de courbure et les animations — installables via un seul élément de registre shadcn. Les kits gratuits ne nécessitent aucun compte.

FAQ

Dois-je utiliser le noir pur pour le mode sombre?

Généralement non. Sur cinq palettes de livraison, le fond le plus sombre est à 8 % de luminosité HSL et aucun n'est à 0 %. Le noir pur ne laisse aucune surface sous le fond, ce qui fait perdre la capacité d'afficher quoi que ce soit en retrait. L'exception est un contexte d'économie d'énergie OLED ou de visionnage de médias où le cadre est censé disparaître.

Le mode sombre consiste-t-il simplement à inverser la palette claire?

Non. Quatre éléments échouent : les ombres ne fonctionnent plus car il n'y a plus rien à assombrir, l'accent échoue généralement au test de contraste, les bordures disparaissent ou deviennent lumineuses selon la surface sur laquelle elles reposent, et les états atténués ou désactivés deviennent invisibles. Une palette sombre est un second design, pas un filtre.

Comment afficher l'élévation en mode sombre sans ombres?

Grâce à la luminosité des surfaces. Définissez au moins trois niveaux — fond, surface surélevée, overlay — espacés d'environ 3 à 5 points de luminosité HSL. En dessous de 3 points environ, les niveaux ne sont plus distinguables ; bien au-dessus de 6, la surface supérieure commence à ressembler à un panneau en mode clair.

Quelle est la différence entre une surface et une surface tonale?

Une surface neutre n'augmente que la luminosité ; une surface tonale intègre également une partie de la teinte de la marque à mesure qu'elle augmente. Le tonal donne à l'interface entière une impression de couleur délibérée, le neutre préserve la signification des couleurs pour les éléments qui en ont besoin. Les deux fonctionnent, mais les mélanger au sein d'un même thème ne le permet pas.

Mes couleurs de marque fonctionnent-elles en mode sombre?

Généralement pas sans modification. Une teinte moyenne saturée qui se lit bien sur blanc a tendance à être trop sombre et trop vibrante sur une surface presque noire. Éclaircissez-la pour le contraste, désaturez-la légèrement pour éviter l'effet de vibration, et vérifiez si elle nécessite désormais du texte sombre plutôt que clair par-dessus.

De combien de couleurs une palette sombre a-t-elle besoin?

Environ 28 rôles nommés, et non cinq échantillons : background et foreground, card, popover, muted, primary, secondary, accent, destructive et leurs foregrounds respectifs, plus border, input, ring et les séries de graphiques. Tout ce que vous laissez indéfini sera inventé écran par écran, de manière différente à chaque fois.