import { Meta } from "@storybook/blocks";
# DSMMG — Design System ManageMate Group
Référence pour designers et développeurs des produits ManageMate (Synapse, HRTime, Forge, Orbit, MSLM, Espace-Client, sites publics).
## Principes
1. **Accessibilité non-négociable** — RGAA 4.1 / WCAG 2.2 AA, validé via axe-core en CI sur chaque composant.
2. **Headless-first** — comportement (focus, keyboard, ARIA) découplé du style. Primitives Radix UI / Floating UI dessous.
3. **Tokens partout** — aucun hex en dur, aucun `--mmg-color-synapse` direct. Tout passe par les sémantiques (`--mmg-color-text-primary`, `--mmg-color-bg-surface`) et l'accent (`--mmg-color-accent`).
4. **Tree-shakable** — un composant = un fichier. `sideEffects: false`. Les imports inutilisés sont droppés par les bundlers consommateurs.
## Theming utilisateur
Chaque utilisateur peut choisir son accent (rose Synapse par défaut). 9 presets validés AA :
- `synapse` (rose corporate, défaut)
- `rose`, `blue`, `violet`, `green`, `amber`, `red`, `cyan`, `slate`
Le picker change en live ici (toolbar Storybook → "Accent"). Voir aussi le composant **``** dans `Theming`.
## Density
3 modes adaptables via `[data-mmg-density]` :
- `comfortable` (défaut, public)
- `cozy` (apps métier)
- `compact` (power users)
## Standards
- shadcn/ui + Radix UI (architecture, primitives a11y)
- Linear, Notion, Vercel, Stripe (références SaaS dense)
- DSFR (méthodologie a11y)
- Atlassian DS, IBM Carbon (apps enterprise)
## Conventions de naming
| Catégorie | Préfixe |
|---|---|
| Tokens couleur | `--mmg-color-*` |
| Tokens taille | `--mmg-space-*`, `--mmg-radius-*`, `--mmg-font-size-*` |
| Tokens motion | `--mmg-duration-*`, `--mmg-ease-*` |
| Classes CSS | `mmg-` |
| Classes utilitaires | `mmg-u-*` |
| Variantes BEM | `mmg---` |
| Sous-éléments BEM | `mmg-__` |
## Navigation
- **Tokens** — primitives, sémantiques, accent, motion
- **Forms** — Button, Input, Select, Checkbox, Radio, Switch, Combobox
- **Layout** — Container, Stack, Grid, Card, Tile
- **Overlays** — Tooltip, Popover, Menu, Dialog (tous Radix-backed)
- **Navigation** — Header, Footer, Breadcrumb, Tabs, Pagination, AppShell
- **Data display** — DataTable, Stat, Avatar, Tag, Badge, Progress
- **Theming** — ThemePicker, dark mode toggle