Foundation

Product Designer · Design Systems · Agency

Design System

One library. Any brand. Zero rebuilds.

As lead designer at a digital agency, I created a token first design system in Figma that lets a two person team serve any client brand from a single library, shipping pixel perfect every time.

My Role

Lead Product Designer

Tools Used

Figma - Tailwind CSS

Design system architecture — token flow, brand modes, and three live client brand previews

↓ Read the story

Deliverables

What was

actually built.

Figma Variables panel — Brand Token · Color · Foundations · three-tier architecture with named semantic aliases

Variable Architecture · Figma Collections

Figma Variables · 3 Collections

Primitives

Raw values

Semantic

Purpose aliases

Brand Mode

Client override

Component

References semantic

Any Frame

Inherits Mode

Cross file publish

Other client files

Primitives

Collection

#1A1916

#1A47E8

#F5F5F5

16px

24px

40px

4px

12px

400ms

Syne

Barlow

Semantic

Collection

primary 500

primary 600

bg base

bg subtle

text default

text muted

border default

rounded btn

rounded card

spacing sm

spacing md

font display

font body

Brand

Modes

Client: Retail

Client: Fintech

Client: Healthcare

Client: SaaS

Client: Hospitality

+ New Client

Component

Tokens

btn bg primary

btn rounded

input border

input border focus

card shadow

nav bg

Live: Same component, different brand Mode

Retail

Fintech

Healthcare

SaaS

Hospitality

R

Retail Co.

New Collection

Designed to last. Built to move.

One component file. The brand Mode changes

everything else: colour, radius, typography, surface.

Zero manual overrides.

Shop Now

Learn more

Active token values

primary 500

#1A47E8

bg base

#FFFFFF

text default

#0A0B0D

rounded btn

4px

font display

Syne

border default

#DDE0E6

Same component structure. Three distinct brand identities — Clinix, Notes, Memos. One click to switch.

Library Preview

The actual component library — Tabs, Buttons, Calendar, Colour tokens, Typography system

Component library overview — Tabs · Toggle · Buttons · Calendar · Colour tokens · Typography scale

The Engineering Challenge

Figma said one thing.

Code said another.

The system worked in Figma. Design and engineering spoke different languages. In Figma: one Button, semantic tokens, variant props. In code: three separate files with hardcoded hex values scattered through stylesheets.

"Designs shipped looking right. Builds shipped looking wrong. Neither side was at

fault. There was no shared contract, no delivery pipeline, no feedback loop. The

system I built was invisible to the people who needed to implement it."

The fix wasn't tooling. It was language. Identical token names on both sides means nothing to interpret. Engineers read the Figma spec and write the CSS variable. No handoff docs. No Slack threads. No guesswork.

Design: Figma spec (correct)

component:

Button

variant:

primary, secondary, ghost

background:

primary 500

border-radius:

rounded btn

font:

font display

// 1 component, n brands via Mode

Engineering: codebase (before)

file:

PrimaryButton.tsx

file:

SecondaryButton.tsx

background:

#1A47E8

// hardcoded

border-radius:

8px

// hardcoded

font-family:

'Inter'

// assumed

// different file per brand = drift

Token names became the contract.

primary 500

in Figma Variables maps directly to

--primary-500

in CSS. Same name. Both sides. No translation.

No guesswork.

Left: component properties expose all logic — tokens, states, props. Right: Style Dictionary outputs per-brand CSS files.

Step 01

Engineering in from day one

Brought the engineering lead into token naming before any component was built. Structural mismatches caught in conversation, not in QA.

Step 02

Joint component audit

Every Figma variant mapped to its code counterpart. Where they didn't align, we negotiated. The token spec became the single source of truth.

Step 03

Shared naming language

Identical naming on both sides: Figma Variable name = CSS custom property. One to one, Tailwind style. Engineers read the spec and knew the variable.

Step 04

Spec embedded in Figma

Annotation components on every spec frame. Props, tokens, states, breakpoints, a11y. All in Figma. No external docs that go stale. Engineers had one file to open.

Step 05

Token delivery to code

Tokens exported from Figma as JSON and transformed via Style Dictionary into CSS custom properties. Each brand maps to its own

Step 06

Feedback loop

Weekly 30 minute design/eng sync to catch token gaps before they became bugs. Shared checklist for every new component: tokens referenced, states covered, breakpoints specced, a11y confirmed.

Figma Tooling

Advanced Figma,

each feature earned.

