Files
SatAff/docs/design-system-kiwui.md

204 lines
6.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Référence design system — KiwUI for web app (DEKRA)
> Source : Figma « KiwUI for web app – Design System DEKRA » (fichier `EIWttg1O7Lt8y8QzMW5ygs`).
> Tokens extraits via l'intégration Figma. Document de cadrage **visuel** pour la phase maquettage.
> ⚠️ Les tokens préfixés **❌** dans Figma sont **dépréciés** : ne pas les utiliser (listés en fin de document).
## 1. Principes
- **Design system** officiel DEKRA pour les applications web (équipe KiwUI).
- Police : **Noto Sans**.
- Identité : dominante **verte DEKRA** (vert logo + verts foncés), gris neutres, et couleurs **sémantiques** (succès / info / avertissement / danger).
- ~120 composants / 1 200+ variantes dans la bibliothèque (boutons, etc.).
## 2. Couleurs
### 2.1 Vert logo (identité)
| Token | Hex |
|-------|-----|
| Logo green 500 | `#008143` |
### 2.2 Vert foncé (Dark green) — couleur primaire d'interface
| Token | Hex |
|-------|-----|
| Dark green 50 | `#f2f8f6` |
| Dark green 100 | `#cce1dc` |
| Dark green 200 | `#b3d3cb` |
| Dark green 300 | `#80b5a9` |
| Dark green 400 | `#4d9786` |
| **Dark green 500** | `#006b52` |
| Dark green 600 | `#01604a` |
| Dark green 700 | `#015642` |
| Dark green 800 | `#014031` |
| Dark green 900 | `#002019` |
### 2.3 Vert vif (Bright green) — accent
| Token | Hex |
|-------|-----|
| Bright green 50 | `#efffe4` |
| Bright green 100 | `#c8fea1` |
| Bright green 200 | `#b0fd78` |
| Bright green 300 | `#9ee46c` |
| Bright green 400 | `#7bb154` |
| Bright green 500 | `#527638` |
| Bright green 600 | `#466530` |
### 2.4 Jaune (secondaire)
| Token | Hex |
|-------|-----|
| Yellow 50 | `#fff9e0` |
| Yellow 100 | `#ffe066` |
| Yellow 200 | `#ffcc00` |
| Yellow 300 | `#e6b800` |
| Yellow 400 | `#bf9900` |
| Yellow 500 | `#876c00` |
| Yellow 600 | `#735c00` |
| secondary/yellow WCAG 700 | `#594700` |
### 2.5 Gris (neutres)
| Token | Hex |
|-------|-----|
| Gray 50 | `#f8f8f8` |
| Gray 100 | `#ededed` |
| Gray 200 | `#d2d2d2` |
| Gray 300 | `#b4b4b4` |
| Gray 400 | `#9d9d9d` |
| Gray 500 | `#696969` |
| Gray 600 | `#595959` |
| Gray 700 | `#444444` |
| Gray 800 | `#353535` |
| Gray 1000 | `#1e1e1e` |
| Neutral 50 | `#fafafa` |
### 2.6 Couleurs sémantiques
**Succès (Light green)**
| Token | Hex |
|-------|-----|
| 50 | `#f0f7ea` |
| 100 | `#d1e8c0` |
| 200 | `#b2d996` |
| 300 | `#93ca6b` |
| 400 | `#64b32c` |
| 500 | `#467d1f` |
| 600 | `#386519` |
| 700 | `#2b4d13` |
| 800 | `#1e360d` |
| 900 | `#101d07` |
**Info (Dark blue)**
| Token | Hex |
|-------|-----|
| 50 | `#f5f7f8` |
| 100 | `#e6eaee` |
| 200 | `#ccd5dd` |
| 300 | `#b3c0cc` |
| 400 | `#8097aa` |
| 500 | `#4d6d88` |
| 600 | `#335877` |
| 800 | `#002e55` |
| 900 | `#001c33` |
**Avertissement (Orange)**
| Token | Hex |
|-------|-----|
| 50 | `#fef6ed` |
| 100 | `#fbdebf` |
| 200 | `#f8c48c` |
| 300 | `#f4a34c` |
| 400 | `#ef7d02` |
| 500 | `#af5b00` |
| 600 | `#944d00` |
| 700 | `#733c00` |
| 800 | `#542b00` |
**Danger (Red)**
| Token | Hex |
|-------|-----|
| 50 | `#fdf2f2` |
| 100 | `#f8d9d9` |
| 200 | `#f3bfbf` |
| 300 | `#ed9999` |
| 400 | `#e36666` |
| 500 | `#d10000` |
| 600 | `#bc0000` |
| 700 | `#9d0000` |
| 800 | `#7d0000` |
| 900 | `#3f0000` |
### 2.7 Tokens sémantiques d'usage (rôles)
| Rôle | Valeur |
|------|--------|
| text-primary | `#1e1e1e` |
| text-btn-primary | `#ffffff` |
| text-btn-secondary-neutral | `#006b52` |
| surface-primary | `#ffffff` |
| surface-secondary-bold | `#006b52` |
| surface-btn-overlay-dark | `#353535b2` |
| border-primary | `#696969` |
| border-secondary | `#d2d2d2` |
| border-icon-primary | `#ffffff` |
| border-icon-tertiary | `#353535` |
| White | `#ffffff` |
### 2.8 Ombres / effets
| Token | Définition |
|-------|-----------|
| shadow-soft | `#1e1e1e26` (noir ~15 % alpha) |
| Card / Modal drop shadow | drop-shadow offset (0,0), **radius 10**, spread 0, couleur shadow-soft |
## 3. Typographie
Police unique : **Noto Sans**. Styles nommés relevés :
| Style | Famille | Poids | Taille | Interligne |
|-------|---------|-------|--------|------------|
| 22px Semibold – Big text | Noto Sans | 600 | 22 | 32 |
| 14px Regular – Text | Noto Sans | 400 | 14 | 18 |
| 13px Regular – Text | Noto Sans | 400 | 13 | 18 |
| 13px Regular – Button | Noto Sans | 400 | 13 | 18 |
> Letter-spacing : 0 sur tous les styles relevés.
> Taille de base relevée : `Size/18px | 1rem` = 18.
## 4. Boutons (taxonomie des variantes)
Le composant **Button** se décline selon plusieurs axes (relevés dans la bibliothèque) :
- **Importance** : `Primary`, `Secondary`, `Tertiary`.
- **Status** : `Neutral`, `Negative` (danger), `Disabled` (+ variantes dépréciées `❌ Neutral_alt`).
- **State** : `Default`, `Hover`, `Focus`, `Pressed step 1`, `Pressed step 2`, `Disabled`.
- **Contenu** : icône seule / texte seul / icône + texte.
- Variantes composées : `Button Group`, `isbreadcrumb`.
Repères de couleur boutons :
- **Primary / Neutral** : fond vert foncé `#006b52` (surface-secondary-bold), texte blanc.
- **Secondary / Neutral** : texte vert `#006b52` (text-btn-secondary-neutral), fond clair / bordure.
- **Negative** : palette **Red (Danger)** (`#d10000` et dérivés).
- **Disabled** : neutres gris.
## 5. ⚠️ Tokens dépréciés (ne pas utiliser)
Préfixés `❌` dans Figma — remplacés par les sémantiques ci-dessus :
- `❌ Blue` (toute l'échelle 50→900) → utiliser **Info / Dark blue**.
- `❌ text-secondary_alt`, `❌ text-btn-secondary-neutral_alt`, `❌ surface-secondary_alt` (`#0f508a`).
- `❌ Neutral_alt` (états de boutons).
## 6. Correspondance avec le site des specs
Le site de présentation des specs applique un sous-ensemble de ces tokens (voir
`site/frontend/src/styles.scss`). Correspondance retenue :
| Usage site | Token KiwUI |
|------------|-------------|
| Vert principal (en-tête, accents) | Dark green 500 `#006b52` |
| Vert logo (ponctuel) | Logo green 500 `#008143` |
| Vert foncé (titres, hover) | Dark green 700 `#015642` |
| Fond clair de section | Dark green 50 `#f2f8f6` |
| Texte principal | `#1e1e1e` |
| Bordures | Gray 200 `#d2d2d2` |
| Fond gris | Gray 50 `#f8f8f8` |
| Succès / Info / Warning / Danger | Sémantiques §2.6 |
| Police | Noto Sans |