On Design System
On's running-shoe storefront as a DESIGN.md: On sans hero type, pure black ink, colors and components for React, Next.js and AI tools like Claude.
- Primary color
- #151522
- Typeface
- On
- Shape
- Mixed
- Base radius
- 4px
- Colors
- 19
- Type tokens
- 12
- Components
- 17
- Spacing values
- 9
About On DESIGN.md
Curated by Dov Azencot, updated May 13, 2026. Source on.com (opens in a new tab).
On's storefront reads like a Swiss product brochure compiled for the browser. The chrome is reductive to the point of being almost stubborn — ink `#000000` carries 906 occurrences across the captured page (420 as text, 417 as hairline border, 46 inside gradient overlays, plus 18 as shadow), while the canvas runs pure `#ffffff` at 323. Where most performance-running brands inject saturated voltage — neon yellow, signal orange, electric green — to telegraph athletic energy, On withholds entirely. The only chromatic note in the entire chrome is the unstyled hyperlink: bright `#0000ee` reaches 190 occurrences as both text and border, used on the vertical activity list ("Running →", "Road running →", "Marathon →", "Trail running →"), and the visited-link brown `#995c00` reaches 32. These are not brand colors. They are the browser's defaults, surfaced deliberately as a brutalist signal that On trusts the photograph and the type to do every other job.
This page packages the storefront into a DESIGN.md file written to the Google Labs open spec. Inside: 19 colors tokens grouped into ink, canvas, link, status, and graded-neutral layers; 12 typography roles built around a proprietary On sans display tier at 49.584px / weight 700 with `-0.49584px` letter-spacing, paired with On Semi Mono at 12px uppercase tracked `0.72px` for category caps; a 6-step radius vocabulary anchored on the observed `4px` (24 hits) with a `40px` pill reserved for chips; a 9-step spacing scale extracted from the `8px` (69 hits) and `24px` (26 hits) rhythm; and 17 components entries covering the top nav, the hero portrait with overlay heading, the activity list with right-pointing arrow glyphs, the 4-up product card grid, the swatch picker, the editorial "Stories that move" tile, and the inverted newsletter footer.
Feed the file to Claude, Cursor, or GitHub Copilot and the agent reproduces On's reductive chrome — the heroic h1/h2 parity at 49.584px, the hyperlink-blue activity list, the 4px-cornered product cards on `#ffffff`, the inverted black newsletter input — rather than inventing a generic athletic-template with neon accents and saturated badges. Reference tokens directly when you want one specific value: `{colors.ink}` resolves to `#000000`, `{typography.display-h1}` to On sans 49.584px / 700 / `-0.49584px`, `{colors.link}` to `#0000ee`, and `{rounded.pill}` to 40px. The reason this system rewards study is that most running brands chase velocity through chromatic noise, while On chases it through typographic parity — every section header and every hero shares the same 49.584px ceiling, and the photograph carries the rest.
What makes it distinct
5 highlights
- Hyperlink-blue as accentOn uses the browser-default `#0000ee` (190 occurrences as text and border) for category list items, never restyling it to a brand voltage
- Heroic h1/h2 parityDisplay sits at 49.584px / 700 with `-0.49584px` tracking, and the section h2 ('Shop') uses the identical size, not a downscaled tier
- Two-typeface splitProprietary On sans for body and display, On Semi Mono for 12px uppercase category captions with `0.72px` tracking
- 4px-base radius vocabulary24 occurrences of `4px` corners against 8 occurrences of `3px` and 4 of `40px` pill, with a hard `0px` on every photographic tile
- Footer newsletter inverts the canvasSingle `#000000` input with `#666666` placeholder, 64px height, no border, sitting under the otherwise white-canvas chrome
Live at on.com
On in production, as captured. Scroll the window to see the whole page.

