dan  /  work  /  cycloid
design system · ai-assisted pipeline

Machine-readable token architecture & an AI sync pipeline

A three-tier token model with naming built for machine readability, and a Figma → StyleDictionary → code pipeline built with Claude to keep design, code, and documentation in sync.

ROLE
Senior Product Designer
SCOPE
Token architecture, Figma/code sync
STACK
Figma Variables · StyleDictionary · VueJS · Histoire · Claude
PERIOD
Oct 2025 – Apr 2026
the cycloid console — one component set, two themes
re-themed by tokens, not components
LIGHT --mode: cycloid
/ /
DARK --theme: dark
/ /

The same blockframe, re-themed by swapping semantic token values — not by editing components. That separation is what turns a dark-mode toggle from an application-wide rebuild into a theme switch.

01 / the problem

Cycloid was built on the Vuetify component library with a token structure that had drifted out of sync between design and engineering. Developers were reaching for primitive-level tokens or hard-coded values throughout the codebase, which made the system inflexible.

The immediate consequence: shipping a dark-mode toggle wasn't feasible without significant rework. That was the symptom — the cause was structural.

Colour tokens — recovered: a forensic audit of surviving token bindings, showing no semantic layer anywhere in the set
The drift, documented — recovered primitives with no semantic layer above them. 43 of 76 source tokens had no surviving reference at all.
02 / token architecture

I built a three-tier token structure so any developer could tell where a token belongs from its name alone — no need to interpret design intent.

TIER 1
Primitive
Raw values — colours, spacing, radii.--blue-600: #2E51FF
TIER 2
Semantic
Usage-context aliases, mapped from primitives.--bg-accent-emphasized → --blue-600
TIER 3
Component
Component-scoped tokens, mapped from semantic. One update propagates everywhere.--card-bg → --bg-accent-emphasized

Choosing the naming convention

I evaluated Material Design v3 first and rejected it — the vocabulary didn't suit the application. I adopted Chakra UI's approach as the basis: organised by usage context (foreground, background, border) rather than brand-colour roles. I extended it with variants — emphasized, primary, secondary — and three tonal steps per colour: main, muted, subtle. The name carries the intent.

03 / ai-assisted pipeline

With the structure in place, I built an AI-assisted pipeline to keep three sources of truth in sync. Claude built the tooling; once running, the pipeline operates as part of the normal build with no AI involvement.

SOURCE
Figma Variables
TRANSFORM
StyleDictionary
OUTPUT
VueJS · Histoire
built with Claude: StyleDictionary transforms + a custom Figma plugin to keep Variables in sync with the pipeline

I'd built the equivalent pipeline manually in a previous role. With Claude, this version shipped in under two weeks — a concrete baseline for what AI-augmented delivery actually buys you.

Histoire documentation site showing the Core token tier — core-color-ui-primary ramp with LCH values and CSS variable names
The pipeline's real output — Histoire, showing the Core tier ramp the semantic layer builds on.
04 / outcome

The token architecture and pipeline shipped and were welcomed by the team. Dark mode itself didn't ship during the contract: turning it on required application-wide component refactoring to ensure consistent token usage throughout the codebase.

That work was scoped, accepted, and placed on the product backlog and roadmap before the contract ended. Foundation delivered, remaining work handed off clearly — not left implied.

what this
demonstrates

Hands-on token architecture: tiers, naming conventions, component-token mapping.

Choosing the right convention for context — Material v3 evaluated, Chakra adopted and extended.

AI applied to production tooling with a measurable outcome, not aspirationally.

Pragmatic delivery: foundation shipped, remaining work scoped and handed off.

06 / contact

Need a design system that ships in weeks? Let's talk.

Permanent, contract, or leadership — open to remote and relocation across the UK and Ireland.

Illustrated portrait of Dan Danowski