Lorsque j'ai aidé plusieurs startups à structurer leur produit sans disposer d'une équipe design dédiée, j'ai rapidement compris qu'un design system n'a pas besoin d'être un monstre documentaire pour être utile. Il doit être léger, pragmatique et surtout conçu pour réduire les frictions quotidiennes — pas pour épater au styleguide. Voici comment je procède, étape par étape, pour créer un design system efficace quand les ressources sont limitées.
Pourquoi un design system léger ?
Un design system, même basique, apporte cohérence visuelle, rapidité de développement et meilleure communication entre les développeurs et les personnes produit. Mais trop d'ambition tue l'action : j'ai vu des équipes bloquées pendant des mois à rédiger une "véritable" documentation pendant que le produit restait incohérent. L'objectif ici est de couvrir le minimum utile qui apporte un ROI immédiat.
Principes de conception que j'applique
- Pragmatique : commencer par ce qui bloque le plus (boutons, typographie, couleurs, formulaires).
- Évolutif : penser en petits morceaux réutilisables plutôt qu'en règles globales figées.
- Accessible : respecter des bases d'accessibilité (contrastes, focus, tailles), faciles à tester.
- Collaboratif : documentation vivante et simple à mettre à jour par product managers et devs.
Étape 1 — Cartographier la réalité produit
Avant toute chose, je fais un mini-audit : parcours utilisateur principaux, composants répétitifs et points de friction. En 1 à 2 jours, je collecte :
- captures d'écran des interfaces clés
- liste des composants réutilisés (boutons, inputs, cards, modals, toasts)
- variations réellement utilisées (primary/secondary/danger, outline)
- copies d'interaction (messages d'erreur, labels)
Ce diagnostic me permet d'identifier le "tronc commun" du design system : 10–15 éléments prioritaires suffisent souvent pour une première version.
Étape 2 — Définir des tokens design
Les design tokens sont la colonne vertébrale d'un système modulaire. Je crée des tokens pour :
- couleurs (primaire, secondaire, danger, success, background, surface)
- typographie (families, tailles, poids, line-height)
- espacements (xs, sm, md, lg)
- radii et ombres
Preferez un format simple (JSON ou CSS variables). Exemple : css variables dans une feuille : --color-primary: #1a73e8;. Les tokens permettent aux devs d'appliquer des changements globaux rapidement sans modifier chaque composant.
Étape 3 — Prioriser les composants
Je limite le catalogue initial aux composants qui :
- réduisent le temps de dev (bouton, input, select)
- améliorent la cohérence UX (header, footer, card)
- réparent des erreurs fréquentes (form validations, toasts)
Pour chaque composant, je définis :
- propriétés essentielles (variant, size, disabled)
- états d'interaction (hover, focus, active, loading)
- règles d'accessibilité (aria, keyboard)
Étape 4 — Choix techniques pragmatiques
La contrainte "pas d'équipe design" implique souvent d'embrasser des outils que les devs connaissent déjà. Voici des options rapides :
- Figma pour le prototypage rapide et les composants visuels. Laisser un fichier "Design System - Core" avec pages pour tokens et composants.
- Storybook pour documenter les composants React/Vue/Svelte en isolation — très utile pour les devs.
- CSS Variables / Tailwind pour appliquer les tokens côté code. Tailwind est pratique si l'équipe aime utilser des classes utilitaires.
- Zeroheight ou un simple README.md pour la documentation visible par tous.
Étape 5 — Documentation minimale et vivante
La documentation doit répondre à deux questions : "Comment j'utilise ce composant ?" et "Pourquoi ces choix ?". Je recommande une page par composant avec :
- exemples d'utilisation (HTML/React/Vue snippets)
- prop table (variants, tailles)
- accessibility notes
- do/don't visuels courts
Une doc vivante signifie : un seul endroit à modifier (ex : Storybook + MDX, ou docs auto-générées). Évitez les PDF ou les longs guides statiques.
Étape 6 — Gouvernance légère
La gouvernance n'a pas besoin d'être lourde. Je mets en place :
- un canal Slack dédié pour signaler les besoins et déviations
- un "owner" désigné (souvent un tech lead ou un PM) responsable des merges liés au design system
- des règles simples pour accepter un nouveau composant : utilité, réutilisabilité, tests
Idéalement, tout changement majeur passe par une PR montrant le composant dans Storybook et des captures avant/après.
Étape 7 — Workflow de collaboration designer/dev
Sans designer, les échanges doivent être clairs et rapides. Voici un workflow que j'utilise :
- Designer (ou PM) propose une UI rapide dans Figma ou un wireframe simple.
- Dev crée un composant dans Storybook en utilisant les tokens existants.
- Review rapide par pair et test sur une story isolée.
- Intégration dans l'application via import du package du design system (mono-repo ou package privé npm).
Outils et ressources que j'aime
| Besoin | Outils |
|---|---|
| Design & composants visuels | Figma |
| Documentation interactive | Storybook, Zeroheight |
| Tokens & thème | Style Dictionary, CSS variables, Tailwind |
| Handoff & snippets | Storybook + README, snippets de code |
Qualité sans lourdeur : quelques pratiques concrètes
- Commencez par des composants statiques avant d'implémenter la logique complexe.
- Automatisez la publication des tokens dans un package que les apps consomment.
- Mesurez : suivez le temps moyen de mise en œuvre d'un écran avant/après le design system.
- Mettez en place des tests visuels (Chromatic ou Percy) pour éviter les régressions.
- Gardez une FAQ courte pour les décisions courantes (couleurs, spacing, grid).
Un dernier conseil pratique : dites non à la perfection initiale. Livrez un système qui règle les problèmes réels de l'équipe, puis itérez. Un design system léger et évolutif devient rapidement la colonne vertébrale qui permet à une startup de gagner en vitesse et cohérence sans sacrifier l'agilité.