Design system

Concevoir pour que l’humain et la machine construisent plus vite.

Contexte

Deux produits, un seul socle à inventer

Chargemap Business et Chargemap Partners sont deux produits B2B distincts, mais leurs besoins d'interface se ressemblent beaucoup : du listing, des tableaux denses, des formulaires, des états techniques. Sans socle commun, chaque produit redéveloppait ses propres composants, du travail fait deux fois, des incohérences entre les deux, et aucune capitalisation. Il n'existait pas de design system. Je l'ai construit de zéro.

Schéma d'un design system unifié alimentant Chargemap Business et Chargemap Partners

Problème

Le constat de départ était simple : deux produits aux besoins proches, c'est une opportunité de mutualisation. Plutôt que de recréer un tableau, un badge ou un champ pour chaque produit, un composant ajouté à une bibliothèque commune devient immédiatement disponible des deux côtés. Poser une fondation partagée qui réduit le travail, garantit la cohérence, et tienne dans le temps, pour les designers comme pour les développeurs.

Approche

Une bibliothèque unifiée, deux thèmes

Le cœur du système : une seule bibliothèque de composants alimente les deux produits. Un composant développé pour un besoin Partners est automatiquement utilisable sur Business, sans redéveloppement. Développé une fois, utilisé partout. Pour absorber les deux identités, le système gère deux thèmes via les modes de variables Figma : les couleurs s'adaptent à Business ou à Partners sans dupliquer un seul composant. Un système, deux marques.

Des fondations aux composants

Le système se construit en couches. À la base, les fondations : couleurs, espacements, ombres, typographie : les briques visuelles communes à tout le reste. Au-dessus, les composants qui les assemblent : boutons, champs de saisie, badges, tableaux… Chaque composant puise dans les fondations plutôt que dans des valeurs arbitraires, ce qui garantit la cohérence.

Bibliothèque de composants — variantes du bouton
Fondations — tokens d'espacement

L'atomic design, sur un cas réel

Pour que le système reste lisible et composable, chaque composant suit une logique atomique. L'exemple le plus parlant, c'est notre tableau : chaque cellule contient un atome (un texte, un bouton, un badge) ; la cellule elle-même est une molécule (dimensions, styles, sous-composants) ; l'ensemble forme un organisme : le tableau, qui vient s'insérer dans des pages plus complexes. Cette décomposition n'est pas théorique : c'est ce qui permet de réutiliser les mêmes atomes partout et de faire évoluer un niveau sans casser les autres.

Atome et molécule — la décomposition de base
Organisme — le tableau complet assemblé

Des tokens sémantiques sur des primitives solides

Les couleurs, espacements et autres valeurs reposent sur des tokens sémantiques construits au-dessus des primitives Tailwind. Les composants ne référencent jamais une valeur brute mais un token porteur de sens, ce qui rend les deux thèmes possibles et le système maintenable.

Table des tokens sémantiques construits sur les primitives Tailwind

AI Ready

Concevoir un système que l'IA sait lire

Plutôt que de penser le design system uniquement pour des humains, je l'ai structuré pour qu'une IA puisse implémenter un composant proprement, en respectant nos conventions. Concrètement : des conventions de nommage raccord avec le dev (kebab-case pour les layers et les composants, camelCase pour les propriétés), des variables explicites pour couleurs et espacements, et une description au niveau de chaque composant qui donne le contexte nécessaire, et qui peut être récupéré via MCP. Avec les développeurs front, on a défini des skills pour que les composants soient développés par l'IA en suivant nos conventions.

Description de composant exploitable par l'IA via MCP, à côté de Claude Code

Designer, et contribuer au code

Pour aller au bout de la logique, j'ai installé en local le repo de la bibliothèque de composants. Concrètement, en tant que profil non technique, je peux désormais ouvrir des pull requests sur les composants eux-mêmes, ajuster une couleur, un espacement, ajouter une icône directement dans le code, avec l'aide de l'IA.

Le design system n'est plus seulement quelque chose que je conçois dans Figma puis que je « passe » aux devs : c'est un objet sur lequel je peux intervenir des deux côtés, en restant dans les conventions qu'on a posées.

Pull request générée avec l'IA sur la bibliothèque de composants

Fiabilité & collaboration

Communiquer les évolutions

Un changelog et un versioning au langage des développeurs (major / minor / patch) permettent à chacun de voir d'un coup d'œil si un changement est un simple correctif ou une évolution structurante.

États du composant Alert documentés
Changelog versionné major / minor / patch

Tester les composants en isolation

Les composants vivent dans Storybook : chacun y est documenté et manipulable en isolation, indépendamment du produit dans lequel il s'insère. Les développeurs et designers disposent ainsi d'un environnement de référence pour visualiser un composant dans tous ses états avant de l'intégrer.

Composant Alert manipulé en isolation dans Storybook

Éviter les divergences avec Chromatic

Chromatic ajoute la couche de test visuel : il permet de détecter toute divergence entre les versions successives du design system, et surtout entre le code et Figma (via le plugin intégré à Figma). C'est ce qui garantit que ce qui est conçu et ce qui est livré restent alignés, sans dérive silencieuse au fil des évolutions.

Tests de régression visuelle Chromatic et plugin Storybook Connect dans Figma

Impact

2 produits

Servis par le même système

6 personnes

L’utilisent au quotidien

30+

Composants

Un composant développé une fois est disponible sur les deux produits, sans redéveloppement. Les conventions et le contexte posés rendent le système directement exploitable par l'IA (génération de code conforme, MCP Figma), et le versioning major/minor/patch permet à chacun d'anticiper l'impact d'un changement. Le système a aussi permis à un designer, recruté récemment, d'être immédiatement productif dans nos standards. Résultat : moins de travail dupliqué, une cohérence garantie, et un système qui tient dans le temps.