haunlabkitchen sink

Design system primitives

Every primitive in @signal-studio/ui, across its variants. Toggle the theme to verify light + dark; all color flows from semantic tokens.

Button

Aurora gradient primary; glass secondary; ghost + danger are low-emphasis.

Variants
Sizes
States & icons

Card

Glass `default`, emerald `glow` (hero only), hairline `subtle` for dense views.

default

Translucent glass surface with backdrop blur — the workhorse card.

glow

Emerald-tinted CTA card. Use one per surface, hero placements only.

subtle

Hairline border, no blur — the default for dense list / table rows.

interactive

Hover to see the scale + pointer affordance for clickable cards.

padding="sm"

Compact padding scale.

padding="lg"

Roomy padding scale.

Badge

Three shapes × six tones. `status` is uppercase/bold; `renewal` adds a tone ring.

stage
emeraldamberskyvioletneutraldanger
status
emeraldamberskyvioletneutraldanger
renewal
emeraldamberskyvioletneutraldanger

ScoreBadge

0–100 chip with tiered color: 80+ emerald · 60–79 amber · <60 faint · null → —.

hero
92/10074/10048/100/100
default
927448
inline (dense tables)
927448

StatCard

Headline metric with variety glow, trend chip, sub-text, optional sparkline + icon.

Exact match

94.2%

+1.1vs published gold
+6 6 runs

Cohen's κ

0.87

0.0indicator level

Curricula

3

validated, complete

MAE

0.07

-0.02lower is better

Avatar

Initial + deterministic emerald-anchored gradient (same name → same colors).

Sizes
TTTT
Gradient variety
AGKOE

Skeleton

Shape-mirroring loading placeholders — Bar, Stat, Row, Card, List, Profile.

Bar · Stat · Row

Card · List

Profile

EmptyState

One pattern for every “no data” view. Action-oriented title, never just “No data.”

No evaluation runs yet

Run the judge over a curriculum to see its scorecard against published gold.

No divergences

Judge and gold agreed on every indicator.

Switch

Accessible toggle (role=switch). Two sizes, optional label, disabled state.

Toast

Glass toasts via sonner. Say what happened; never apologize.

Triggers

ConfirmDialog

Promise-based confirm, replacing native confirm(). Title is the consequence as a question.

Triggers
Restrained Aurora · zinc + emerald tokens · primitives everywhere, Aurora glass/glow on hero surfaces only.