Most systems ship components. This one ships the decisions.
A taxonomy book: one indigo, one token contract, and the rules that turn them into a UI library you own, not a bundle you import.
Agent-native. MCP-first. AI-ready by design.
A live MCP server exposes this system as seven typed, verifiable tools — read a token, check contrast, lint CSS — so an agent builds against the contract instead of scraping HTML.
Three tiers, one direction
Foundations
The token contract. Color, type, space, radius, shadow, motion. Start here.
Patterns
Recipes built from foundations: states, forms, accessibility, voice.
Components
SJ and W UI, built only from patterns and foundations. Coming next.
The name tells you where it lives
Shared, domain-free UI
SJButton, SJInput. Built only from tokens and patterns. No business logic.
App-specific widget
WEventCard, WCheckoutSummary. Composes SJ components; holds the domain logic.
The value contract
var(--color-primary), var(--space-6). The only source of color, space, and type. Never a raw hex.
Authored once, compiled everywhere
DTCG
Dictionary
+ TypeScript
Change a token once, and every surface that references it updates in step. The DTCG JSON is the contract; nothing downstream is edited by hand.
// app entry, once import '@ramoslabs/tokens/css'; /* then build against the contract */ .sj-card { background: var(--color-surface); padding: var(--space-6); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }