Mid-tone soft glass. Warm dusty-sand canvas with a peach-and-rose aurora behind; cards float as cream-tinted frosted panes with 26px backdrop-blur and a faint inset top highlight. The mid-tone is the system.
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: "Dune Glass"3description: "Mid-tone soft glass. Warm dusty-sand canvas with a peach-and-rose aurora behind; cards float as cream-tinted frosted panes with 26px backdrop-blur and a faint inset top highlight. The mid-tone is the system."4tags: [glass, warm, premium, minimal, modern]5colors:6 primary: "#1F1A18"7 secondary: "#7A6E66"8 tertiary: "#C46B6B"9 neutral: "#D8C9B8"10 surface: "#EFE4D5"11typography:12 display: "Inter Tight"13 body: Inter14 mono: "JetBrains Mono"15 scale:16 hero: "4.5rem / 1.05 / 600 / -0.035em"17 h1: "2.625rem / 1.1 / 600 / -0.028em"18 h2: "1.5rem / 1.3 / 600 / -0.015em"19 body: "1rem / 1.65 / 400 / -0.005em"20radius:21 sm: 14px22 md: 20px23 lg: 26px24 pill: 9999px25shadows:26 card: "0 28px 64px -28px rgba(74, 50, 38, 0.22), 0 2px 8px -4px rgba(74, 50, 38, 0.08)"27 button: "0 10px 28px -14px rgba(196, 107, 107, 0.50), inset 0 1px 0 rgba(255, 230, 220, 0.40)"28borders:29 card: "1px solid rgba(255, 248, 238, 0.65)"30 divider: "rgba(31, 26, 24, 0.10)"31glass:32 surface: "rgba(255, 248, 238, 0.55)"33 blur: 26px34 saturate: 150%35 border: "1px solid rgba(255, 248, 238, 0.65)"36 shadow: "0 28px 64px -28px rgba(74, 50, 38, 0.22), 0 2px 8px -4px rgba(74, 50, 38, 0.08)"37 inner_highlight: "inset 0 1px 0 rgba(255, 248, 238, 0.85)"38 backdrop: "radial-gradient(at 14% 16%, rgba(255, 200, 180, 0.55) 0px, transparent 45%), radial-gradient(at 84% 18%, rgba(255, 175, 175, 0.45) 0px, transparent 50%), radial-gradient(at 78% 88%, rgba(245, 220, 195, 0.50) 0px, transparent 55%)"39buttons:40 primary:41 background: linear-gradient(180deg, #D88585 0%, #B85858 100%)42 color: #FFF8EE43 border: 1px solid rgba(255, 248, 238, 0.22)44 shape: pill45 padding: 12px 24px46 font: 600 / 0.9375rem / -0.005em47 shadow: 0 10px 28px -14px rgba(196, 107, 107, 0.55), inset 0 1px 0 rgba(255, 248, 238, 0.40)48 secondary:49 background: rgba(255, 248, 238, 0.55)50 color: #1F1A1851 border: 1px solid rgba(255, 248, 238, 0.70)52 shape: pill53 padding: 12px 24px54 font: 500 / 0.9375rem / -0.005em55 backdrop_blur: 20px56 backdrop_saturate: 150%57 outline:58 background: transparent59 color: #1F1A1860 border: 1px solid rgba(31, 26, 24, 0.22)61 shape: pill62 padding: 11px 22px63 font: 500 / 0.9375rem / -0.005em64 ghost:65 background: transparent66 color: #7A6E6667 border: none68 shape: pill69 padding: 11px 6px70 font: 500 / 0.9375rem / -0.005em71 hover: underline72charts:73 variant: area74 stroke_width: 275 fill_opacity: 0.276 gridlines: false77 highlight: last78 dot_marker: true79 axis_color: "#7A6E66"80 palette: ["#C46B6B", "#D89090", "#E8B8B8"]81fonts_url: "https://fonts.googleapis.com/css2?family=Inter+Tight:wght@400;500;600;700&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400&display=swap"82dependencies: ["lucide-react"]83---84 85# Dune Glass86 87## AI Build Instructions88 89> **Read this section before writing any code.** The rules below90> are non-negotiable. Every value used in the UI must come from this91> file's frontmatter — never substitute, approximate, or invent new92> colors, fonts, radii, or shadows. If a value is missing, ask the93> user before adding one.94 95### 1 · Your role96 97You are building UI for a project that has adopted **Dune Glass** as its98design system. Treat `DESIGN.md` as the single source of truth.99Your job is to translate the user's product requirements into100components and pages that look like they were designed by the same101person who authored this file.102 103### 2 · Token compliance104 105- Pull every color, font family, radius, shadow, and spacing value106 from the frontmatter at the top of this file.107- Use semantic roles (e.g. `primary`, `accent`, `muted`) — never108 hard-code hex values that bypass the system.109- When a token can be expressed as a CSS variable, declare it once110 in your global stylesheet and reference it everywhere downstream.111- The Google Fonts `<link>` is provided in the Typography section.112 Add it to `<head>` before any component renders.113 114### 3 · Component recipes115 116Use these recipes verbatim when building the corresponding component.117 118#### Buttons119 120Four variants are defined. Pick one — never blend variants or invent a fifth.121 122- **Primary** — pill shape, bg `linear-gradient(180deg, #D88585 0%, #B85858 100%)`, text `#FFF8EE`, border `1px solid rgba(255, 248, 238, 0.22)`, padding `12px 24px`, weight `600`, shadow `0 10px 28px -14px rgba(196, 107, 107, 0.55), inset 0 1px 0 rgba(255, 248, 238, 0.40)`.123- **Secondary** — pill shape, bg `rgba(255, 248, 238, 0.55)`, text `#1F1A18`, border `1px solid rgba(255, 248, 238, 0.70)`, padding `12px 24px`, weight `500`.124- **Outline** — pill shape, text `#1F1A18`, border `1px solid rgba(31, 26, 24, 0.22)`, padding `11px 22px`, weight `500`.125- **Ghost** — pill shape, text `#7A6E66`, padding `11px 6px`, weight `500`.126 127Reach for **primary** as the single dominant CTA per screen.128**Secondary** for the supporting action. **Outline** for tertiary129actions in toolbars. **Ghost** for inline links and table actions.130 131#### Cards132 133- Background: `#EFE4D5`134- Border: `1px solid rgba(255, 248, 238, 0.65)`135- Shadow: `0 28px 64px -28px rgba(74, 50, 38, 0.22), 0 2px 8px -4px rgba(74, 50, 38, 0.08)`136- Radius: `radius.lg` (`26px`)137- Internal padding: `20px` for compact cards, `24–28px` for content cards.138 139> This system ships a **glass treatment** — see the Glass token table.140> Apply `backdrop-filter: blur(26px)` to translucent panes.141> The page must have a backdrop (gradient mesh / blurred orbs) for glass to refract.142 143#### Charts144 145- Bar/line variant: `area`146- No gridlines — let the bars/lines carry the data.147- Highlight strategy: `last` — emphasize a single bar/point per chart.148- Use the declared palette in order: `#C46B6B`, `#D89090`, `#E8B8B8`.149 150#### Typography pairings151 152- **Display (`Inter Tight`)** — h1, h2, hero headlines, brand wordmarks.153- **Body (`Inter`)** — paragraphs, labels, button text, form inputs.154- **Mono (`JetBrains Mono`)** — code, eyebrows, metadata, numerals in tables.155 156### 4 · Hard constraints157 158Never do any of the following without explicit instruction from the user:159 160- Introduce a new color, font, radius, or shadow that isn't declared above.161- Mix this system with another (e.g. don't paste in Material or Bootstrap defaults).162- Use generic gradient defaults (purple→blue, peach→pink) — they break the system's voice.163- Reach for emoji icons. Use a consistent icon library and size icons in line with body type.164- Add motion that exceeds the system's restraint — keep transitions short (≤200ms) and subtle.165 166### 5 · Before you finish — verify167 168Run through this checklist for every screen you produce:169 170- [ ] Every color used appears in the Colors table above.171- [ ] Headlines use the display font; body copy uses the body font.172- [ ] Buttons match one of the declared variants exactly (shape, padding, weight).173- [ ] Border-radius values come from `radius.sm` / `radius.md` / `radius.lg` / `radius.pill`.174- [ ] Cards and dividers use the declared border + shadow tokens.175- [ ] No values were invented; if you needed something missing, you stopped and asked.176 177---178 179## Overview180Dune Glass is the third register of glass — neither cool light nor dark indigo, but a warm dusty-sand mid-tone. The page sits on dusty sand with a soft aurora behind it: peach, rose, cream — three warm radial blobs. Cards float above as cream-tinted frosted panes: 26px backdrop-blur, 55% cream surface, 1px cream-alpha hairline, faint inset top highlight.181 182The mid-tone canvas is the system's differentiator. For wellness brands, hospitality, lifestyle apps, anything that wants the depth of glass without going to either extreme of light or dark.183 184## The Glass Recipe185Cards are warm cream glass over a dusty-warm canvas:186 187```css188.dune-pane {189 background: rgba(255, 248, 238, 0.55);190 backdrop-filter: blur(26px) saturate(150%);191 -webkit-backdrop-filter: blur(26px) saturate(150%);192 border: 1px solid rgba(255, 248, 238, 0.65);193 box-shadow:194 inset 0 1px 0 rgba(255, 248, 238, 0.85),195 0 28px 64px -28px rgba(74, 50, 38, 0.22),196 0 2px 8px -4px rgba(74, 50, 38, 0.08);197 border-radius: 26px;198}199```200 201The page MUST have the warm aurora for the glass to mean anything:202 203```css204body {205 background:206 radial-gradient(at 14% 16%, rgba(255,200,180,0.55) 0, transparent 45%),207 radial-gradient(at 84% 18%, rgba(255,175,175,0.45) 0, transparent 50%),208 radial-gradient(at 78% 88%, rgba(245,220,195,0.50) 0, transparent 55%),209 #D8C9B8;210}211```212 213The dusty-sand base is non-negotiable — it is what makes this system distinct from cool light glass.214 215## Color216- **Ink #1F1A18** — primary text. Warm bias to sit on the dusty canvas.217- **Warm graphite #7A6E66** — secondary text, axis labels.218- **Soft rose #C46B6B** — the only chromatic accent. Sits inside the aurora family.219- **Dusty sand #D8C9B8** — page canvas. Mid-tone warm.220- **Cream #FFF8EE @ 55%** — card surface (translucent over the aurora).221 222The aurora uses three soft warm tints — peach, rose, cream. Never anything cool.223 224## Typography225- **Display: Inter Tight 600** at 4.5rem with -3.5% tracking.226- **Body: Inter 400** at 1rem with 1.65 leading.227 228| Role | Font | Size | Weight | Tracking |229|------|------|------|--------|----------|230| Hero | Inter Tight | 4.5rem | 600 | -0.035em |231| H1 | Inter Tight | 2.625rem | 600 | -0.028em |232| H2 | Inter Tight | 1.5rem | 600 | -0.015em |233| Body | Inter | 1rem | 400 | -0.005em / 1.65 |234 235## Geometry236- **Radii: 14 / 20 / 26.** Generous corners — glass at sharp corners reads as plastic.237- **Pill buttons** for primary + secondary.238- **Section gap: 120px** desktop, 72px mobile. The aurora needs room.239 240## Buttons241- **Primary** — vertical soft-rose gradient with inner top-edge gloss. Pill shape. Warm CTA on warm canvas.242- **Secondary** — cream-tinted frosted glass pill (the same recipe as cards, scaled down).243- **Outline** — bare ink hairline pill at 22%.244- **Ghost** — bare warm-graphite label, hover underline.245 246## Cards247Cream-tinted frosted glass panes — see the recipe above. Radius 26px. Padding 32px minimum. Cards never sit flush; always 24-32px gap so the aurora reads between them.248 249## Charts & Data250Soft-rose area chart at 2px stroke and 20% fill opacity, no gridlines, end-of-line dot marker. The chart sits inside a glass card so the page aurora stays in the background.251 252## Do's and Don'ts253- ✅ The dusty-sand canvas + warm aurora is mandatory. Without it the glass dies.254- ✅ Cream-tinted glass surface (#FFF8EE @ 55%), never neutral white-translucent.255- ✅ Cards always include the inner top-edge highlight — that's what reads as a polished pane.256- ✅ One chromatic accent — soft rose. Sits inside the aurora's color family.257- ❌ No cool tints. The system is strictly warm.258- ❌ No solid cards. If a card isn't cream-glass, it's not in the system.259- ❌ No light or dark canvas — the mid-tone dusty sand is the entire differentiator.260- ❌ No second chromatic accent.261 262---263 264## Tokens265 266> Generated from the same source the live preview renders from.267> Treat the values below as the contract — never substitute approximations.268 269### Colors270 271| Role | Value |272|-----------|-------|273| primary | `#1F1A18` |274| secondary | `#7A6E66` |275| tertiary | `#C46B6B` |276| neutral | `#D8C9B8` |277| surface | `#EFE4D5` |278 279### Typography280 281- **Display:** Inter Tight282- **Body:** Inter283- **Mono:** JetBrains Mono284 285| Role | size / leading / weight / tracking |286|------|------------------------------------|287| Hero | 4.5rem / 1.05 / 600 / -0.035em |288| H1 | 2.625rem / 1.1 / 600 / -0.028em |289| H2 | 1.5rem / 1.3 / 600 / -0.015em |290| Body | 1rem / 1.65 / 400 / -0.005em |291 292### Radius293 294- sm: `14px`295- md: `20px`296- lg: `26px`297- pill: `9999px`298 299### Shadows300 301- **card:** `0 28px 64px -28px rgba(74, 50, 38, 0.22), 0 2px 8px -4px rgba(74, 50, 38, 0.08)`302- **button:** `0 10px 28px -14px rgba(196, 107, 107, 0.50), inset 0 1px 0 rgba(255, 230, 220, 0.40)`303 304### Borders305 306- **card:** `1px solid rgba(255, 248, 238, 0.65)`307- **divider:** `rgba(31, 26, 24, 0.10)`308 309### Glass310 311Translucent panes with backdrop-filter — the preview renders cards from these exact values.312 313| Property | Value |314|----------|-------|315| surface | `rgba(255, 248, 238, 0.55)` |316| blur | `26px` |317| saturate | `150%` |318| border | `1px solid rgba(255, 248, 238, 0.65)` |319| shadow | `0 28px 64px -28px rgba(74, 50, 38, 0.22), 0 2px 8px -4px rgba(74, 50, 38, 0.08)` |320| innerHighlight | `inset 0 1px 0 rgba(255, 248, 238, 0.85)` |321| backdrop | `radial-gradient(at 14% 16%, rgba(255, 200, 180, 0.55) 0px, transparent 45%), radial-gradient(at 84% 18%, rgba(255, 175, 175, 0.45) 0px, transparent 50%), radial-gradient(at 78% 88%, rgba(245, 220, 195, 0.50) 0px, transparent 55%)` |322 323### Buttons324 325Four variants, each fully tokenized. The preview renders from these exact values.326 327#### Primary328 329| Property | Value |330|----------|-------|331| shape | `pill` |332| background | `linear-gradient(180deg, #D88585 0%, #B85858 100%)` |333| color | `#FFF8EE` |334| border | `1px solid rgba(255, 248, 238, 0.22)` |335| padding | `12px 24px` |336| fontWeight | `600` |337| fontSize | `0.9375rem` |338| tracking | `-0.005em` |339| shadow | `0 10px 28px -14px rgba(196, 107, 107, 0.55), inset 0 1px 0 rgba(255, 248, 238, 0.40)` |340 341#### Secondary342 343| Property | Value |344|----------|-------|345| shape | `pill` |346| background | `rgba(255, 248, 238, 0.55)` |347| color | `#1F1A18` |348| border | `1px solid rgba(255, 248, 238, 0.70)` |349| padding | `12px 24px` |350| fontWeight | `500` |351| fontSize | `0.9375rem` |352| tracking | `-0.005em` |353| backdropBlur | `20px` |354| backdropSaturate | `150%` |355 356#### Outline357 358| Property | Value |359|----------|-------|360| shape | `pill` |361| background | `transparent` |362| color | `#1F1A18` |363| border | `1px solid rgba(31, 26, 24, 0.22)` |364| padding | `11px 22px` |365| fontWeight | `500` |366| fontSize | `0.9375rem` |367| tracking | `-0.005em` |368 369#### Ghost370 371| Property | Value |372|----------|-------|373| shape | `pill` |374| background | `transparent` |375| color | `#7A6E66` |376| border | `none` |377| padding | `11px 6px` |378| fontWeight | `500` |379| fontSize | `0.9375rem` |380| tracking | `-0.005em` |381| hoverHint | `underline` |382 383### Charts384 385| Property | Value |386|----------|-------|387| variant | `area` |388| strokeWidth | `2` |389| fillOpacity | `0.2` |390| gridlines | `false` |391| highlight | `last` |392| dotMarker | `true` |393| axisColor | `#7A6E66` |394| palette | `#C46B6B`, `#D89090`, `#E8B8B8` |395 # 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+Tight:wght@400;500;600;700&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400&display=swap" />npm install lucide-react// tailwind.config.jsexport default { theme: { extend: { fontFamily: { display: ['"Inter Tight"', 'serif'], sans: ['"Inter"', 'sans-serif'], mono: ['"JetBrains Mono"', 'monospace'], }, colors: { primary: '#1F1A18', secondary: '#7A6E66', accent: '#C46B6B', neutral: '#D8C9B8', surface: '#EFE4D5', }, borderRadius: { sm: '14px', md: '20px', lg: '26px', }, }, },};A trading desk that whispers. Off-white surfaces with hairline-only chrome, IBM Plex Sans for prose, IBM Plex Mono with tabular numerals for every figure, a single forest-green accent reserved for positive deltas. Built for fintech dashboards, treasury tools, and any product where the numbers must be the loudest thing on the screen.
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.
Warm bone minimalism with a serif voice. Fraunces display headlines paired with Inter body, a single cognac accent reserved for active states, and generous hairline-only chrome. The quiet end of editorial — built for studios, journals, and brands that whisper.
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.