Near-white canvas with warm stone undertones, ethereal light-weight display type, and whisper-soft multi-layer shadows.
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: "Whisper Studio"3description: "Near-white canvas with warm stone undertones, ethereal light-weight display type, and whisper-soft multi-layer shadows."4tags: [minimal, warm, premium, audio]5colors:6 primary: "#000000"7 secondary: "#4E4E4E"8 tertiary: "#777169"9 neutral: "#F5F5F5"10 surface: "#FFFFFF"11typography:12 display: "Familjen Grotesk"13 body: Inter14 mono: "JetBrains Mono"15 scale:16 hero: "3rem / 1.08 / 300 / -0.96px"17 h1: "2.25rem / 1.17 / 300 / 0"18 h2: "1.5rem / 1.2 / 300 / 0"19 body: "1.125rem / 1.55 / 400 / 0.18px"20radius:21 sm: 8px22 md: 12px23 lg: 20px24 pill: 9999px25shadows:26 card: "rgba(0,0,0,0.06) 0 0 0 1px, rgba(0,0,0,0.04) 0 1px 2px, rgba(0,0,0,0.04) 0 2px 4px"27 button: "rgba(78, 50, 23, 0.04) 0 6px 16px, rgba(0,0,0,0.4) 0 0 1px"28buttons:29 primary:30 background: #1A1A1A31 color: #FAFAF732 border: none33 shape: pill34 padding: 10px 18px35 font: 50036 secondary:37 background: #FAFAF738 color: #1A1A1A39 border: 1px solid #E8E5DD40 shape: pill41 padding: 10px 18px42 font: 50043 outline:44 background: transparent45 color: #1A1A1A46 border: 1px solid #1A1A1A47 shape: pill48 padding: 10px 18px49 font: 50050 ghost:51 background: transparent52 color: #6B6B6B53 border: none54 shape: pill55 padding: 10px 14px56 font: 50057 hover: underline58charts:59 variant: "thin-bars"60 stroke_width: 161 fill_opacity: 0.0462 bar_gap: 16px63 highlight: single64 dot_marker: false65fonts_url: "https://fonts.googleapis.com/css2?family=Familjen+Grotesk:wght@300;400;500;700&family=Inter:wght@400;500;700&family=JetBrains+Mono:wght@400&display=swap"66dependencies: ["lucide-react"]67---68 69# Whisper Studio70 71## AI Build Instructions72 73> **Read this section before writing any code.** The rules below74> are non-negotiable. Every value used in the UI must come from this75> file's frontmatter — never substitute, approximate, or invent new76> colors, fonts, radii, or shadows. If a value is missing, ask the77> user before adding one.78 79### 1 · Your role80 81You are building UI for a project that has adopted **Whisper Studio** as its82design system. Treat `DESIGN.md` as the single source of truth.83Your job is to translate the user's product requirements into84components and pages that look like they were designed by the same85person who authored this file.86 87### 2 · Token compliance88 89- Pull every color, font family, radius, shadow, and spacing value90 from the frontmatter at the top of this file.91- Use semantic roles (e.g. `primary`, `accent`, `muted`) — never92 hard-code hex values that bypass the system.93- When a token can be expressed as a CSS variable, declare it once94 in your global stylesheet and reference it everywhere downstream.95- The Google Fonts `<link>` is provided in the Typography section.96 Add it to `<head>` before any component renders.97 98### 3 · Component recipes99 100Use these recipes verbatim when building the corresponding component.101 102#### Buttons103 104Four variants are defined. Pick one — never blend variants or invent a fifth.105 106- **Primary** — pill shape, bg `#1A1A1A`, text `#FAFAF7`, padding `10px 18px`, weight `500`.107- **Secondary** — pill shape, bg `#FAFAF7`, text `#1A1A1A`, border `1px solid #E8E5DD`, padding `10px 18px`, weight `500`.108- **Outline** — pill shape, text `#1A1A1A`, border `1px solid #1A1A1A`, padding `10px 18px`, weight `500`.109- **Ghost** — pill shape, text `#6B6B6B`, padding `10px 14px`, weight `500`.110 111Reach for **primary** as the single dominant CTA per screen.112**Secondary** for the supporting action. **Outline** for tertiary113actions in toolbars. **Ghost** for inline links and table actions.114 115#### Cards116 117- Background: `#FFFFFF`118- Shadow: `rgba(0,0,0,0.06) 0 0 0 1px, rgba(0,0,0,0.04) 0 1px 2px, rgba(0,0,0,0.04) 0 2px 4px`119- Radius: `radius.lg` (`20px`)120- Internal padding: `20px` for compact cards, `24–28px` for content cards.121 122#### Charts123 124- Bar/line variant: `thin-bars`125- Highlight strategy: `single` — emphasize a single bar/point per chart.126 127#### Typography pairings128 129- **Display (`Familjen Grotesk`)** — h1, h2, hero headlines, brand wordmarks.130- **Body (`Inter`)** — paragraphs, labels, button text, form inputs.131- **Mono (`JetBrains Mono`)** — code, eyebrows, metadata, numerals in tables.132 133### 4 · Hard constraints134 135Never do any of the following without explicit instruction from the user:136 137- Introduce a new color, font, radius, or shadow that isn't declared above.138- Mix this system with another (e.g. don't paste in Material or Bootstrap defaults).139- Use generic gradient defaults (purple→blue, peach→pink) — they break the system's voice.140- Reach for emoji icons. Use a consistent icon library and size icons in line with body type.141- Add motion that exceeds the system's restraint — keep transitions short (≤200ms) and subtle.142 143### 5 · Before you finish — verify144 145Run through this checklist for every screen you produce:146 147- [ ] Every color used appears in the Colors table above.148- [ ] Headlines use the display font; body copy uses the body font.149- [ ] Buttons match one of the declared variants exactly (shape, padding, weight).150- [ ] Border-radius values come from `radius.sm` / `radius.md` / `radius.lg` / `radius.pill`.151- [ ] Cards and dividers use the declared border + shadow tokens.152- [ ] No values were invented; if you needed something missing, you stopped and asked.153 154---155 156## 1. Atmosphere157 158A near-white canvas where typography and whisper-soft shadows do the heavy lifting. Surfaces barely exist — they float above the page with the lightest possible touch. Warm stone undertones (`#F5F2EF`, `#777169`) prevent the purity from feeling clinical; this is restraint with body heat, not refrigerator-light minimalism.159 160The signature move: light-weight display type. Where most systems shout in bold, Whisper Studio uses **weight 300** to create intrigue through restraint. Body text uses **positive letter-spacing (+0.14 to +0.18px)** for an airy reading rhythm.161 162## 2. Palette163 164### Ink165- `#000000` — primary text, headings, dark pill buttons166- `#4E4E4E` — secondary text, descriptions167- `#777169` — tertiary text, captions, decorative underlines168 169### Surface170- `#FFFFFF` — primary canvas, cards, button backgrounds171- `#F5F5F5` — secondary surface, subtle section breaks172- `rgba(245, 242, 239, 0.8)` — **warm stone** — the signature CTA tint173 174### Lines175- `#E5E5E5` — explicit borders176- `rgba(0, 0, 0, 0.05)` — hairline section dividers177- `rgba(147, 197, 253, 0.5)` — focus ring178 179## 3. Typography180 181| Role | Font | Size | Weight | Tracking |182|------|------|------|--------|----------|183| Hero | Familjen Grotesk | 48px | 300 | -0.96px |184| Section | Familjen Grotesk | 36px | 300 | 0 |185| Card title | Familjen Grotesk | 32px | 300 | 0 |186| Body | Inter | 18px | 400 | +0.18px |187| UI | Inter | 16px | 400 | +0.16px |188| Nav | Inter | 15px | 500 | +0.15px |189| Caps CTA | Inter | 14px | 700 | +0.7px, uppercase |190| Code | JetBrains Mono | 13px | 400 | 0 |191 192**Light is the hero weight.** Display type at weight 300 is non-negotiable — bold display breaks the system. Body uses positive tracking for airy readability.193 194## 4. Shadow Stack195 196The most distinctive element. Every shadow is sub-0.1 opacity. Cards combine **inset edges + outline rings + soft elevation**, layered:197 198- **Level 0 (inset edge)** — `rgba(0,0,0,0.075) 0 0 0 0.5px inset` — defines surface boundary from inside199- **Level 1 (outline ring)** — `rgba(0,0,0,0.06) 0 0 0 1px, rgba(0,0,0,0.04) 0 1px 2px, rgba(0,0,0,0.04) 0 2px 4px` — shadow-as-border for cards200- **Level 2 (card lift)** — `rgba(0,0,0,0.4) 0 0 1px, rgba(0,0,0,0.04) 0 4px 4px` — pill buttons, prominent cards201- **Level 3 (warm lift)** — `rgba(78, 50, 23, 0.04) 0 6px 16px` — featured CTAs only202 203**Shadows have color, not just darkness.** The warm CTA shadow uses brown (`rgba(78, 50, 23, ...)`) instead of neutral black — this is the system's hidden warmth.204 205## 5. Buttons206 207- **Primary pill** — black background, white text, `9999px` radius, padding `10px 14px`. The page's main action.208- **Ghost pill** — white background, black text, `9999px` radius, level-2 shadow. Secondary action.209- **Warm stone pill** — `rgba(245,242,239,0.8)` background, asymmetric padding (`12px 20px 12px 14px`), `30px` radius, level-3 warm shadow. The signature — featured CTAs and hero actions only.210- **Caps button** — Inter 14px weight 700, uppercase, +0.7px tracking. For specific bold labels.211 212## 6. Cards213 214White background, **20px radius**, level-1 outline-ring shadow. Padding 24px. Cards are *not* pills — keep the radius generous but rectangular.215 216## 7. Spacing & Layout217 218- Base unit: **8px**219- Scale: `1, 3, 4, 8, 9, 10, 11, 12, 16, 18, 20, 24, 28, 32, 40`220- Section spacing: **120px** vertical between major sections — premium-modern generosity221- Container max: **1200px**222 223## 8. Radius Scale224 225`2 / 4 / 8 / 12 / 20 / 24 / 30 / 9999` — `30px` is reserved for the warm stone pill. Pill (`9999px`) for primary buttons. Cards use 20–24px.226 227## 9. Icons228 229`lucide-react` only. Stroke width `1.5`. Default 20px, 16px in dense UI, 24px on primary actions. Icons inherit text color — never tint them.230 231## 10. Do's and Don'ts232 233✅ **Do**234- Use Familjen Grotesk weight 300 for all display — the lightness *is* the brand235- Layer shadows: inset edge + outline ring + soft elevation, all sub-0.1 opacity236- Apply positive letter-spacing (+0.14 to +0.18px) to body text237- Use 9999px radius for primary buttons (never on cards)238- Use the warm stone pill for *one* hero CTA per page239- Tint shadows warm (`rgba(78, 50, 23, ...)`) on featured elements240 241❌ **Don't**242- Use bold display weight — it breaks the ethereal quality243- Use heavy shadows (>0.1 opacity) — whisper-soft only244- Apply pill radius to cards or surfaces — pills are buttons only245- Apply negative letter-spacing to body246- Make buttons opaque and heavy — translucent stone is the signature247- Introduce brand colors — the palette is achromatic with warm undertones248 249---250 251## Tokens252 253> Generated from the same source the live preview renders from.254> Treat the values below as the contract — never substitute approximations.255 256### Colors257 258| Role | Value |259|-----------|-------|260| primary | `#000000` |261| secondary | `#4E4E4E` |262| tertiary | `#777169` |263| neutral | `#F5F5F5` |264| surface | `#FFFFFF` |265 266### Typography267 268- **Display:** Familjen Grotesk269- **Body:** Inter270- **Mono:** JetBrains Mono271 272| Role | size / leading / weight / tracking |273|------|------------------------------------|274| Hero | 3rem / 1.08 / 300 / -0.96px |275| H1 | 2.25rem / 1.17 / 300 / 0 |276| H2 | 1.5rem / 1.2 / 300 / 0 |277| Body | 1.125rem / 1.55 / 400 / 0.18px |278 279### Radius280 281- sm: `8px`282- md: `12px`283- lg: `20px`284- pill: `9999px`285 286### Shadows287 288- **card:** `rgba(0,0,0,0.06) 0 0 0 1px, rgba(0,0,0,0.04) 0 1px 2px, rgba(0,0,0,0.04) 0 2px 4px`289- **button:** `rgba(78, 50, 23, 0.04) 0 6px 16px, rgba(0,0,0,0.4) 0 0 1px`290 291### Buttons292 293Four variants, each fully tokenized. The preview renders from these exact values.294 295#### Primary296 297| Property | Value |298|----------|-------|299| shape | `pill` |300| background | `#1A1A1A` |301| color | `#FAFAF7` |302| border | `none` |303| padding | `10px 18px` |304| fontWeight | `500` |305 306#### Secondary307 308| Property | Value |309|----------|-------|310| shape | `pill` |311| background | `#FAFAF7` |312| color | `#1A1A1A` |313| border | `1px solid #E8E5DD` |314| padding | `10px 18px` |315| fontWeight | `500` |316 317#### Outline318 319| Property | Value |320|----------|-------|321| shape | `pill` |322| background | `transparent` |323| color | `#1A1A1A` |324| border | `1px solid #1A1A1A` |325| padding | `10px 18px` |326| fontWeight | `500` |327 328#### Ghost329 330| Property | Value |331|----------|-------|332| shape | `pill` |333| background | `transparent` |334| color | `#6B6B6B` |335| border | `none` |336| padding | `10px 14px` |337| fontWeight | `500` |338| hoverHint | `underline` |339 340### Charts341 342| Property | Value |343|----------|-------|344| variant | `thin-bars` |345| strokeWidth | `1` |346| fillOpacity | `0.04` |347| barGap | `16px` |348| highlight | `single` |349| dotMarker | `false` |350 # 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=Familjen+Grotesk:wght@300;400;500;700&family=Inter:wght@400;500;700&family=JetBrains+Mono:wght@400&display=swap" />npm install lucide-react// tailwind.config.jsexport default { theme: { extend: { fontFamily: { display: ['"Familjen Grotesk"', 'serif'], sans: ['"Inter"', 'sans-serif'], mono: ['"JetBrains Mono"', 'monospace'], }, colors: { primary: '#000000', secondary: '#4E4E4E', accent: '#777169', neutral: '#F5F5F5', surface: '#FFFFFF', }, borderRadius: { sm: '8px', md: '12px', lg: '20px', }, }, },};A maximalist editorial broadside that earns every inch with prose. Sage-grey paper surface, Old Standard TT at extreme display scale for headlines, drop-caps that span eight body lines, full-bleed pull-quote slabs in oversized serif italic, Inter for navigation, a single muted burgundy accent reserved for the editor's mark and the issue-number tag. Built for long-form magazines, opinion sections, and editorial publishers who lead with words at oversized scale.
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.
Cool brushed silver on a slate canvas. The metallic surface appears only on the primary CTA and one hero badge — everywhere else is graphite ink and quiet steel hairlines. Premium hardware, machined.
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.