The system begins with tokens and axes.
The foundation layer decides surfaces, text, border, accent behavior, spacing scale, type scale, radius, shadows, and layout widths. Everything else is built on top of those values.
A small set of token families shapes the whole interface.
New component work should consume these tokens instead of hardcoding color or size values.
Surface and text
--wb-bg, --wb-surface, --wb-surface-2, --wb-text, --wb-muted
Accent and semantic color
--wb-accent* plus success, warning, danger, and info families.
Spacing and shape
--wb-s1 to --wb-s20, --wb-r-sm to --wb-r-full.
Type and layout
Base, heading, mono fonts plus layout widths, line heights, and stacking rhythm.
The root attributes are the public face of the theme system.
Each axis changes a narrow part of the visual language. That separation is what keeps the system predictable.
data-modedata-accentdata-presetdata-radiusdata-densitydata-shadowdata-fontdata-border
Foundation choices should travel through components unchanged.
If a component needs a new hardcoded value, it usually means the token layer is missing a concept.