Case C-02 · Facilia Design System

A design system that put design and code back in sync

What looked like a styleguide was really entropy: every developer adding their own hex. I built a tokenized system in parallel with delivery, without stopping the product, and turned it into the single source of truth between what's designed and what ships.

Role

Design system owner · created and evolved it

Timeline

2021–present

Skills

Design systems · Tokens · Design–dev collaboration · Documentation

Tools

Figma · ZeroHeight · Adobe XD (migrated from) · PrimeNG (with eng.)

Team

Defined the need, hired and onboarded a second designer to accelerate the build

Facilia design system in ZeroHeight: the Navigation section with its component catalogue
Fig. 01 The system today, in ZeroHeight, navigable, searchable, with a code tab beside every visual spec.
01

The problem: every developer had their own color

What I found looked like a styleguide (a page of colors, fonts and buttons), but it was a visual guide, not a system: vague labels, no component names, no usage rules, nothing ready to be consumed by development.

Every dev, their own hex

No source of truth: each developer added their own hexadecimal.

Duplicated components

Variations of the same colour, arbitrary spacings, copies of the same UI.

Debt every sprint

Not an aesthetic problem: technical debt growing each sprint, visible to the end user.

The inherited styleguide: a single loose page with vaguely-labelled swatches, type and buttons
Fig. 02 The inherited "styleguide": one loose page of vaguely-labelled colours, type and components. A picture, not a system.
02

The decision: build the system without stopping the train

Delivery couldn't pause to "tidy up", so I built the design system in parallel, a project inside the project. One premise: it would be built for development to consume, not to organize Figma.

Each token was documented twice over: first its grammar, then its full spec, with the code reference sitting beside the visual:

Named tokens

A clear convention (color-primary-green, font-heading-h1), not swatches with nicknames.

Full spec each

Hex, rgb, family, size, line-height, letter-spacing, plus a code reference.

Catalogued components

Anatomy, variants and usage rules: buttons, navigation, pagination, tabs, accordions, forms.

Explicit foundations

Grid, spacing, shadows, border radius, icons, illustrations.

Typography token anatomy: Type, Name, Variation composing font-heading-h1
Fig. 03 The token grammar made explicit: type · name · variationfont-heading-h1. A naming convention, not a nickname.
Text styles page: H1 full spec plus a color swatch named color-primary-green with hex and rgb
Fig. 04 Every token with its full spec and code reference (color-primary-green, #1ABC9C, the H1 sizing) beside the visual.
03

The tool migration was part of the system

The project lived in Adobe XD, capable, but a poor collaborator for shared libraries and handoff. I moved it to Figma: a system only works where the whole team can consume it. A second designer joined to accelerate the build.

04

The proof: when the dev library changed version

The real test came when PrimeNG migrated to a new version: the team updated its components against the design system, not the chaos.

Today, what's in the design system is what's in the code.

Fig. 05 The chain the system enforces: the design system is the source; Figma, PrimeNG and the code consume it, never the other way around.
A component page linking out to its PrimeNG counterpart
Fig. 06 Each component page points straight at its PrimeNG counterpart, the explicit bridge between system and code.
Text input states: empty, filled, active, success, warning, error, disabled, with token references
Fig. 07 Component states documented with their business rules and token references: what the developer builds against.
05

Outcome

1 source of truth

Between design and development, in use to this day

XD Figma

Tool migration carried as part of the system

PrimeNG synced

The system survived a full version migration of the dev library

Outlasted the team

The knowledge lives in the system, not in one person's head

Shorter handoff, less front-end rework, and UI decisions that no longer restart from zero each feature, because the system makes the invented color and the duplicated component impossible.

06

What this project taught me

That a design system isn't a design deliverable: it's team infrastructure. Its value isn't in the pretty documentation pages, but in what it makes impossible: the invented color, the duplicated component, the style that exists on only one screen.

The right moment to build one rarely exists. I built ours in parallel with delivery, under pressure, without a formal mandate, because the alternative was watching the debt grow.

In hindsight, it was one of the highest-return decisions of the whole project.