Design system reference · read-only pull from Figma
A single semantic token layer with Light / Dark modes and a BetterPipes brand, plus a live component set — type in the fields, toggle, drag, open the calendar. Every motion follows the same easing and stays under 300ms.
One theme/ collection. The primitive, legacy, and loose variables are folded in: Neutral/100 became theme/muted, meiro-CDP/BE folds into theme/primary, Light-blue is dropped. Chips follow the mode toggle.
| Pair | Light | Dark | Verdict |
|---|---|---|---|
| foreground on background | 13.6 | 15.2 | AA |
| card-foreground on card | 13.6 | 16.8 | AA |
| muted-foreground on card | 4.9 | 11.8 | AA |
| accent-foreground on accent | 5.4 | 7.9 | AA |
| status colors on card | 3.3–5.2 | 6.1–10.1 | AA · success light is large/UI |
| primary-foreground on primary | 3.0 | 3.0 | large/UI only — button text is 14px medium |
| primary-foreground on primary · BetterPipes | 2.7 | 2.7 | △ brand call — pair with icons, never small text |
| background on danger (error strip) | 4.8 | 6.5 | AA |
| disabled-foreground on muted | 2.3 | 6.4 | exempt — disabled controls |
Surfaces follow Geist's two-background model: theme/background is Background 1 (the page), theme/card is Background 2 (raised panels).
The kit shipped three Inter body sizes (1.35 line-height). Extended with a heading scale and a mono style for IDs and metrics — the Sans + Mono pairing Geist relies on.
Live and token-driven — everything responds to input and to both toggles. Switch the brand to BetterPipes and the whole set restyles to squared borders, #70AD52, and Space Grotesk.
| Segment | Users | Δ 7d | Status |
|---|---|---|---|
| Churn risk | 1,204 | +12.4% | Pending |
| New signups | 3,890 | +4.1% | Active |
| Dormant | 642 | −2.0% | Failed |
Radius and elevation as named scales — Geist's "materials" model. The single loose Border-radius becomes a four-step scale; the radius token is the lever BetterPipes flips to 0.
The 4-based ramp, extended upward for layout-scale gaps. space-1,5 keeps its half-step (rename the comma); everything else steps in 4s.
The 2px line set used across the components — tuned for developer-tool density, sized on a 24px grid.
The semantic layer as CSS custom properties — copy straight into a stylesheet. The full set (both modes, BetterPipes, spacing, type, elevation) ships as a Tokens Studio file: exports/meiro-tokens.json — import it via the Tokens Studio plugin to create Figma variables.
The edit list to mirror back into Figma — flatten to a single semantic layer and repoint every deleted variable to its theme/ equivalent.
Synced with Figma · July 11, 2026: the file still matches the original pull — all items below are pending. Fastest route: import exports/meiro-tokens.json via Tokens Studio, which creates the whole target structure (semantic collection, both modes, status + chart colors, scales) in one step; the list below then reduces to deleting the old collections and repointing layers.
Result: one semantic theme/ collection (19 tokens × Light/Dark, incl. status) plus Space, Type, and Radius scales. No primitives, no legacy brand set, no loose root variables — and the single primary / radius / font tokens are the exact levers the BetterPipes brand overrides.
Primary color → theme/primary#ff5f19. Repoint layers, delete the root variable.Neutral/200 → theme/border · theme/accent; Neutral/400 → theme/disabled-foregroundNeutral/100 → new theme/muted#f5f5f5 becomes the semantic muted surface (loading button, subtle fills). Dark value #202124 — confirmed; create the token with both modes in Figma.meiro-CDP/BE → theme/primaryBE.meiro-CDP/White → theme/card; delete Grey CC & Light-bluetheme/background light stays #ffffff. Grey CC was unused.UI-Text-small → UI-text-small · done herespace-5 (20), space-8 (32), space-10 (40), space-12 (48), space-16 (64), and rename space-1,5 → space-1-5 (the comma breaks CSS/JSON export). Shown in the Spacing section.UI font → Type/ and Border-radius → Radius/ so nothing floats at the top level. Type/ now also holds the heading + mono styles; Radius/ holds the sm/md/lg/full scale.theme/success · warning · danger · info (Light/Dark). Materials — the radius-sm/md/lg/full scale and named elevation-inset/1/2. Type — the Heading xl/lg/md scale and a UI-mono style. They live here but aren’t in the Figma file yet.“Churn risk – Prague” will be removed for everyone. This can’t be undone.