Themes
Light and dark semantic tokens — use the header toggle for global preview; blocks below show side-by-side parity.
Foundations · fixture-only
Global theme switch
data-theme on the shell root drives canvas, surface, edge, and accent tokens app-wide.
Fixture data only — behaviour matches production chrome
Component parity review
ThemeMatrix previews the same widget in light and dark before shipping a new primitive.
Fixture data only — behaviour matches production chrome
Form focus discipline
Inputs use neutral ghost focus rings — brand teal is for CTAs, not field chrome.
Fixture data only — behaviour matches production chrome
Actions
Primary accent and neutral variants — parity check across light and dark.
Button variants
Light
Dark
Badges
Semantic status chips — tone maps to CSS variables per theme.
Status chips
Light
Dark
Form controls
Input focus uses neutral ghost ring — never brand teal on form fields.
Input focus ramp
Light
Dark