Qu'est-ce que DESIGN.md ? Format, contenu et erreurs courantes

Tous les guides sur le sujet décrivent le format. Nous avons préféré mesurer ce que les gens écrivent réellement en analysant 299 fichiers DESIGN.md publics extraits de GitHub. La plupart ne correspondent pas à vos attentes, et c'est précisément cet écart entre le format et la pratique qui est intéressant.

Mis à jour 2026-07-27

Qu'est-ce que DESIGN.md et d'où vient-il ?

DESIGN.md a vu le jour chez Google Labs comme format supportant Stitch, son outil de génération d'UI. Google a rendu la spécification open source, et la spécification est désormais hébergée sur GitHub. Elle s'est rapidement diffusée au-delà de Google : Atlassian a publié un retour d'expérience sur le test d'un contexte de design portable en pratique, et un écosystème de catalogues s'est développé autour.

L'extension .md signifie simplement markdown. Le fichier n'a pas de syntaxe spéciale, pas de schéma de validation, ni d'étape de build. C'est délibéré : un agent le lit comme n'importe quel autre fichier de votre dépôt.

Pourquoi un fichier plutôt qu'un prompt

Un agent de code chargé de construire une UI doit puiser ses valeurs visuelles quelque part. En l'absence de source, il utilise les valeurs par défaut des bibliothèques — c'est pourquoi les produits créés par IA convergent vers un même look. Vous pouvez fournir des valeurs dans un prompt, mais les prompts appartiennent à une conversation, et les conversations s'estompent à mesure qu'elles s'allongent.

Un fichier, lui, ne s'estompe pas. C'est tout le principe du mécanisme, et tout le reste du format en découle.

Le format n'est pas complexe. Il réside simplement à un endroit qui est relu systématiquement, ce qui s'avère être l'essentiel de la solution.

Que contiennent réellement les fichiers DESIGN.md ?

Plutôt que de faire des suppositions, nous avons procédé à un échantillonnage. Nous avons extrait 299 fichiers DESIGN.md situés à la racine de dépôts via la recherche de code GitHub et analysé leur contenu. Le premier résultat a été surprenant et recadre tout le reste.

Seuls 24 % des fichiers DESIGN.md publics concernent le design

Sur 299 fichiers, seuls 72 comportaient une section sur les couleurs ou la typographie. Le reste sont des documents d'architecture logicielle — comment un système est construit, et non à quoi un produit ressemble. DESIGN.md est un nom de fichier sujet à collision, et la signification liée au design visuel est actuellement minoritaire. Si vous en ajoutez un à un dépôt, attendez-vous à ce que certains lecteurs s'attendent à trouver un document d'architecture.

Parmi ces 72 fichiers de design visuel authentiques, le constat est constant. Le fichier médian compte 1 337 mots sur 263 lignes ; ce ne sont donc pas des ébauches, les auteurs y consacrent un effort réel. Ils se concentrent sur les trois mêmes sections et en oublient les quatre mêmes.

Fichiers concernés
Typographie83%
Couleur67%
Composants67%
Espacement57%
Motifs ou principes43%
Élévation26%
Mouvement25%
À faire et à ne pas faire24%
Accessibilité22%
Rayon (Radius)21%
Iconographie10%
Couverture des sections parmi 72 fichiers DESIGN.md de design visuel publics. La détection est basée sur les titres et est délibérément généreuse ; il s'agit donc d'une limite supérieure — la couverture réelle est inférieure, et non supérieure.

La couleur et la typographie sont quasi universelles. Le rayon, l'élévation, l'iconographie et l'accessibilité sont rares. Et une omission est plus critique que toutes les autres, car elle reste invisible jusqu'à ce que quelqu'un active un interrupteur.

Le problème du mode sombre : 69 % des fichiers l'ignorent

Sur les 72 fichiers de design visuel analysés, 50 ne contiennent aucun mode sombre — pas de bloc .dark, pas de prefers-color-scheme, pas de second jeu de valeurs. Soit 69 %.

C'est la lacune la plus lourde de conséquences dans la pratique actuelle, et elle échoue silencieusement. Tout semble correct en mode clair. Puis l'utilisateur bascule le thème et l'agent doit inventer chaque valeur sombre à la volée : un arrière-plan jamais choisi, un premier plan dont le contraste n'a jamais été vérifié, une couleur d'accentuation qui s'efface car personne n'a augmenté sa chroma pour un fond sombre.

