Welcome to Vanilla Breeze
This bell pulls live notifications from /go/notify/messages — the same contract documented at /docs/concepts/service-contracts/. Static articles like this one are the no-JS / no-backend fallback.
This bell pulls live notifications from /go/notify/messages — the same contract documented at /docs/concepts/service-contracts/. Static articles like this one are the no-JS / no-backend fallback.
A design system is a theme with documentation. Learn how to go from brand values to a living design system using Vanilla Breeze.
Every VB theme already defines colors, typography, spacing, shape, shadows, and motion through token overrides. A design system adds the why — brand identity, usage guidelines, voice, and component documentation.
In Vanilla Breeze, themes and design systems are not separate systems. They are the same system at different levels of maturity:
| Level | What You Create | Effort | Output | When |
|---|---|---|---|---|
| Quick Theme | Override a few token seeds (hue, font, radius) | 15 minutes | A CSS file that changes the look | Prototypes, hackathons, personal projects |
| Branded Theme | Full token overrides + light/dark modes + component adjustments | 2–4 hours | A complete visual identity | Product launch, client project, startup MVP |
| Design System | Branded theme + documentation page + voice/tone + usage guidelines | 1–2 days | A living reference for your team | Team of 3+, multi-product, agency handoff |
| Research-Driven DS | All of the above + user personas, empathy maps, journey maps embedded in documentation | 3–5 days | A defensible, user-grounded system | Enterprise products, regulated industries, design-led orgs |
--hue-primary and --font-sans. Ship.The workflow moves from abstract brand values to concrete token overrides to living documentation.
Before writing any CSS, answer these questions:
<user-persona> and <empathy-map> components can help you formalize this.A VB theme is a CSS file that overrides token seeds. The framework derives all interactive states, surfaces, and responsive behaviors automatically from your seeds.
:root[data-theme~="my-brand"],[data-theme~="my-brand"] { /* Color seeds — the framework derives hover, active, subtle states */ --hue-primary: 220; --hue-accent: 35; /* Typography */ --font-sans: "Inter", system-ui, sans-serif; --font-mono: "JetBrains Mono", monospace; /* Shape */ --radius-m: 8px; --radius-full: 999px; /* Motion */ --duration-normal: 200ms; --ease-default: cubic-bezier(0.25, 0.1, 0.25, 1);}
Start from src/tokens/themes/_theme-template.css for the full list of overridable tokens. See the Themes documentation for details.
Use the Design System Pack components to build a living reference page. These components read your theme’s tokens at runtime, so the documentation always reflects the current state of your design.
<!-- Brand Identity --><brand-mark src="/logo.svg" wordmark="Acme Corp"></brand-mark> <!-- Color System --><color-palette colors=" Primary: var(--color-primary), Accent: var(--color-accent), Success: var(--color-success), Error: var(--color-error)" show-values></color-palette> <!-- Typography --><type-specimen font="var(--font-sans)" label="Body Font"></type-specimen><type-specimen font="var(--font-mono)" label="Code Font"></type-specimen> <!-- Spacing and Shape --><spacing-specimen></spacing-specimen><token-specimen type="radius" label="Border Radius"></token-specimen><token-specimen type="shadow" label="Elevation Scale"></token-specimen> <!-- Component Showcase --><component-sampler label="UI Components"></component-sampler>
See the Meridian Labs example for a complete design system page using all these components.
VB uses a seed-and-derive architecture. You set a few seeds; the framework calculates everything else.
| You Set | The Framework Derives |
|---|---|
--hue-primary: 220 |
--color-primary, --color-primary-hover, --color-primary-subtle, --color-interactive, hover/active backgrounds |
--font-sans: "Inter" |
All body text, nav labels, form controls, button text |
--radius-m: 8px |
Cards, buttons, inputs, dropdowns, modals — anything that uses var(--radius-m) |
--duration-normal: 200ms |
Transitions, view transitions, hover effects, accordion animations |
This means a single hue change propagates to every interactive surface, status color, and hover state automatically. No manual color picking for each component.
These examples show the spectrum from quick themes to complete design systems.
The Alpenglow Gear demo shows three real-world brands — McDonald’s, Anthropic, and IBM — each implemented as a VB theme override. Same components, same layout, completely different visual identity.
The Meridian Labs example is a complete design system page for a fictional climate research company. It demonstrates brand identity, color palettes, typography, spacing, shapes, motion, component showcase, and voice/tone guidelines — all built with the Design System Pack components.
The Nuvaris Therapeutics demo and the Luminary SaaS demo show mobile-first branded applications with custom tokens, scroll-driven animations, and frosted glass effects.
VB design systems compose with accessibility layers, color accents, and sizing presets.
Your theme CSS defines the visual identity. On top of it, users can layer:
data-theme values.<!-- Brand + accessibility + accent all compose --><html data-theme="my-brand a11y-large-text" data-mode="dark">