Extreme glassmorphism. Translucent panes float on a vivid aurora mesh — ultramarine, magenta, and mint cyan, blurred to 40px with 200% saturation. Every surface — cards, CTAs, even the primary button — is frosted glass. Nothing is opaque.
A complete design system, ready for your AI coding agent. Every primitive, token, and pattern below is generated straight from DESIGN.md — drop the file in your project and ship matching UI in minutes.
Prose-first token file — decisions live next to their reasoning.
Fine micro-scale (1–5px) for pills, editorial scale (12–21px) for the grid.
The system's own radius tokens — sm for chips and inputs, md for buttons, lg for cards, pill for fully-rounded CTAs.
1---2name: "Aurora Glass"3description: "Extreme glassmorphism. Translucent panes float on a vivid aurora mesh — ultramarine, magenta, and mint cyan, blurred to 40px with 200% saturation. Every surface — cards, CTAs, even the primary button — is frosted glass. Nothing is opaque."4tags: [dark, glass, premium, saas]5colors:6 primary: "#F4F7FB"7 secondary: "#A6B0C2"8 tertiary: "#7DF9D6"9 neutral: "#04050B"10 surface: "#0A0D18"11typography:12 display: Inter13 body: Inter14 mono: "JetBrains Mono"15 scale:16 hero: "4.25rem / 1.04 / 600 / -0.035em"17 h1: "2.75rem / 1.08 / 600 / -0.03em"18 h2: "1.625rem / 1.2 / 500 / -0.02em"19 body: "1rem / 1.55 / 400 / -0.005em"20radius:21 sm: 12px22 md: 18px23 lg: 26px24 pill: 9999px25shadows:26 card: "0 30px 80px -20px rgba(0, 0, 0, 0.65), inset 0 1px 0 rgba(255, 255, 255, 0.18)"27 button: "0 12px 32px -8px rgba(125, 249, 214, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.22)"28borders:29 card: "1px solid rgba(255, 255, 255, 0.10)"30 divider: "rgba(255, 255, 255, 0.08)"31glass:32 surface: "rgba(255, 255, 255, 0.06)"33 blur: 40px34 saturate: 200%35 border: "1px solid rgba(255, 255, 255, 0.18)"36 shadow: "0 30px 80px -20px rgba(0, 0, 0, 0.65)"37 inner_highlight: "inset 0 1px 0 rgba(255, 255, 255, 0.22), inset 0 -1px 0 rgba(255, 255, 255, 0.04)"38 backdrop: "radial-gradient(at 12% 18%, rgba(125, 249, 214, 0.55) 0%, transparent 42%), radial-gradient(at 88% 22%, rgba(167, 139, 250, 0.60) 0%, transparent 48%), radial-gradient(at 78% 82%, rgba(244, 114, 182, 0.50) 0%, transparent 46%), radial-gradient(at 22% 88%, rgba(96, 165, 250, 0.50) 0%, transparent 48%), radial-gradient(at 50% 50%, rgba(192, 132, 252, 0.25) 0%, transparent 60%), #04050B"39buttons:40 primary:41 background: rgba(125, 249, 214, 0.22)42 color: #F4F7FB43 border: 1px solid rgba(125, 249, 214, 0.45)44 shape: pill45 padding: 12px 24px46 font: 600 / 0.9375rem / -0.01em47 shadow: 0 12px 32px -8px rgba(125, 249, 214, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.28)48 backdrop_blur: 32px49 backdrop_saturate: 200%50 secondary:51 background: rgba(255, 255, 255, 0.10)52 color: #F4F7FB53 border: 1px solid rgba(255, 255, 255, 0.22)54 shape: pill55 padding: 12px 24px56 font: 600 / 0.9375rem / -0.01em57 shadow: 0 8px 24px -8px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.18)58 backdrop_blur: 32px59 backdrop_saturate: 180%60 outline:61 background: rgba(255, 255, 255, 0.04)62 color: #F4F7FB63 border: 1px solid rgba(255, 255, 255, 0.18)64 shape: pill65 padding: 11px 22px66 font: 500 / 0.9375rem / -0.01em67 backdrop_blur: 24px68 backdrop_saturate: 160%69 ghost:70 background: transparent71 color: rgba(244, 247, 251, 0.72)72 border: none73 shape: pill74 padding: 11px 16px75 font: 500 / 0.9375rem76 hover: glow77charts:78 variant: line79 stroke_width: 280 gridlines: false81 highlight: last82 dot_marker: true83 axis_color: "#5C6478"84 palette: ["#7DF9D6", "#A78BFA", "#F472B6"]85fonts_url: "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap"86dependencies: ["lucide-react"]87---88 89# Aurora Glass90 91## AI Build Instructions92 93> **Read this section before writing any code.** The rules below94> are non-negotiable. Every value used in the UI must come from this95> file's frontmatter — never substitute, approximate, or invent new96> colors, fonts, radii, or shadows. If a value is missing, ask the97> user before adding one.98 99### 1 · Your role100 101You are building UI for a project that has adopted **Aurora Glass** as its102design system. Treat `DESIGN.md` as the single source of truth.103Your job is to translate the user's product requirements into104components and pages that look like they were designed by the same105person who authored this file.106 107### 2 · Token compliance108 109- Pull every color, font family, radius, shadow, and spacing value110 from the frontmatter at the top of this file.111- Use semantic roles (e.g. `primary`, `accent`, `muted`) — never112 hard-code hex values that bypass the system.113- When a token can be expressed as a CSS variable, declare it once114 in your global stylesheet and reference it everywhere downstream.115- The Google Fonts `<link>` is provided in the Typography section.116 Add it to `<head>` before any component renders.117 118### 3 · Component recipes119 120Use these recipes verbatim when building the corresponding component.121 122#### Buttons123 124Four variants are defined. Pick one — never blend variants or invent a fifth.125 126- **Primary** — pill shape, bg `rgba(125, 249, 214, 0.22)`, text `#F4F7FB`, border `1px solid rgba(125, 249, 214, 0.45)`, padding `12px 24px`, weight `600`, shadow `0 12px 32px -8px rgba(125, 249, 214, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.28)`.127- **Secondary** — pill shape, bg `rgba(255, 255, 255, 0.10)`, text `#F4F7FB`, border `1px solid rgba(255, 255, 255, 0.22)`, padding `12px 24px`, weight `600`, shadow `0 8px 24px -8px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.18)`.128- **Outline** — pill shape, bg `rgba(255, 255, 255, 0.04)`, text `#F4F7FB`, border `1px solid rgba(255, 255, 255, 0.18)`, padding `11px 22px`, weight `500`.129- **Ghost** — pill shape, text `rgba(244, 247, 251, 0.72)`, padding `11px 16px`, weight `500`.130 131Reach for **primary** as the single dominant CTA per screen.132**Secondary** for the supporting action. **Outline** for tertiary133actions in toolbars. **Ghost** for inline links and table actions.134 135#### Cards136 137- Background: `#0A0D18`138- Border: `1px solid rgba(255, 255, 255, 0.10)`139- Shadow: `0 30px 80px -20px rgba(0, 0, 0, 0.65), inset 0 1px 0 rgba(255, 255, 255, 0.18)`140- Radius: `radius.lg` (`26px`)141- Internal padding: `20px` for compact cards, `24–28px` for content cards.142 143> This system ships a **glass treatment** — see the Glass token table.144> Apply `backdrop-filter: blur(40px)` to translucent panes.145> The page must have a backdrop (gradient mesh / blurred orbs) for glass to refract.146 147#### Charts148 149- Bar/line variant: `line`150- No gridlines — let the bars/lines carry the data.151- Highlight strategy: `last` — emphasize a single bar/point per chart.152- Use the declared palette in order: `#7DF9D6`, `#A78BFA`, `#F472B6`.153 154#### Typography pairings155 156- **Display (`Inter`)** — h1, h2, hero headlines, brand wordmarks.157- **Body (`Inter`)** — paragraphs, labels, button text, form inputs.158- **Mono (`JetBrains Mono`)** — code, eyebrows, metadata, numerals in tables.159 160### 4 · Hard constraints161 162Never do any of the following without explicit instruction from the user:163 164- Introduce a new color, font, radius, or shadow that isn't declared above.165- Mix this system with another (e.g. don't paste in Material or Bootstrap defaults).166- Use generic gradient defaults (purple→blue, peach→pink) — they break the system's voice.167- Reach for emoji icons. Use a consistent icon library and size icons in line with body type.168- Add motion that exceeds the system's restraint — keep transitions short (≤200ms) and subtle.169 170### 5 · Before you finish — verify171 172Run through this checklist for every screen you produce:173 174- [ ] Every color used appears in the Colors table above.175- [ ] Headlines use the display font; body copy uses the body font.176- [ ] Buttons match one of the declared variants exactly (shape, padding, weight).177- [ ] Border-radius values come from `radius.sm` / `radius.md` / `radius.lg` / `radius.pill`.178- [ ] Cards and dividers use the declared border + shadow tokens.179- [ ] No values were invented; if you needed something missing, you stopped and asked.180 181---182 183## Overview184Aurora Glass is the extreme end of glassmorphism. **Every surface that matters is translucent** — cards at 6% opacity, buttons at 10–22%, all sitting on a 40px backdrop blur with 200% saturation. Underneath, a five-orb aurora mesh in mint, violet, rose, and ultramarine. There are no opaque surfaces in this system. Even the primary CTA is frosted mint glass.185 186This is the iOS 17 / visionOS material language at full intensity: real backdrop-filter, layered transparency, hairline gloss on every top edge, vivid colored light passing through every pane.187 188## Atmosphere189- The page background is a **vivid aurora mesh** — five radial orbs (mint, violet, rose, blue, purple) layered over near-black `#04050B`. It is loud on purpose; the glass tames it.190- Cards are **panes**, not boxes. They float at 6% opacity. They refract every color behind them. They never have a solid fill.191- Buttons are **frosted pills** — even the primary, which is mint-tinted glass at 22% with a 32px backdrop blur. Solid CTAs are forbidden.192- Borders are **bright hairlines** — 18% white on cards, 22% white on secondary buttons, 45% mint on the primary. They catch the light from the gloss above.193- Shadows are **deep and far** (80px blur, -20px y) and always paired with a 1px inner top highlight. That combination is what creates the floating-pane illusion.194 195## Typography196**Inter** at every level — chosen because it holds up at -3.5% tracking on display sizes without losing legibility on translucent surfaces. The hero compresses; the body breathes.197 198| Role | Size | Weight | Tracking |199|------|-----------|--------|-----------|200| Hero | 4.25rem | 600 | -0.035em |201| H1 | 2.75rem | 600 | -0.03em |202| H2 | 1.625rem | 500 | -0.02em |203| Body | 1rem | 400 | -0.005em |204 205Display weight is **600** — never 700. Glass surfaces eat contrast; over-bold text shouts.206 207## Color208- **Aurora Mint #7DF9D6** — used as a glass tint on the primary CTA and as the chart accent. Never as a solid fill.209- **Violet #A78BFA**, **Rose #F472B6**, **Blue #60A5FA**, **Purple #C084FC** — these only exist inside the backdrop mesh. They are light, not ink.210- **Ink #F4F7FB** — primary text, slightly cool. Reads cleanly through every level of frost.211- **Mid #A6B0C2** — captions, tested to remain legible through 6% glass at 40px blur.212 213## Buttons214All four variants are frosted glass. **There are no solid buttons in this system.**215 216- **Primary** — mint-tinted glass pill, 22% mint background, 32px backdrop blur, 200% saturation, 45% mint hairline border, mint-glow shadow. The most visible CTA — but still glass.217- **Secondary** — neutral frosted pill, 10% white, 32px blur, bright hairline.218- **Outline** — whisper-glass, 4% white, hairline border, 24px blur. Almost invisible until you hover.219- **Ghost** — bare label, no surface. For chrome only.220 221All four are **pills** (9999px). Sharp corners are forbidden anywhere in this system.222 223## Charts & Data224Single mint stepped-line over the aurora with a dot marker at the latest value. **No gridlines** — the aurora provides depth, the line provides signal. Axis labels in cool grey `#5C6478`.225 226## Do's and Don'ts227- ✅ Always render the aurora backdrop. Without it, glass is just a grey tint.228- ✅ Every surface — cards, CTAs, inputs — must use `backdrop-filter: blur(...)`. No exceptions.229- ✅ Pair every glass surface with a bright top-edge highlight (1px white at 18–22%). That is the difference between glass and plexiglass.230- ✅ Keep card opacity ≤ 8%, button opacity ≤ 22%. More opaque = plastic.231- ❌ No solid CTAs. The primary button is mint-tinted glass, not solid mint.232- ❌ No sharp corners. 26px on cards, pill on buttons, period.233- ❌ No drop-shadow without an inner highlight. Half of it is half wrong.234- ❌ No magenta/rose/violet ink. Those colors live in the backdrop only.235 236---237 238## Tokens239 240> Generated from the same source the live preview renders from.241> Treat the values below as the contract — never substitute approximations.242 243### Colors244 245| Role | Value |246|-----------|-------|247| primary | `#F4F7FB` |248| secondary | `#A6B0C2` |249| tertiary | `#7DF9D6` |250| neutral | `#04050B` |251| surface | `#0A0D18` |252 253### Typography254 255- **Display:** Inter256- **Body:** Inter257- **Mono:** JetBrains Mono258 259| Role | size / leading / weight / tracking |260|------|------------------------------------|261| Hero | 4.25rem / 1.04 / 600 / -0.035em |262| H1 | 2.75rem / 1.08 / 600 / -0.03em |263| H2 | 1.625rem / 1.2 / 500 / -0.02em |264| Body | 1rem / 1.55 / 400 / -0.005em |265 266### Radius267 268- sm: `12px`269- md: `18px`270- lg: `26px`271- pill: `9999px`272 273### Shadows274 275- **card:** `0 30px 80px -20px rgba(0, 0, 0, 0.65), inset 0 1px 0 rgba(255, 255, 255, 0.18)`276- **button:** `0 12px 32px -8px rgba(125, 249, 214, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.22)`277 278### Borders279 280- **card:** `1px solid rgba(255, 255, 255, 0.10)`281- **divider:** `rgba(255, 255, 255, 0.08)`282 283### Glass284 285Translucent panes with backdrop-filter — the preview renders cards from these exact values.286 287| Property | Value |288|----------|-------|289| surface | `rgba(255, 255, 255, 0.06)` |290| blur | `40px` |291| saturate | `200%` |292| border | `1px solid rgba(255, 255, 255, 0.18)` |293| shadow | `0 30px 80px -20px rgba(0, 0, 0, 0.65)` |294| innerHighlight | `inset 0 1px 0 rgba(255, 255, 255, 0.22), inset 0 -1px 0 rgba(255, 255, 255, 0.04)` |295| backdrop | `radial-gradient(at 12% 18%, rgba(125, 249, 214, 0.55) 0%, transparent 42%), radial-gradient(at 88% 22%, rgba(167, 139, 250, 0.60) 0%, transparent 48%), radial-gradient(at 78% 82%, rgba(244, 114, 182, 0.50) 0%, transparent 46%), radial-gradient(at 22% 88%, rgba(96, 165, 250, 0.50) 0%, transparent 48%), radial-gradient(at 50% 50%, rgba(192, 132, 252, 0.25) 0%, transparent 60%), #04050B` |296 297### Buttons298 299Four variants, each fully tokenized. The preview renders from these exact values.300 301#### Primary302 303| Property | Value |304|----------|-------|305| shape | `pill` |306| background | `rgba(125, 249, 214, 0.22)` |307| color | `#F4F7FB` |308| border | `1px solid rgba(125, 249, 214, 0.45)` |309| padding | `12px 24px` |310| fontWeight | `600` |311| fontSize | `0.9375rem` |312| tracking | `-0.01em` |313| shadow | `0 12px 32px -8px rgba(125, 249, 214, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.28)` |314| backdropBlur | `32px` |315| backdropSaturate | `200%` |316 317#### Secondary318 319| Property | Value |320|----------|-------|321| shape | `pill` |322| background | `rgba(255, 255, 255, 0.10)` |323| color | `#F4F7FB` |324| border | `1px solid rgba(255, 255, 255, 0.22)` |325| padding | `12px 24px` |326| fontWeight | `600` |327| fontSize | `0.9375rem` |328| tracking | `-0.01em` |329| shadow | `0 8px 24px -8px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.18)` |330| backdropBlur | `32px` |331| backdropSaturate | `180%` |332 333#### Outline334 335| Property | Value |336|----------|-------|337| shape | `pill` |338| background | `rgba(255, 255, 255, 0.04)` |339| color | `#F4F7FB` |340| border | `1px solid rgba(255, 255, 255, 0.18)` |341| padding | `11px 22px` |342| fontWeight | `500` |343| fontSize | `0.9375rem` |344| tracking | `-0.01em` |345| backdropBlur | `24px` |346| backdropSaturate | `160%` |347 348#### Ghost349 350| Property | Value |351|----------|-------|352| shape | `pill` |353| background | `transparent` |354| color | `rgba(244, 247, 251, 0.72)` |355| border | `none` |356| padding | `11px 16px` |357| fontWeight | `500` |358| fontSize | `0.9375rem` |359| hoverHint | `glow` |360 361### Charts362 363| Property | Value |364|----------|-------|365| variant | `line` |366| strokeWidth | `2` |367| gridlines | `false` |368| highlight | `last` |369| dotMarker | `true` |370| axisColor | `#5C6478` |371| palette | `#7DF9D6`, `#A78BFA`, `#F472B6` |372 # CLAUDE.md Reference @DESIGN.md for all styling decisions. Apply tokens strictly — do not introduce colors, fonts, or radii outside the system. When in doubt, prefer the values declared in DESIGN.md frontmatter.<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" />npm install lucide-react// tailwind.config.jsexport default { theme: { extend: { fontFamily: { display: ['"Inter"', 'serif'], sans: ['"Inter"', 'sans-serif'], mono: ['"JetBrains Mono"', 'monospace'], }, colors: { primary: '#F4F7FB', secondary: '#A6B0C2', accent: '#7DF9D6', neutral: '#04050B', surface: '#0A0D18', }, borderRadius: { sm: '12px', md: '18px', lg: '26px', }, }, },};Wabi-sabi calm. Warm stone and oat tones, asymmetric editorial layout, crimson hairline accent, classical serif lyrics. Slow, considered, quietly luxurious.
A complete design system, ready for your AI coding agent. Every primitive, token, and pattern below is generated straight from DESIGN.md — drop the file in your project and ship matching UI in minutes.
Endless whitespace. Bold Inter headlines at -3% tracking. A single black accent. Soft 6px corners. Nothing else.
A complete design system, ready for your AI coding agent. Every primitive, token, and pattern below is generated straight from DESIGN.md — drop the file in your project and ship matching UI in minutes.