Le mode sombre n'est pas une inversion

Inverser l'échelle de luminosité produit un thème sombre où l'accent est délavé et où l'élévation ne fonctionne plus, car les ombres sont à peine perceptibles sur des fonds sombres. Élevez plutôt les surfaces au lieu d'approfondir les ombres, évitez le noir pur pour l'arrière-plan, évitez le blanc pur pour le premier plan, et augmentez la chroma des accents plutôt que de la réduire.

## Color

### Light
--background: oklch(0.98 0.006 85)
--foreground: oklch(0.22 0.014 85)
--card:       oklch(1 0 0)
--muted-foreground: oklch(0.48 0.012 85)
--primary:    oklch(0.52 0.13 152)
--border:     oklch(0.90 0.008 85)

### Dark
--background: oklch(0.17 0.010 85)   /* not pure black */
--foreground: oklch(0.95 0.006 85)   /* not pure white */
--card:       oklch(0.22 0.010 85)   /* raised, not shadowed */
--muted-foreground: oklch(0.70 0.010 85)
--primary:    oklch(0.68 0.16 152)   /* higher chroma to survive the dark ground */
--border:     oklch(0.30 0.010 85)
Les deux modes définis ensemble. C'est l'ajout le plus précieux que vous puissiez apporter à un fichier existant.

Seulement 6 % des fichiers analysés utilisent OKLCH. Le passage à ce format en vaut la peine ici spécifiquement parce que son canal de luminosité est perceptuellement uniforme, vous permettant ainsi de modifier une teinte sans avoir à revérifier chaque paire de contraste.

Que doit contenir un DESIGN.md, section par section ?

Couleur — rôles sémantiques, les deux modes

La décision la plus cruciale du fichier est de nommer par *rôle* plutôt que par teinte. --primary indique à un agent où placer la valeur ; --blue-600 ne le fait pas. Les rôles lui permettent d'appliquer correctement votre système dans des situations que vous n'aviez pas anticipées, et ils survivent à un rebranding.

86 % des fichiers analysés n'utilisent aucun nom de rôle sémantique. Ils listent des codes hexadécimaux ou nomment les couleurs par teinte. C'est là toute la différence entre un fichier qu'un agent peut appliquer à un composant que vous n'avez jamais décrit et un fichier dont il ne peut que copier les valeurs. C'est la couche de tokens sémantiques qui effectue ici le travail réel.

Typographie — familles, échelle et usage

Nommez les familles, les graisses, l'approche (tracking) et les paliers de l'échelle. L'erreur classique est d'écrire *une police serif pour les titres, une sans-serif pour le corps* — une instruction que l'agent doit interpréter, et il le fera différemment à chaque fois.

## Typography

Heading: "Fraunces", serif — 600, tracking -0.02em
Body:    "Inter", sans-serif — 400, line-height 1.6
Mono:    "JetBrains Mono" — 400, tabular figures in tables

Scale: 0.8125 / 0.875 / 1 / 1.25 / 1.5 / 2 / 3rem
H1 uses 3rem at 1.05 line-height; body copy never exceeds 68ch.
Preview unavailable here. Browse complete kits in the kit gallery.

Espacement, rayon, élévation

Une échelle d'espacement, un rayon qui varie selon la taille de l'élément et deux ou trois niveaux d'élévation cohérents avec une source lumineuse. Le rayon n'est couvert que par 21 % des fichiers et l'élévation par 26 %, ce qui explique pourquoi tant d'UI générées appliquent un angle de 0.5rem sur chaque élément, quelle que soit sa taille.

## Spacing
Scale: 4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 96px
Section rhythm: 96px desktop, 64px mobile.

## Radius
sm 0.25rem (inputs) · md 0.5rem (buttons) · lg 0.875rem (cards) · xl 1.25rem (modals)

## Elevation
0 flush — use a border, no shadow
1 cards — 0 1px 2px rgb(0 0 0 / 0.06)
2 dropdowns — 0 4px 12px rgb(0 0 0 / 0.08)
Dark mode: raise the surface, do not deepen the shadow.

