Approch for Design System

A structured approach to building scalable design systems through consistent foundations, meaningful naming conventions, reusable components, and documented layout patterns.

⏤ Why this document?
As digital products grow in complexity and expand across platforms, maintaining consistency becomes increasingly challenging.A well-structured design system helps teams scale product development while preserving a coherent user experience.

⏤ Who is this for?
This document brings together lessons learned from implementing design systems at Qwant, Ekwateur, and Anycommerce.It is intended for design teams working on mature digital products, where consistency, collaboration, and efficient feature delivery are essential.

Start with design tokens

⏤ What ?
Define a clear set of foundational tokens for colors, typography, spacing, shadows, border radii, motion, and opacity.

⏤ But why ?
These foundational tokens provide a consistent reference point and make it easier to evolve the visual language of a product over time.

Colors
#FFF8F5
:
orange 100
#FFF1EB
:
orange 200
#FFE2D6
:
orange 300
etc...
Fonts
Georgia
:
heading
Aa
Great Vibes
:
title
Aa
Open Sans
:
body
Aa
etc...
Sizes
4px
:
size 100
8px
:
size 200
12px
:
size 300
etc...
EXEMPLES

Add a semantic layer

⏤ What ?
Give each UI role a meaningful name that describes its purpose rather than its visual value.

⏤ But why ?
Semantic tokens connect foundational values to real interface needs, giving designers and developers a shared language and making the system easier to maintain.

Background-colors
Surface-Default
:
orange 100
Surface-Raised
:
orange 200
Surface-Overlay
:
orange 300
etc...
Heading-fonts
H1
:
heading
Aa
size 900
H2
:
heading
Aa
size 800
H3
:
heading
Aa
size 600
etc...
Padding-sizes
x-small
:
size 100
small
:
size 200
medium
:
size 300
etc...
EXEMPLES

Build reusable components

⏤ What ?
Create components using semantic tokens, with clearly defined variants, states, and sizing rules.

⏤ But why ?
Reusable components improve consistency, reduce duplication, and help teams build and maintain interfaces more efficiently.

Buttons-primary
default
:
primary-default
size-large
Body
Aa
gap-medium
padding-medium
hovered
:
primary-hovered
size-large
Body
Aa
gap-medium
padding-medium
pressed
:
primary-pressed
size-large
Body
Aa
gap-medium
padding-medium
etc...
Tags-primary
default
:
primary-default
size-small
label
Aa
padding-small
gap-small
highlight
:
highlight
size-small
label
Aa
padding-small
gap-small
error
:
info-error
size-small
label
Aa
padding-small
gap-small
etc...
EXEMPLES

Create reusable layouts

⏤ What ?
Identify recurring page structures and create templates that support common use cases.

⏤ But why ?
Reusable layouts standardize page structures, simplify documentation, and help teams deliver consistent experiences across the product.

Templates
full-page
:
Breakpoint-large
surface-default
gap-large
margin-x-large
column-page
:
Breakpoint-large
surface-default
gap-medium
margin-x-large
drawer-overlay
:
Breakpoint-medium
surface-overlay
gap-medium
margin-x-large
etc...
Utilites
error-404
:
Breakpoint-large
surface-default
gap-large
margin-x-large
error-501
:
Breakpoint-large
surface-default
gap-large
margin-x-large
password
:
Breakpoint-large
surface-default
gap-large
margin-x-large
etc...
EXEMPLES

And that's it!

I hope this approach helps you structure and evolve your own design system.