Contribuer au Design System
Ajouter un token
- ADR si rupture : si le token introduit une nouvelle dimension (nouveau type d'ombre, nouvelle échelle de spacing, thème clair…), écrire d'abord un ADR dans
docs-site/docs/adr/ - Éditer
src/app/globals.css: ajouter la variable sous le commentaire de section approprié:root {/* Accent ambre/or */--color-accent-strong: #B45309;} - Régénérer la doc :
npm run docs:generate-tokens
- Vérifier la page correspondante (Couleurs, etc.) : le nouveau token apparaît avec swatch + valeur
- Utiliser le token dans au moins un composant pour valider son usage pratique
Ajouter un composant UI
- TDD d'abord (CLAUDE.md) : écrire le test rouge dans
src/components/ui/__tests__/<kebab>.test.tsx - Créer
src/components/ui/<kebab-case>.tsx- Server Component par défaut (pas de
'use client'sauf si hooks / état) - Utiliser les tokens CSS (
var(--color-*)) plutôt que des valeurs en dur - Typer les props via une
interface <Name>Propsexportée - JSDoc sur chaque prop (le script l'extrait)
- Server Component par défaut (pas de
- Régénérer les props :
npm run docs:generate-component-props
- Créer la page doc
docs-site/docs/design-system/components/<kebab-case>.md:---title: <Name>---import Props from '@site/docs/design-system/_generated-props/<kebab-case>.mdx';# <Name>Description courte (1-2 phrases).## Props<Props />## Exemples<!-- Exemples visuels ou code -->## Accessibilité- ...## Ne pas faire- ... - Ajouter l'entrée dans
docs-site/sidebars.ts(sectiondesignSystem/ composants) - Vérifier :
npm run docs:build
Ajouter un pattern
Un pattern est une manière d'assembler plusieurs composants pour résoudre un problème récurrent (formulaire, état vide, tableau filtrable…).
- Créer
docs-site/docs/design-system/patterns/<kebab>.md - Structure recommandée :
- Problème que le pattern résout
- Composants utilisés
- Exemple (capture ou code)
- Variantes si applicable
- À faire / à ne pas faire
- Ajouter l'entrée dans
sidebars.ts
Refuser les incohérences
L'agent docs-specialist refuse :
- Une page sans entrée dans
sidebars.ts - Un composant documenté sans props extraites via le script
- Un token documenté manuellement qui devrait être généré
- Une duplication de contenu entre sections
Ces refus sont intentionnels : ils garantissent la cohérence à l'échelle de ~75 pages.