Andromeda

A method case: tokens, core components, Figma and HTML/CSS

Role
Designer & front-end
Timeline
4 weeks
Year
2025

Why this exists

I wanted a public artifact of how I think about systems: tokens first, a small component set with real states, and the same names in Figma and in CSS. At TINQIN I built a 30+ component library for product teams; that work stays internal. Andromeda is the method I can show — not a replacement for that system.

100+
Design tokens
6
Core components
Dark and light
2
Figma + HTML/CSS

How it was built

Tokens first, then Figma, then code, then the example site. I looked at how Carbon, Material, and Atlassian structure tokens and docs, then kept the scope to a core set I could finish with 1:1 naming between design and CSS.

Week 1 — Tokens

Root (primitives), semantic (meaning), and component (usage). Dark mode is a semantic remap, not a second palette glued on later.

Week 2 — Figma

Variants, auto-layout, and variables. Usage and accessibility notes live on the components, not in a separate dump.

Week 3 — HTML/CSS

Same token and component names as Figma. States include hover, disabled, and error where they belong. Contrast checked against WCAG AA on the core set.

Week 4 — Examples

Foundations and component pages with copy-paste markup, used to see whether the tokens actually hold up in a layout.

Token architecture

Components never pick a raw hex. They use semantic tokens, which point at root scales. Changing a theme means remapping semantics, not hunting through every button.

Three-level token map: root, semantic, and component

Root → semantic → component. Theme changes at the semantic layer.

Root tokens in Figma

Root — primitives

Semantic tokens in Figma

Semantic — meaning

Component tokens in Figma

Component — usage

Andromeda color scales in Figma

Root color scales

Components in Figma and code

In scope: buttons, forms, alerts, cards, badges, and table — with variants and states, not a separate component for every size. Out of scope: a full app kit (modals, dropdowns, charts) and framework wrappers.

Button variants in the Figma library

Button variants in Figma. Same names in CSS.

Open the Figma library or the example site to inspect states in the browser.

Decisions that stuck

Semantic tokens for theme

Dark and light share component CSS. Surfaces and text swap through semantic aliases.

Variants, not clones

One button component with size and style variants keeps Figma and CSS from drifting into four unrelated buttons.

System fonts

Native stack for a method case: less brand theatre, faster load, focus on tokens and states.

HTML/CSS Design tokens Figma variables WCAG AA (core set)

What I learned