# Design system OKI — exitchatcontrol.org Toutes les valeurs visuelles vivent dans [`frontend/src/styles/tokens.css`](../frontend/src/styles/tokens.css). Les composants Svelte consomment les tokens ; **jamais de valeur brute** (couleur, taille) dans un composant (doctrine §5.2). ## Architecture CSS Cascade explicite par `@layer` ([app.css](../frontend/src/app.css)) : ``` reset → tokens → base → layouts → components → utilities ``` - `reset.css` — reset moderne minimal (~40 lignes), inclut `prefers-reduced-motion`. - `tokens.css` — custom properties : couleurs `oklch()`, typo fluide `clamp()`, espacements, interaction. - `base.css` — HTML sémantique nu : typo, liens, focus visible, boutons. - `layouts.css` — primitives Every Layout : `.stack`, `.cluster`, `.center`, `.card-grid` (container queries, pas de media queries de largeur d'écran). - Le style propre à chaque composant vit dans son `