Motifs et interdictions — la partie que la plupart des fichiers oublient

Les tokens indiquent à un agent quelles valeurs utiliser. Ils ne disent rien sur la marche à suivre face à un composant que votre fichier n'a jamais mentionné. Les motifs et les interdictions comblent ce vide ; ils font la différence entre un fichier qui contraint le résultat et un fichier qui se contente de le colorer.

76 % des fichiers ne mentionnent aucune interdiction et 57 % aucun motif. Ce sont les deux sections les plus simples à rédiger et les plus souvent absentes.

## Motifs
- Hairline rules separate sections; no boxed cards on marketing pages.
- Numerals are tabular everywhere they can be compared.
- One accent per screen. If two things compete, one becomes muted.

## Don't
- No gradient text, ever.
- No shadow on a flush surface — use --border.
- Never hardcode a hex. If a role is missing, add the role.

Traitement des composants et iconographie

Couvrez les primitives qui portent le plus d'identité : boutons, champs de saisie et cartes, avec leurs différents états. Vous n'avez pas besoin de lister chaque composant. L'iconographie est la section la plus simple du fichier et la plus rare en pratique (10 %) — nommez la bibliothèque d'icônes, l'épaisseur du trait, les paliers de taille et ajoutez une ligne sur le traitement des images.

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

Quelles sont les erreurs les plus courantes ?

Au-delà des sections manquantes, un mode d'échec apparaît dans plus de la moitié du corpus : l'utilisation d'un adjectif là où une valeur est attendue.

54 % des fichiers analysés contiennent au moins un adjectif vague en guise de décision. Les plus fréquents étaient *clean* (39 % des fichiers), *modern* (36 %) et *professional* (22 %), suivis de *generous whitespace*, *elegant* et *beautiful*. De plus, 44 % ne contiennent aucune valeur concrète d'espacement ou de taille dans tout le fichier.

Le test pour chaque ligne

Lisez une ligne et demandez-vous si deux personnes compétentes produiraient les mêmes pixels à partir de celle-ci. « Clean and modern » échoue. « 96px entre les sections sur desktop » réussit. Tout ce qui échoue est une décision que vous n'avez pas encore prise, et l'agent la prendra pour vous — différemment à chaque fois.

  1. Des adjectifs au lieu de valeurs. Le défaut le plus courant, présent dans plus de la moitié des fichiers.
  2. Mode sombre omis. Dans 69 % des cas, et l'échec est silencieux.
  3. Couleurs nommées par teinte plutôt que par rôle. Dans 86 % des cas, et cela pose problème dès que l'agent rencontre un composant que vous n'avez pas décrit.
  4. Aucune interdiction. Dans 76 % des cas. Les interdictions sont suivies plus rigoureusement que les préférences.
  5. Une section qui dit « utilisez votre jugement ». Pire que l'absence de section, car elle redonne exactement la discrétion que le reste du fichier tentait de supprimer.

Où placer le fichier et comment les agents le trouvent-ils ?

Placez-le à la racine du dépôt, à côté de AGENTS.md. La racine est cruciale : un DESIGN.md imbriqué dans docs/ est un document pour les humains, alors que les agents qui recherchent cette convention regardent la racine.

Référencez-le ensuite dans vos instructions d'agent en une ligne, afin qu'il soit découvert plutôt que trouvé par hasard. Il est un complément de ces fichiers et non un concurrent — ces quatre fichiers remplissent des rôles différents.

# AGENTS.md

## Design
Never hardcode theme colors, spacing or radii. Use the tokens in DESIGN.md.
Formulez-le comme une interdiction. Les interdictions sont suivies plus rigoureusement que les préférences.

AGENTS.md est la convention plus large pour les instructions d'agent et est lue par un nombre croissant d'outils. DESIGN.md contient le contrat visuel ; AGENTS.md y renvoie.

À quoi ressemble un fichier complet une fois rendu ?

C'est l'élément que tous les autres guides oublient. Un DESIGN.md ne vaut que par l'interface qu'il produit ; les sections précédentes ne sont pas une illustration, mais la forme sérialisée du kit ci-dessous.

Terrain Vivant

Live render

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