Every tool solved a specific failure. Brand switching too slow. Prototypes too expensive. Handoff too ambiguous. Nothing was adopted because it existed. Each one earned its place.

Figma tooling stack — Variables panel showing Brand Token collections, semantic references, and component-level tokens

Variables &

Modes

The backbone

Problem solved: Brand switching required manually redoing every frame. Now it's one click. Three collections with each

client as a Mode. Variable names follow Tailwind conventions so they map exactly to CSS custom properties. Published

cross file.

Brand switching

Figma Make

Prototyping

Problem solved: Engineers spent time building throwaway prototypes for stakeholder reviews. Figma Make let us own

that validation: interactive flows with state transitions, conditional logic, and live brand switching. Devs got that time

back for production work.

Validation & testing

Component

Properties

Library ergonomics

Problem solved: Designers had to dig through nested layers to understand components. Boolean, text, and instance

swap properties expose all logic in the Properties panel. No system knowledge required. Brand Modes inherit

automatically through nesting.

Component ergonomics

Annotation

System

Spec & Handoff

Problem solved: External spec docs go stale and nobody reads them. Reusable annotation components published from the

library, used on every spec frame. Token refs, spacing callouts, interaction states, a11y rules. Locked layers, always

current, always in Figma.

Handoff quality

05 The Result

Numbers that

actually changed.

Three months after full adoption. Tracked manually across active client projects. The patterns were hard to ignore.

~3hrs

New client onboarding, down from 2

to 3 days of full rebuilds

68%

Fewer visual inconsistencies reaching

QA after adoption

~40%

Reduction in design related rework

across three client projects

Design impact

Brand switching across an entire prototype: one click via Variable Mode

Second designer fully productive within one sprint, no bespoke onboarding

Cross file publishing kept client files lean and always current

Figma Make enabled user testing with brand accurate prototypes weeks earlier

Engineering impact

Token naming parity eliminated the interpretation gap entirely

Throwaway prototype work moved to design, freeing dev time for production

Brand theming in code became a single CSS file swap at

:root

~40% fewer design related revisions tracked across three client projects

Reflection

Honest look

backwards.

The biggest surprise wasn't that it worked. It was how fast the team stopped noticing it. A good system disappears into the work.

The system works best when the why behind every decision is written down — not held in one person's head

3 Ways I Can Help You

Product. Website. UX Audit.

🎨 My product design services focus on creating intuitive and aesthetically pleasing products that resonate with your audience and stand out in the market.

Know Me Well!

Know Me Well!

Know Me Well!

V

Hola! I'm Vita 👋🏻

Hola! I'm Vita 👋🏻

Experience building responsive sites for B2B, B2C, and SaaS using WordPress and Framer CMS. Focused on clean UI, SEO, and client-driven design.

UX/UI and Product Designer with 2+ years

of experience in creating user-centric

designs for over 1225% growth

Let's continue our chat in another platform!

Let's continue our chat in another platform!

hola.vitaaddelia@gmail.com

Copy

Trusted By:

  • logo-notes
  • logo-memos
  • logo-clinix
  • site logo
  • Vintage Roots

Still not sure about me?

Let's get to know how they see me

Let's get to know me more

You've got to meet Vita! She's like a UX talent, especially when it comes to conducting audits. Her knack for detail and fresh ideas make her stand out. Vita's not just about delivering results; she's all about team spirit, always ready for a chat or collaboration. Trust me, she's your go-to for any UX project – she'll knock it out of the park!

Falah Arby

Developer

Marsha Camelia

Lead UI/UX

Benedicta Lusianti

Product Owner

You've got to meet Vita! She's like a UX talent, especially when it comes to conducting audits. Her knack for detail and fresh ideas make her stand out. Vita's not just about delivering results; she's all about team spirit, always ready for a chat or collaboration. Trust me, she's your go-to for any UX project – she'll knock it out of the park!

Marsha Camelia

Lead UI/UX

You've got to meet Vita! She's like a UX talent, especially when it comes to conducting audits. Her knack for detail and fresh ideas make her stand out. Vita's not just about delivering results; she's all about team spirit, always ready for a chat or collaboration. Trust me, she's your go-to for any UX project – she'll knock it out of the park!

Marsha Camelia

Lead UI/UX

Grow your business by converting design into traffic and revenue!

Grow your business by converting design into traffic and revenue!

Let me craft it

Let me craft it

hola.vitaaddelia@gmail.com

Copy

holaitsvita

holaitsvita

holaitsvita

Create a free website with Framer, the website builder loved by startups, designers and agencies.