19 colors
On's system anchors on #151522 (ink-graphite) as its primary color. Type is set in On across 12 tokens from 12px to 49.584px, weights 400–700. Shape language is mixed across 17 components, blending pills, soft rounds, and squarer corners.
Surface
Page and card backgrounds · 3
Text
Headlines, body, captions · 10
Borders & Hairlines
Dividers, outlines, rules · 1
Semantic
Status, errors, success, links · 1
Other
Specialty colors · 4
12 type tokens
Set in On across 12 tokens, from 12px to 49.584px, weights 400–700. Shown in its own stack: where the font isn't installed, the fallback the file names stands in.
- display-h149.584px · weight 700 · lh 1.1 · tracking -0.49584pxThe quick brown fox jumps over the lazy dog
- display-h249.584px · weight 700 · lh 1.1 · tracking -0.49584pxThe quick brown fox jumps over the lazy dog
- heading-link30.8px · weight 400 · lh 1.3The quick brown fox jumps over the lazy dog
- heading-md24.176px · weight 700 · lh 1.2The quick brown fox jumps over the lazy dog
- nav-link20px · weight 700 · lh 1.5The quick brown fox jumps over the lazy dog
- body-md16px · weight 400 · lh 1.5 · tracking 0.2pxThe quick brown fox jumps over the lazy dog
- body-strong15.312px · weight 700 · lh 1.5The quick brown fox jumps over the lazy dog
- body-sm15.312px · weight 400 · lh 1.5The quick brown fox jumps over the lazy dog
- caption-sm13.392px · weight 400 · lh 1.5The quick brown fox jumps over the lazy dog
- mono-cap12px · weight 500 · lh 1.5 · tracking 0.72pxThe quick brown fox jumps over the lazy dog
- mono-lg20px · weight 400 · lh 1 · tracking 1.2pxThe quick brown fox jumps over the lazy dog
- input-md16px · weight 400 · lh 1The quick brown fox jumps over the lazy dog
Radii and spacing
7 corner radii and 9 spacing values. Shape language: mixed, on a 4px base radius.
Radii7
- none0px
- xs2px
- sm3px
- md4px
- lg12px
- pill40px
- full9999px
Spacing9
- xxs2px
- xs4px
- sm7px
- md8px
- base12px
- lg16px
- xl24px
- xxl48px
- section81px
17 components
Each rendered from its tokens (color, type, radius, padding) on On's own canvas.
- Top NavTop Navtop-nav
- Nav Link On ImageNav Link On Imagenav-link-on-image
- Hero FrameHero Framehero-frame
- Hero HeadingHero Headinghero-heading
- Section HeadingSection Headingsection-heading
- Button PrimaryButton Primarybutton-primary
- Button Secondary On ImageButton Secondary On Imagebutton-secondary-on-image
- Activity LinkActivity Linkactivity-link
- Activity Link VisitedActivity Link Visitedactivity-link-visited
- Mono Category CapMono Category Capmono-category-cap
- Product CardProduct Cardproduct-card
- Product Card ImageProduct Card Imageproduct-card-image
- Swatch ChipSwatch Chipswatch-chip
- Swatch DotSwatch Dotswatch-dot
- Editorial TileEditorial Tileeditorial-tile
- Mono Pill TagMono Pill Tagmono-pill-tag
- Newsletter InputNewsletter Inputnewsletter-input
The system, in use
On's tokens on the kind of product it builds.
New season, new essentials
The latest arrivals, made to wear every day. Free shipping and returns on every order.
On design system FAQ
On's tokens, its components and how to use this DESIGN.md in your project.
What are the color tokens in the On DESIGN.md?
What is On's primary color hex code?
How do I use On's colors in Tailwind CSS?
What is On's primary brand color?
What fonts does On use?
What is On's type scale?
What can I use if I don't have On's font?
What typography does On use, and what should I substitute?
Which components does the On DESIGN.md define?
What corner radius and spacing does On use?
Why are the product cards 4px and not pill or zero in the On design system?
How do I apply the On design system to a shadcn/ui project?
How do I use the On DESIGN.md with Claude Code or Cursor?
Is the On DESIGN.md free to download?
How was the On DESIGN.md made?
Is the On DESIGN.md official?
Why is the activity list bright blue in the On design system?
Can I use this DESIGN.md to build my own React running storefront?
What's missing from this DESIGN.md spec in the On design system?
Related reading
Specs, directories and component libraries that pair with this design system.
- Browse all design systemsThe full directory of DESIGN.md files on shadcn.io, with live mockups for each.shadcn.io
- On — official siteThe On storefront this DESIGN.md was extracted from on 2026-05-13.on.com (opens in a new tab)
- The DESIGN.md specificationGoogle Labs' open spec for machine-readable design system files — the format this page is built on.github.com (opens in a new tab)
Use On in your project
One machine-readable file. Drop it into Claude Code, Cursor, VS Code or any AI tool that reads DESIGN.md.
Download the DESIGN.md
One machine-readable file: every color, type, radius, spacing, and component token of On.
Feed it to your AI tool
Drop it into Claude, Cursor, or GitHub Copilot. The agent writes React components and Tailwind classes that match On's visual language.
Reference the tokens directly
Or paste the values into your Tailwind config, CSS variables, or component library: every color, size and radius is a quoted, ready-to-copy value.
Read the full DESIGN.md overview, rationale, do’s and don’ts
Overview
On's storefront is built on a single, almost stubbornly reductive idea: the chrome carries no color, and the photograph carries everything. Ink #000000 lands 906 times on the captured page (420 as text, 417 as hairline border, 46 inside gradient overlays, 18 as shadow); canvas #ffffff lands 323. Across the hero portrait, the activity list, the Shop heading, the 4-up product grid, and the editorial "Stories that move" tile, the same monochrome chrome reappears in identical proportions — only the photograph and the copy change. Where most performance-running brands inject neon yellow, signal orange, or electric green to telegraph athletic energy, On withholds entirely and lets the shoe photograph be the only colored object on the page.
Hyperlink as accent: the only chromatic note in the chrome is the browser-default unstyled <a> color. Bright #0000ee reaches 190 occurrences (95 text, 95 border, because every link is also underlined) on the vertical activity list — "Running →", "Road running →", "Marathon →", "Trail running →", "Lifestyle →", "Hiking and outdoor →", "Tennis →", "Training and gym →". Visited brown #995c00 reaches 32. These are not styled. On is declaring that the only color in the system is the color the user agent provides for free, and the activity list is the one place it surfaces. Restyling the link would erase the move.
Heroic h1/h2 parity: the hero heading "Bloom. A new shade to move in." and the section heading "Shop" both sit at 49.584px / weight 700 / -0.49584px letter-spacing — identical tokens. There is no downscaled h2 tier on the homepage. The 30.8px tier exists only for paragraph-shaped link copy, and the 24.176px tier exists for sub-section labels. Unlike the convention of a 64–48–32–24 display ramp, On flattens the top two tiers into a single ceiling — the section header carries the same weight as the campaign.
Colors
- Ink (
#000000) — frequency 906. Used as text (420), border (417), shadow (18), gradient (46), bg (5). The load-bearing token: every headline, every hairline, every body line, and the inverted newsletter input fill. - Canvas (
#ffffff) — frequency 323. Used as text (131), bg (11), border (135), gradient (46). The page surface and the on-image text color for the hero portrait. - Hyperlink (
#0000ee) — frequency 190. Used as text (95), border (95). The browser's default unstyled<a>color, surfaced deliberately on the activity list as the only saturated accent. - Link-visited (
#995c00) — frequency 32. Used as text (16), border (16). The browser's default visited-state brown; appears on activity items the user has already opened. - Ink-secondary (
#333333) — frequency 22. Used as text (11), border (11). Body paragraph copy in the geo-availability message; the workhorse soft-text role. - Surface-gradient-pale (
#eceef0) — frequency 10. Used as gradient (10). Product-card photographic backdrop and the soft gradient under swatch chips. - Status-error (
#ed0000) — frequency 2. Used as text (1), border (1). Form validation only; never decorative. - Ink-tertiary (
#999999) — frequency 1. Used as bg (1). Disabled-state placeholder fill. - Ink-graphite (
#151522) — frequency 1. Used as bg (1). A near-black with a violet cast on one editorial overlay. - Ink-mute (
#666666) — frequency 1. Used as text (1). The newsletter input placeholder color. - Swiper-theme (
#007aff) — declared on:rootvia--swiper-theme-color. Never rendered in the captured page; reserved for the product-carousel pagination dots.
Typography
On runs a proprietary On sans (system fallback to Noto Sans JP / Noto Sans KR / sans-serif) across every display and body role, plus On Semi Mono and On Mono for the 12px uppercase category captions and the 20px uppercase mono-lg tier. Hero h1 and section h2 share the identical 49.584px / weight 700 / -0.49584px letter-spacing — a heroic display ceiling that flattens the top of the type hierarchy into one tier. Below the ceiling, the system uses 30.8px / 400 for paragraph-shaped link copy, 24.176px / 700 for sub-section labels, 20px / 700 for nav links, and a 15.312px / 400 body tier (with a 15.312px / 700 strong variant) for product names and meta. Body-md sits at 16px / 400 with 0.2px tracking — the only positive tracking value in the body tier.
The mono pair carries the brand's Swiss-engineering signal. On Semi Mono at 12px / 500 uppercase with 0.72px tracking renders the category caps below each product card (e.g. "Cloudsurfer", "Cloud", "CloudX", "Cloudboom"), and On Mono at 20px / 400 uppercase with 1.2px tracking carries the larger editorial labels. Substitution path: Inter Display at weight 700 with -1% tracking for the heroic 49.584px tier, paired with JetBrains Mono or IBM Plex Mono at 12px uppercase tracked 0.72px for the captions.
Layout
The page runs on a 12-column grid inside a roughly 1440px maximum content width, with section padding extracted as 0px 47.952px (≈ 48px) horizontal gutters. Vertical rhythm follows an 8px base — the spacing array shows 69 occurrences of 8px, 26 of 24px, 17 of 4px, and 8 of 12px. The dominant section break is 81.104px (the section spacing token), which separates the hero portrait from the Shop heading and the activity list from the product grid. Inside cards, the rhythm tightens to 4px / 7px / 8px. The activity list sits as a vertical column at roughly 33% page width, with each link receiving 4px 0px vertical padding — a paragraph-shaped stack rather than a grid of pills.
Elevation & Depth
Depth is achieved by photography and hairlines rather than shadow. The captured page declares #000000 shadow 18 times — exclusively on the announcement banner pill and the geo-availability dialog, never on cards or buttons. Surface elevation comes from three devices: a #eceef0 gradient backdrop behind each product photograph (10 occurrences), a 1px #000000 hairline border between the top-nav and the hero overlay, and the inverted black newsletter section that drops the user into a dark band at the page foot. Where most retailers ladder a card with a 0/2/8/24px shadow scale, On runs flat — the photograph carries the weight, the gradient backdrop carries the soft separation, and the hairline carries every other line of demarcation.
Shapes
Six radius values appear in the captured page: 4px at 24 occurrences (the dominant corner — product tiles, swatch chips, small surfaces), 3px at 8 (inner-card details and the announcement-bar pill stroke), 50% at 10 (icon buttons and swatch dots), 40px at 4 (the mono-pill tag used on the editorial tile), 2px at 1, and 12px at 1. The product card lands on 4px — soft enough that the photograph does not read like a printed catalog, hard enough that the corner never competes with the silhouette of the shoe. The hero portrait itself sits at 0px. The jump goes 4 → 12 → 40; there is no 8px, 16px, 24px, or 32px corner anywhere in the chrome.
Components
- top-nav:
{colors.canvas}background,{colors.ink}text,{typography.nav-link}at 20px / 700,0pxradius,56pxheight, no border. - nav-link-on-image: transparent fill,
{colors.on-ink}text for the nav links that sit over the hero photograph. - hero-frame: full-bleed
0px-cornered black overlay scrim; the photograph beneath carries every other color note. - hero-heading: 49.584px / 700
{colors.on-ink}typeset directly onto the portrait — captured at 109px rendered height for "Bloom. A new shade to move in." - section-heading: identical 49.584px / 700 tier to the hero, used on "Shop" and "New arrivals" — flattens the h1/h2 ceiling.
- button-primary:
{colors.ink}fill,{colors.on-ink}text,4pxradius, 12/24px padding, 44px height. Used for the hero "Explore" CTA. - button-secondary-on-image:
{colors.canvas}fill,{colors.ink}text, otherwise identical to primary — sits beside the primary on the hero scrim. - activity-link: the brutalist move — 49.584px / 700 in
{colors.link}#0000eewith underline, padded4px 0pxper line. - activity-link-visited: identical to activity-link but text shifts to
{colors.link-visited}#995c00once visited. - mono-category-cap: 12px On Semi Mono uppercase with
0.72pxtracking, used as the small label under each product image ("Cloudsurfer", "Cloud", etc.). - product-card:
{colors.canvas}surface,4pxradius, no border, sits in the 4-up grid. - product-card-image:
{colors.surface-gradient-pale}#eceef0photographic backdrop with a4pxradius — the only place the gradient pale appears. - swatch-chip: small
4px-cornered swatch picker with a 1px{colors.ink}border. - swatch-dot:
9999pxcircular swatch indicator filled with{colors.ink}at 12px height. - editorial-tile: the "Stories that move" surface —
{typography.heading-md}at 24.176px / 700 inside a4px-cornered tile with16pxpadding. - mono-pill-tag: 12px On Semi Mono uppercase inside a
40pxpill — the one place a pill geometry appears in the system, reserved for editorial category tags. - newsletter-input: the inverted-canvas signature —
{colors.ink}fill,{colors.ink-mute}placeholder, 64px height,0pxradius, no border. Sits inside the black footer band.
Do's and Don'ts
- Don't restyle the activity-list links from
#0000eeto a brand voltage — the unstyled browser default is the design. Restyling erases the brutalist signal. - Don't ladder a 64–48–32–24 display ramp. On's display ceiling is a single 49.584px tier shared by h1 and h2; the next tier is 30.8px / weight 400, not 32px / 700.
- Don't use
#eceef0as a chip or button background — it is a gradient-only token (10 occurrences, all as gradient) reserved for the product-image backdrop. For light surfaces, use{colors.canvas}#ffffff. - Don't add a drop shadow to the product card. On's depth comes from the
#eceef0photographic gradient and a 1px ink hairline; the card itself is shadowless. - Don't soften the newsletter input to a
4pxor8pxcorner. The 64px-tall0px-radius black field is the system's one inversion — corner-radius would push it toward a generic input. - Don't apply the
40pxpill geometry to a primary CTA. The pill is reserved for editorial mono tags; primary buttons sit at4px. - Do keep On Semi Mono at 12px /
0.72pxtracking, uppercase, for every category cap. The Swiss-engineering signal lives in the mono tier — collapsing it to the body sans erases the brand's voice. - Do preserve the negative
-0.49584pxtracking on the 49.584px display tier when substituting a different sans. On's optical density depends on it.
Known Gaps
- PDP not captured — product detail page typography (size selector, add-to-bag CTA placement, fit-finder) is not part of the homepage capture.
- Cyclon subscription flow and membership chrome are not present in the captured page; the recurring-rental Cyclon shoes have a dedicated visual treatment that isn't documented here.
- Hover and focus states are not extracted — On's CSS does not surface them on the
:rootvariable cascade the extractor reads. - Geo-picker and currency dialog are not visible in the captured page (the geo-availability message that triggered the
#333333body paragraph is the closest analog). - On sans weight 600 referenced in On's font kit is not present on the homepage — weights 400, 500, and 700 are extracted but the demi tier is not.
- Primary CTA selector returned null — On uses a custom anchor element rather than a
<button>for the hero call-to-action, so the extractor's primary-button probe captured nothing; thebutton-primarytoken above is reconstructed from the visible "Explore" CTA in the screenshot.
More systems like this
adidas, Alo Yoga, Arc'teryx and 83 more in E-commerce & Retail: each brand's colors, type and components in one file your AI agent builds from.
Build it with Pro
The DESIGN.md files are free. Pro adds 6,000+ blocks, premium templates and the MCP server, so your AI editor builds in your system for you.
4.9/5 out of 5 · 150+ reviewsfrom 150+ founders and developers.
Billing
Billed once a year in USD. Cancel anytime.
- How many people can use the license.
- Client work, SaaS products and anything you charge for.
- Page sections in 56 categories, from heroes and pricing tables to dashboards and settings, on every framework and UI library, in your theme.
- Complete Next.js sites for startups, SaaS, agencies and portfolios, every page designed, ready to ship.
- Your AI agent searches, previews and installs any component, block, icon or DESIGN.md from a prompt: 22 tools in Claude Code, Cursor, VS Code and 35 more clients.
- Buttons with motion and states of their own, from an arrow that slides in to a burst of confetti.
- Typewriters, scrambles, counters and more, for headlines, labels and numbers.
- Animated backgrounds for heroes, sections and cards, from a soft aurora to a flock that flees the cursor. Most are pure CSS.
- WebGPU shaders, from a slow aurora to a black hole, each drawing only while it's on screen.
- One design and one theme on all four: the components, blocks and effects are built for each framework.
- React on Base UI, Radix UI, React Aria or Ark UI: install the version for the library your project already uses. Vue, Svelte and Solid run on Ark UI.
- From a button to a date picker, a color picker or a guided tour: accessible, typed in TypeScript, each with live demos.
- Real-world patterns built from the components, in 53 galleries: forms, tables, menus, dialogs and more.
- Area, bar, line, pie, radar and radial charts on TanStack Charts, on every framework. React also gets the Recharts originals.
- Debounce, local storage, media queries and more: each hook is one typed file you own.
- From 222 libraries, Lucide, Heroicons, Tabler and Material Symbols among them, as SVG or a React component in one command.
- Stripe, Linear, Apple and 497 more: a brand's colors, typography and components in one file your AI agent builds from.
- Restyle every component and block at once: 8 styles, 7 grays, 18 colors and 5 radii, shared as a shadcn preset code.
- Priority requests are answered first.
Individual
For personal projects & open source
$32instead of $49/mo
$389 billed yearly
- Seats: 1 seat
- Commercial use: Personal & open source only
- Blocks: All 6,181 blocks
- Templates: All 14 templates
- MCP server: 38 AI clients
- Animated buttons: All 35 buttons
- Text effects: All 97 effects
- Backgrounds: All 100 backgrounds
- Shaders: All 100 shaders
- Frameworks: React, Vue, Svelte, Solid
- UI libraries: Base UI, Radix, Aria, Ark
- Components: All 174 components
- Examples: All 1,103 examples
- Charts: All 70 charts
- React hooks: All 35 hooks
- Icons: 294k+ icons
- DESIGN.md files: All 500 brands
- Theme builder: 8 styles × 18 colors
- Support: Standard
Team
Most popularFor freelancers, agencies & startups
$66instead of $99/mo
$789 billed yearly · ≈ $13/dev/mo
- Seats: Up to 5 seats
- Commercial use: Included
- Blocks: All 6,181 blocks
- Templates: All 14 templates
- MCP server: 38 AI clients
- Animated buttons: All 35 buttons
- Text effects: All 97 effects
- Backgrounds: All 100 backgrounds
- Shaders: All 100 shaders
- Frameworks: React, Vue, Svelte, Solid
- UI libraries: Base UI, Radix, Aria, Ark
- Components: All 174 components
- Examples: All 1,103 examples
- Charts: All 70 charts
- React hooks: All 35 hooks
- Icons: 294k+ icons
- DESIGN.md files: All 500 brands
- Theme builder: 8 styles × 18 colors
- Support: Priority
Organization
For companies with larger teams
$132instead of $199/mo
$1,589 billed yearly
- Seats: Unlimited seats
- Commercial use: Included
- Blocks: All 6,181 blocks
- Templates: All 14 templates
- MCP server: 38 AI clients
- Animated buttons: All 35 buttons
- Text effects: All 97 effects
- Backgrounds: All 100 backgrounds
- Shaders: All 100 shaders
- Frameworks: React, Vue, Svelte, Solid
- UI libraries: Base UI, Radix, Aria, Ark
- Components: All 174 components
- Examples: All 1,103 examples
- Charts: All 70 charts
- React hooks: All 35 hooks
- Icons: 294k+ icons
- DESIGN.md files: All 500 brands
- Theme builder: 8 styles × 18 colors
- Support: Priority
Billed once a year in USD. Cancel anytime.
Individual
For personal projects & open source
$32instead of $49/mo
$389 billed yearly
- How many people can use the license.Seats: 1 seat
- Client work, SaaS products and anything you charge for.Commercial use: Personal & open source only
- Page sections in 56 categories, from heroes and pricing tables to dashboards and settings, on every framework and UI library, in your theme.Blocks: All 6,181 blocks
- Complete Next.js sites for startups, SaaS, agencies and portfolios, every page designed, ready to ship.Templates: All 14 templates
- Your AI agent searches, previews and installs any component, block, icon or DESIGN.md from a prompt: 22 tools in Claude Code, Cursor, VS Code and 35 more clients.MCP server: 38 AI clients
- Buttons with motion and states of their own, from an arrow that slides in to a burst of confetti.Animated buttons: All 35 buttons
- Typewriters, scrambles, counters and more, for headlines, labels and numbers.Text effects: All 97 effects
- Animated backgrounds for heroes, sections and cards, from a soft aurora to a flock that flees the cursor. Most are pure CSS.Backgrounds: All 100 backgrounds
- WebGPU shaders, from a slow aurora to a black hole, each drawing only while it's on screen.Shaders: All 100 shaders
- One design and one theme on all four: the components, blocks and effects are built for each framework.Frameworks: React, Vue, Svelte, Solid
- React on Base UI, Radix UI, React Aria or Ark UI: install the version for the library your project already uses. Vue, Svelte and Solid run on Ark UI.UI libraries: Base UI, Radix, Aria, Ark
- From a button to a date picker, a color picker or a guided tour: accessible, typed in TypeScript, each with live demos.Components: All 174 components
- Real-world patterns built from the components, in 53 galleries: forms, tables, menus, dialogs and more.Examples: All 1,103 examples
- Area, bar, line, pie, radar and radial charts on TanStack Charts, on every framework. React also gets the Recharts originals.Charts: All 70 charts
- Debounce, local storage, media queries and more: each hook is one typed file you own.React hooks: All 35 hooks
- From 222 libraries, Lucide, Heroicons, Tabler and Material Symbols among them, as SVG or a React component in one command.Icons: 294k+ icons
- Stripe, Linear, Apple and 497 more: a brand's colors, typography and components in one file your AI agent builds from.DESIGN.md files: All 500 brands
- Restyle every component and block at once: 8 styles, 7 grays, 18 colors and 5 radii, shared as a shadcn preset code.Theme builder: 8 styles × 18 colors
- Priority requests are answered first.Support: Standard
Team
Most popularFor freelancers, agencies & startups
$66instead of $99/mo
$789 billed yearly · ≈ $13/dev/mo
Everything in Individual, plus
- How many people can use the license.Seats: Up to 5 seats
- Client work, SaaS products and anything you charge for.Commercial use: Included
- Priority requests are answered first.Support: Priority
Organization
For companies with larger teams
$132instead of $199/mo
$1,589 billed yearly
Everything in Team, plus
- How many people can use the license.Seats: Unlimited seats
- Secure checkout via Stripe
- Code lives in your repo
- Keep what you've shipped if you cancel
- License terms
4.9 out of 5 from 150+ developers
Your system, built for you
Every block, template and icon, installed by your AI agent in your design system. The DESIGN.md files stay free.
- Cancel anytime
- Keep what you've shipped