Terrain Vivant/Dashboard
Search...⌘K
TV

Dashboard

Welcome back — here's how Terrain Vivant is performing today.

Jan 1 – Jan 30, 2026
Overview
Analytics
Reports
Notifications

Active users

12.6k

+4%

Trending up this month

vs. previous 30 days

MRR

$64.6k

+12%

Strong recurring growth

Net of churn

Retention

94%

+1%

Engagement above target

Rolling 28-day window

NPS

54

+6

Meets growth projections

Survey · n=1,204

Total revenue

Last 12 months

$64.6k+18.2%

12m30d7d
JanFebMarAprMayJunJulAugSepOctNovDec

Recent sales

You closed 265 deals this month.

AR

Alex Rivera

alex@terrainvivant.com

+$1,999.00
MO

Mira Okonkwo

mira@terrainvivant.com

+$39.00
JF

Jonas Feld

jonas@terrainvivant.com

+$299.00
SQ

Sana Qureshi

sana@terrainvivant.com

+$99.00
TL

Theo Lindgren

theo@terrainvivant.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

Space Mono

Color system

28 semantic roles, light + dark

Agent outputs

DESIGN.md, CSS, Tailwind, shadcn

Les tokens, la typographie et les motifs des sections précédentes, rendus sous forme de système actif.

Kit showcase · live surfaces

Terrain Vivant

Live render

Terrain Vivant rendered from its real tokens across 3 surfaces.

Landing pageFull marketing page — hero, social proof, features, a metrics/graph section, and CTA — as alternating full-bleed bands in the kit's captured surfaces. Scroll to explore.
TV
Terrain Vivant
Sign in
Institutional, report, and campaign microsite teams

Sample headline

Supporting copy goes here.

terrainvivant.com/overview

Active users

12.6k

+4%

MRR

$64.6k

+12%

Retention

94%

+1%

Trusted by teams atNorthwindLumenCedarVertexHalcyon

Why Terrain Vivant

Everything you need to ship

Brochure websites

Clear defaults keep every screen consistent from first draft to launch.

Annual reports

Accessible components and visible states are built into the system.

Event microsites

Reusable patterns give product, marketing, and content one visual language.

By the numbers

Growth you can measure

Live

Monthly recurring revenue

$64.6k+12%

Targets

Active users12.6k
MRR$64.6k
Retention94%
All targets on track this quarter

Activity

Last 12 months of usage

Retention 94%NPS 54
JFMAMJJASOND

Start building with Terrain Vivant today

A bold two-color institutional editorial system built on vivid green and cobalt blue full-screen surfaces, with monospace type throughout and zero-radius geometry.

TV
Terrain Vivant

terrainvivant.com

Product

  • Features
  • Pricing
  • Changelog

Company

  • About
  • Careers
  • Contact

Resources

  • Docs
  • Guides
  • Status

© 2026 Terrain Vivant. All rights reserved.

App dashboardProduct UI: sidebar, KPI cards, area chart, recent sales, and a transactions table.
Terrain Vivant/Dashboard
Search...⌘K
TV

Dashboard

Welcome back — here's how Terrain Vivant is performing today.

Jan 1 – Jan 30, 2026
Overview
Analytics
Reports
Notifications

Active users

12.6k

+4%

Trending up this month

vs. previous 30 days

MRR

$64.6k

+12%

Strong recurring growth

Net of churn

Retention

94%

+1%

Engagement above target

Rolling 28-day window

NPS

54

+6

Meets growth projections

Survey · n=1,204

Total revenue

Last 12 months

$64.6k+18.2%

12m30d7d
JanFebMarAprMayJunJulAugSepOctNovDec

Recent sales

You closed 265 deals this month.

AR

Alex Rivera

alex@terrainvivant.com

+$1,999.00
MO

Mira Okonkwo

mira@terrainvivant.com

+$39.00
JF

Jonas Feld

jonas@terrainvivant.com

+$299.00
SQ

Sana Qureshi

sana@terrainvivant.com

+$99.00
TL

Theo Lindgren

theo@terrainvivant.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
Component sheetButtons, inputs, badges, controls — all shadcn, all themed.

Terrain Vivant UI

Every shadcn component, themed by this kit.

Buttons

Badges

