Overview
The YaVendio design system at a glance — token architecture and the portable DESIGN.md reference
The YaVendio Design System is a shadcn-preserving component registry: every Ya* component is a
shadcn baseline with YaVendio styling layered on top. DOM structure, accessibility, keyboard
navigation, and Radix composition stay identical to the baseline — styling is an additive layer of
tokens, classes, and CVA variants only.
Two-layer token architecture
This is the core idea that makes the system portable across any shadcn project. Components never reference a raw hex or a brand-specific variable — they style themselves through standard shadcn utilities, which resolve through two layers of tokens.
flowchart LR
Primitives["Layer 1 — Brand Primitives<br/>--ya-plum-300<br/>--ya-stone-200"] --> Semantic["Layer 2 — Shadcn Variables<br/>--primary<br/>--border"]
Semantic --> Components["Components<br/>bg-primary<br/>border-border"]- Layer 1 — Brand Primitives. The closed brand palette (
--ya-plum-*,--ya-indigo-*,--ya-yellow-*,--ya-stone-*), the eight theme-aware semantic families, gradients, custom shadows, and the selection ring. Single source of truth for brand color. - Layer 2 — Shadcn Variables.
--primary,--secondary,--border,--ring, ... each references a Layer-1 primitive. - Components consume only Layer-2 utilities (
bg-primary,text-foreground,border-border).
The payoff: change a primitive once and every component follows; override a shadcn variable and the same components rebrand instantly, without editing a single component file.
At a glance
- Brand voltage: Plum (
--ya-plum-300,#8d3f87) — every primary action, reached viabg-primary. - Signature touches: the 3D inset shadow (
--ya-shadow-inset) on primary buttons and the yellow selection ring (--ya-ring,#f4ec7a). - Type: Bricolage Grotesque, weights 400–700, applied via
font-bricolage. - Shape: 8px base radius (
rounded-lg) on controls,rounded-xlon alerts,rounded-fullon pills. - Dark mode: ships via the
.darkclass with zero per-component overrides — tokens invert at the Layer-1 / Layer-2 boundary.
The portable reference: DESIGN.md
The repository ships a single consolidated DESIGN.md
at its root. It captures the whole system — token architecture, colors, typography, radius, elevation,
dark mode, component conventions, and a do/don't guide — in one file.
It is designed to be dropped into consuming projects and read by AI coding agents, so any project building on this registry styles its own UI with the same vocabulary. Drop it at the root of your consuming repo (or anywhere your agent reads context from) and point your tooling at it.
Where to go next
- Colors — full palette and semantic families
- Typography — Bricolage scale and usage
- Spacing — layout and spacing conventions
- Themes — install, customize, and dark mode