A design system for a large road-anomaly monitoring product in the UAE, built in Figma on Variables. A single source of truth: primitives, semantic tokens, typography, and sizing, from which 50+ components and every interface screen are built.
Document the system in one place and connect everything with variables, so the team could use components more easily and scale the product faster:
Before starting, I studied other design systems and used Tailwind's color system as a base. The idea came from the design lead, then I built the system myself: the lead only stepped in occasionally.
The old local UI kit stopped keeping up with the product's growth. The design lead proposed building a proper design system.
We started looking at atomic design, but for a single product without many child products that's overkill. I chose a simpler model: tokens and components without extra layers.
Before building the system, I studied how primitives and semantics connect, and used Tailwind's color system as a base.
I built the system myself, the design lead only occasionally made corrections.
Component library: colors, typography, inputs, navigation, controls, buttons, statuses, icons, and cards. 50+ components with variants, from which every screen is built.
The .Primitives collection, 256 variables: full color scales across 11 steps (50–950). The base layer everything else references.
Semantic, 67 tokens (text, bg, stroke, icons, btn…), linked to the primitives. Dark and Light themes switch here too.
Font, 28 tokens: sizes (12–48), weights, tracking, and line height. Typeface: Inter.
Numbers, 26 tokens: radii, border widths, blur, and the sizing scale.
Editing a token in one place applies across the whole interface: the system is used by every designer and developer on the product.
Switching themes became simple, and unlike the old UI kit, the system became easy to maintain.