Default
Secondary
Outline
SuccessWarning

Avatar / chips

TV
editorialinstitutionalflat

Form

Controls

Feedback

Onboarding72%

Sample headline

A bold two-color institutional editorial system built on vivid green and cobalt blue full-screen surfaces, with monospace type throughout and zero-radius geometry.

Tabs

AccountTeamBilling

Manage your account settings and preferences.

Alert

Heads up

Your trial ends in 7 days. Upgrade to keep access.

Tooltip

Add to library
Un seul et même fichier appliqué à trois interfaces. L'intérêt d'un DESIGN.md réside dans la cohérence assurée entre les différents contextes.

Faut-il l'écrire à la main ou le générer ?

Écrit à la mainGénéré à partir d'un kit
Idéal quandUne marque existe déjà et doit être transcriteOn part de zéro
Échec habituelAdjectifs au lieu de valeurs ; mode sombre omisAcceptation du premier résultat sans édition
Mode sombreAbsent dans 69 % des fichiers réelsDérivé en parallèle du mode clair
Motifs et interdictionsIgnorés dans 57 % et 76 % des casInclus, mérite une révision
Les deux fonctionnent. Ils échouent différemment.

Si vous l'écrivez à la main, les deux sections sur lesquelles vous devez vous forcer sont le mode sombre et les interdictions. Le corpus montre sans ambiguïté que ce sont celles que les gens sautent, et ce sont elles qui déterminent si le fichier impose réellement des contraintes.

Générez un DESIGN.md complet en une seule commande

Chaque kit Identity Forge est sérialisé en un fichier DESIGN.md complet — tokens light et dark, appairage de polices réel, motifs et interdits — et installe les fichiers de tokens correspondants. Les kits gratuits ne nécessitent aucun compte.

Who created DESIGN.md?

Google Labs, comme format pour son outil de génération d'UI Stitch. Google a rendu la spécification open source, laquelle se trouve désormais sur github.com/google-labs-code/design.md. L'adoption s'est étendue bien au-delà de Google — Atlassian a publié son propre retour d'expérience sur son utilisation.

Que signifie l'extension .md dans DESIGN.md ?

Simplement du Markdown. Il n'y a pas de syntaxe spéciale, pas de schéma et pas d'étape de build. Le fichier est en Markdown brut, donc un agent le lit exactement comme il lit tout autre fichier du dépôt.

Le fichier DESIGN.md est-il un standard officiel ?

Il s'agit d'une spécification publiée et open source avec une origine claire, plutôt que d'un standard ratifié. En pratique, les outils s'accordent sur la forme — un fichier Markdown de valeurs visuelles à la racine du dépôt — et varient selon les sections qu'ils lisent.

Où le fichier doit-il se trouver ?

À la racine du dépôt, aux côtés de AGENTS.md. Un fichier DESIGN.md placé dans docs/ est interprété comme une documentation destinée aux humains ; les agents qui suivent cette convention recherchent le fichier à la racine.

Quelle doit être sa longueur ?

La médiane des fichiers publics est de 1 337 mots. La longueur n'est pas l'enjeu, c'est l'exhaustivité qui compte. Un fichier de 400 mots incluant les deux modes de couleur, une échelle typographique et cinq interdictions est préférable à un fichier de 2 000 mots rempli d'adjectifs.

Puis-je copier le DESIGN.md de quelqu'un d'autre ?

C'est possible, mais vous obtiendrez leur image de marque. C'est un moyen raisonnable d'étudier le format, mais une mauvaise méthode pour définir une identité. Copiez la structure, mais générez les valeurs à partir de votre propre marque.

Est-ce que cela remplace un design system ?

C'est sa projection lisible par un agent. Si vous disposez de bibliothèques Figma et d'une bibliothèque de composants, DESIGN.md est le moyen par lequel leurs décisions sont transmises à un agent de code — et non un remplacement de celles-ci.

Et si mon agent l'ignore ?

Vérifiez trois points dans l'ordre : qu'il est référencé dans AGENTS.md, qu'il est formulé comme une interdiction plutôt que comme une préférence, et que les valeurs sont bien des valeurs. La plupart des rapports de « fichiers ignorés » s'avèrent être des fichiers remplis d'adjectifs.