Documentation
Référence technique de @brickslab./ui-web — tokens CSS, theming, architecture du monorepo et guide de contribution.
Design Tokens
Tous les composants utilisent exclusivement des variables CSS. Aucune valeur hardcodée (sauf exceptions documentées ci-dessous). Ces variables sont définies dans @brickslab./theme-default/dist/tokens.css.
Couleurs — Sémantiques
Couleurs — Surfaces
Couleurs — Statuts (subtle & borders)
Espacement
Typographie — Tailles
Typographie — Graisses
Radius
Ombres, Z-index & Utilitaires
#CC4A48 (brand), #4ADE80 (green), #FBFBFB (near-white), #F59E0B (amber). Tout le reste doit passer par un token.Theming & Dark mode
Le thème supporte deux modes d'activation du dark mode : la préférence système (automatique) et le toggle manuel via classe CSS.
Appliqué par défaut via :root. Activable manuellement avec la classe .light sur <html>.
:root / :root.lightActivé automatiquement via @media (prefers-color-scheme: dark). Activable manuellement avec .dark sur <html>.
:root.darkPersonnaliser les tokens (override)
Importez le fichier de tokens puis surchargez les variables dans votre propre CSS global. Seules les variables que vous déclarez seront modifiées.
Override composants
L'override se fait à 3 niveaux, du plus précis au plus global :
- Props du composant : prioritaire quand le composant expose une API (`variant`, `tone`, `size`, `align`, etc.).
- Props de style : `style` / `className` quand disponibles dans l'API.
- Tokens CSS : override local via variables (`--fontsize-*`, `--color-*`) sur un conteneur parent.
1. Override via props (recommandé)
2. Override local via tokens CSS (utile pour les composants type SectionHeader)
3. Override global (thème applicatif)
Architecture
Brickslab est un monorepo pnpm avec 4 packages et 1 application.
Packages & Applications
Conventions — ui-web
Commandes principales
Ajouter un composant
Checklist complète à suivre pour chaque nouveau composant. Tous ces fichiers doivent être mis à jour pour que le composant soit correctement intégré dans le système.
Créer les fichiers source dans ui-web
Exporter depuis packages/ui-web/src/index.tsx
Ajouter les métadonnées dans components.csv
Fichier : components_docs/components.csv
Ajouter l'entrée dans la sidebar
Fichier : apps/brickslab_catalog/src/catalog/navigation.data.ts
Créer la page catalogue
Fichier : apps/brickslab_catalog/src/app/components/moncomposant/page.tsx
Régénérer components.data.ts et vérifier
project_docs/we_need_composant.md, retirez-le après l'avoir créé.Récapitulatif — fichiers à toucher
packages/ui-web/src/components/<category>/<name>/<Name>.tsx+.type.tspackages/ui-web/src/index.tsx— exportcomponents_docs/components.csv— métadonnéesapps/brickslab_catalog/src/catalog/navigation.data.ts— sidebarapps/brickslab_catalog/src/app/components/<lowercase>/page.tsx— page catalog- Lancer
pnpm sync:components