Speciality
A design system is not a library. It's a doctrine.
Over the past four years I've been through all three situations you can face with a design system: growing one out of a UI kit, theming the State's, and deciding not to use it. The third one taught me the most.
01
From UI-kit hell to a system
Every brand can change its background and colour, glassmorphism included: the product's founding stance. In a UI kit, every combination was a special case, states multiplied and maintained by hand, while the product went from one client to dozens. I turned that UI kit into a design system where personalisation is a variable: contrast guaranteed by construction, variants and states systematised, documented components. The original ambition survived scale. The system was also my master's thesis, defended with the jury's highest honours.
A good system does not kill the original ambition: it makes it maintainable.
Read the case study: EcoDesignCloud02
Theming the State's system
The DSFR is mandatory for French public services; the agency's identity exists too. The answer: an additive theming layer: the DSFR core is never modified, identity overlays through tokens. JSON tokens are AI-generated for the combinatorial part, then hand-checked: RGAA contrast, brand fidelity, accessibility non-regression. All of it open source.
Additive over replacement: you pay neither double maintenance nor the loss of native accessibility.
Read the case study: ANS × DSFR Design System03
Knowing when not to use it
The theming tool existed, and the decision was not to use it. A sovereign e-service must be recognised as a State site, not an agency brand: pure DSFR, deliberately. It's the one that tests whether a system has a doctrine or is just a library.
A tool you don’t know when to use is a gadget. The usage criterion is part of the deliverable.
Read the case study: Ma Certif’ Pro SantéWhat I defend in meetings
-
No design system on principle.
A system is maintenance for life. On Gatto, my own product, I didn't build one: a UI kit is enough, we're in build mode. A design system would have been a waste of time.
-
Additive over replacement.
On the ANS work, the DSFR core was never modified: identity lives in an extension on top. Upstream State releases land without breaking anything.
-
Semantics before patterns.
A token is named by usage: intent-success-background, not green-200. And an empty state is not an error: on Ma Certif’ Pro Santé, a not-yet-published framework displays without a red alert.
-
A deviation is argued from accessibility and meaning, never from taste.
AI-generated tokens had to pass RGAA contrast thresholds before entering the system.
-
Ship the usage criterion with the artefact.
The DSFR-ANS work didn't just deliver a theming capability: it delivered the rule for when not to use it. Ma Certif’ Pro Santé applied it, pure DSFR.
Accessibility doesn't arrive at the final audit: it lives in the foundations: contrast thresholds are part of the tokens. I'm Opquast-certified and RGAA-trained, and AI has its place in my practice: generating the combinatorial, never replacing judgment.