Pure black void canvas, geometric medium-weight display with extreme negative tracking, frosted glass pills, and a single electric blue accent.
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: Voidstage3description: "Pure black void canvas, geometric medium-weight display with extreme negative tracking, frosted glass pills, and a single electric blue accent."4tags: [dark, premium, "design-tool", cinematic]5colors:6 primary: "#ffffff"7 secondary: "#a6a6a6"8 tertiary: "#0099ff"9 neutral: "#000000"10 surface: "#090909"11typography:12 display: Geist13 body: Inter14 mono: "JetBrains Mono"15 scale:16 hero: "4.5rem / 0.85 / 500 / -3.6px"17 h1: "3.875rem / 0.95 / 500 / -2.5px"18 h2: "2rem / 1.13 / 500 / -1px"19 body: "0.9375rem / 1.3 / 400 / -0.01px"20radius:21 sm: 5px22 md: 8px23 lg: 12px24 pill: 9999px25shadows:26 card: "rgba(0,153,255,0.15) 0 0 0 1px, rgba(0,0,0,0.25) 0 10px 30px"27 button: "rgba(0,153,255,0.15) 0 0 0 1px"28buttons:29 primary:30 background: #FFFFFF31 color: #00000032 border: none33 shape: pill34 padding: 10px 22px35 font: display / 500 / -0.01em36 secondary:37 background: rgba(255,255,255,0.08)38 color: #FFFFFF39 border: 1px solid rgba(255,255,255,0.16)40 shape: pill41 padding: 10px 22px42 font: display / 500 / -0.01em43 outline:44 background: transparent45 color: #FFFFFF46 border: 1px solid rgba(255,255,255,0.4)47 shape: pill48 padding: 10px 22px49 font: display / 500 / -0.01em50 ghost:51 background: transparent52 color: rgba(255,255,255,0.6)53 border: none54 shape: pill55 padding: 10px 14px56 font: display / 500 / -0.01em57charts:58 variant: dots59 stroke_width: 160 fill_opacity: 061 bar_gap: 10px62 highlight: all63 dot_marker: true64fonts_url: "https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600&family=Inter:wght@400;500;700&family=JetBrains+Mono:wght@400&display=swap"65dependencies: ["lucide-react"]66---67 68# Voidstage69 70## AI Build Instructions71 72> **Read this section before writing any code.** The rules below73> are non-negotiable. Every value used in the UI must come from this74> file's frontmatter — never substitute, approximate, or invent new75> colors, fonts, radii, or shadows. If a value is missing, ask the76> user before adding one.77 78### 1 · Your role79 80You are building UI for a project that has adopted **Voidstage** as its81design system. Treat `DESIGN.md` as the single source of truth.82Your job is to translate the user's product requirements into83components and pages that look like they were designed by the same84person who authored this file.85 86### 2 · Token compliance87 88- Pull every color, font family, radius, shadow, and spacing value89 from the frontmatter at the top of this file.90- Use semantic roles (e.g. `primary`, `accent`, `muted`) — never91 hard-code hex values that bypass the system.92- When a token can be expressed as a CSS variable, declare it once93 in your global stylesheet and reference it everywhere downstream.94- The Google Fonts `<link>` is provided in the Typography section.95 Add it to `<head>` before any component renders.96 97### 3 · Component recipes98 99Use these recipes verbatim when building the corresponding component.100 101#### Buttons102 103Four variants are defined. Pick one — never blend variants or invent a fifth.104 105- **Primary** — pill shape, bg `#FFFFFF`, text `#000000`, padding `10px 22px`, weight `500`.106- **Secondary** — pill shape, bg `rgba(255,255,255,0.08)`, text `#FFFFFF`, border `1px solid rgba(255,255,255,0.16)`, padding `10px 22px`, weight `500`.107- **Outline** — pill shape, text `#FFFFFF`, border `1px solid rgba(255,255,255,0.4)`, padding `10px 22px`, weight `500`.108- **Ghost** — pill shape, text `rgba(255,255,255,0.6)`, padding `10px 14px`, weight `500`.109 110Reach for **primary** as the single dominant CTA per screen.111**Secondary** for the supporting action. **Outline** for tertiary112actions in toolbars. **Ghost** for inline links and table actions.113 114#### Cards115 116- Background: `#090909`117- Shadow: `rgba(0,153,255,0.15) 0 0 0 1px, rgba(0,0,0,0.25) 0 10px 30px`118- Radius: `radius.lg` (`12px`)119- Internal padding: `20px` for compact cards, `24–28px` for content cards.120 121#### Charts122 123- Bar/line variant: `dots`124- Highlight strategy: `all` — emphasize a single bar/point per chart.125 126#### Typography pairings127 128- **Display (`Geist`)** — h1, h2, hero headlines, brand wordmarks.129- **Body (`Inter`)** — paragraphs, labels, button text, form inputs.130- **Mono (`JetBrains Mono`)** — code, eyebrows, metadata, numerals in tables.131 132### 4 · Hard constraints133 134Never do any of the following without explicit instruction from the user:135 136- Introduce a new color, font, radius, or shadow that isn't declared above.137- Mix this system with another (e.g. don't paste in Material or Bootstrap defaults).138- Use generic gradient defaults (purple→blue, peach→pink) — they break the system's voice.139- Reach for emoji icons. Use a consistent icon library and size icons in line with body type.140- Add motion that exceeds the system's restraint — keep transitions short (≤200ms) and subtle.141 142### 5 · Before you finish — verify143 144Run through this checklist for every screen you produce:145 146- [ ] Every color used appears in the Colors table above.147- [ ] Headlines use the display font; body copy uses the body font.148- [ ] Buttons match one of the declared variants exactly (shape, padding, weight).149- [ ] Border-radius values come from `radius.sm` / `radius.md` / `radius.lg` / `radius.pill`.150- [ ] Cards and dividers use the declared border + shadow tokens.151- [ ] No values were invented; if you needed something missing, you stopped and asked.152 153---154 155## 1. Atmosphere156 157Voidstage is a cinematic, tool-obsessed dark canvas — the confidence of a design tool built by designers who worship craft. The entire experience is drenched in pure black (`#000000`), not warm charcoal or cozy dark gray, but an absolute void that makes every element feel like it's floating in deep space. The product UI is the hero art; full-fidelity screenshots and interactive demos are embedded directly in the narrative.158 159The typography is the signature move. A geometric medium-weight display with aggressive negative tracking (as extreme as -5.5px on 110px headlines) creates words under pressure — compressed, kinetic, almost spring-loaded. Body type transitions to a refined neo-grotesque with extensive OpenType alternates, giving even small text a custom feel. The single accent — electric blue (`#0099ff`) — is deployed as link color, border, and ring shadow, a cold throughline against the warm-less black.160 161**Signature moves**162- Pure `#000000` void canvas — never warm or gray-tinted163- Geometric display at weight 500 only, with extreme negative tracking164- Electric blue (`#0099ff`) as the sole accent — interactive only165- Pill-shaped buttons (40–100px radius) — no sharp corners on interactive166- Frosted glass surfaces using `rgba(255,255,255,0.1)` over dark167- Blue ring shadows for card containment: `rgba(0,153,255,0.15) 0 0 0 1px`168 169## 2. Palette170 171### Primary172- **Void Black** `#000000` — page canvas173- **Pure White** `#ffffff` — heading text, button text on accent174- **Electric Blue** `#0099ff` — links, borders, focus, accent175 176### Surface177- Void `#000000` — page178- Frosted `rgba(255,255,255,0.1)` — translucent button / glass179- Frosted Hover `rgba(255,255,255,0.5)` — slightly more opaque180- Near Black `#090909` — elevated dark surface, ring color181 182### Text183- Pure White `#ffffff` — headings, high-emphasis184- Muted Silver `#a6a6a6` — body, descriptions185- Ghost White `rgba(255,255,255,0.6)` — placeholders, tertiary186 187### Glow188- Blue Glow `rgba(0,153,255,0.15)` — focus ring shadow, halo189- Default Link Blue `#0000ee` — sparingly in content areas190 191## 3. Typography192 193| Role | Size | Weight | Leading | Tracking |194|------|------|--------|---------|----------|195| Display Hero | 110px | 500 | 0.85 | -5.5px |196| Section Display | 85px | 500 | 0.95 | -4.25px |197| Section Heading | 62px | 500 | 1.00 | -3.1px |198| Feature Heading | 32px | 500 | 1.13 | -1px |199| Card Title | 24px | 400 | 1.30 | -0.01px |200| Body L | 18px | 400 | 1.30 | -0.01px |201| Body | 15px | 400 | 1.30 | -0.01px |202| Nav / UI | 15px | 400 | 1.00 | -0.15px |203| Caption | 14px | 400 | 1.40 | normal |204| Label | 13px | 500 | 1.60 | normal |205| Mono | 10.4px | 400 | 1.60 | normal |206 207**Compression is the personality.** Display weight is fixed at 500 — never bold, never regular. Ultra-tight line-heights (0.85) at display sizes mean letters nearly overlap vertically. Intentional density that rewards reading at arm's length.208 209## 4. Buttons210 211### Solid White Pill (Primary)212```css213background: #ffffff;214color: #000000;215padding: 10px 20px;216border-radius: 9999px;217```218 219### Frosted Pill220- `rgba(255,255,255,0.1)` background, white text221- Pill radius (40px+)222- Glass effect on dark — translucent and ambient223 224### Ghost225- No background, white text226- Hover reveals subtle frosted background227 228## 5. Cards229 230- **Dark surface card**: black or `#090909`, with `rgba(0,153,255,0.15) 0 0 0 1px` blue ring shadow, 10–15px radius231- **Elevated card**: `rgba(255,255,255,0.1) 0 0.5px 0 0.5px` (top highlight) + `rgba(0,0,0,0.25) 0 10px 30px` (deep ambient)232- Product screenshots: 8–12px radius, full-width within dark containers233 234## 6. Spacing235 236- Base: 8px237- Scale: `1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 20, 30, 35`238- Section vertical: 80–120px239- Card internal: 15–30px240 241## 7. Radius scale242 243`1 / 5–7 / 8 / 10–12 / 15–20 / 30–40 / 100` — pill (100px+) is reserved for primary CTAs and tags. Cards stay at 10–15px.244 245## 8. Depth & elevation246 247| Level | Treatment | Use |248|-------|-----------|-----|249| 0 | Pure black, no shadow | Page background |250| 1 | `rgba(0,153,255,0.15) 0 0 0 1px` | Card borders, blue ring |251| 2 | `#090909 0 0 0 2px` | Subtle near-black containment |252| 3 | White edge highlight + deep ambient | Elevated cards, floating |253 254**Inverted elevation.** Instead of darker shadows on lighter backgrounds, Voidstage uses blue-tinted ring shadows for containment, white edge highlights to simulate light hitting the top edge, and deep ambient shadows for true floating. There is no glassmorphism blur — translucency is achieved through simple rgba opacity.255 256## 9. Do's & don'ts257 258✅ **Do**259- Use pure black (`#000000`) — never charcoal or warm dark260- Apply extreme negative tracking on display (-3px to -5.5px)261- Keep all buttons pill-shaped (40px+ radius)262- Reserve electric blue (`#0099ff`) for interactive accents only263- Apply blue ring shadows for card containment264 265❌ **Don't**266- Use warm dark backgrounds (`#1a1a1a`, `#2d2d2d`)267- Use bold (700+) on display — medium 500 only268- Introduce a second accent color — single accent system269- Use squared corners on interactive elements270- Add decorative imagery — the product is the illustration271 272---273 274## Tokens275 276> Generated from the same source the live preview renders from.277> Treat the values below as the contract — never substitute approximations.278 279### Colors280 281| Role | Value |282|-----------|-------|283| primary | `#ffffff` |284| secondary | `#a6a6a6` |285| tertiary | `#0099ff` |286| neutral | `#000000` |287| surface | `#090909` |288 289### Typography290 291- **Display:** Geist292- **Body:** Inter293- **Mono:** JetBrains Mono294 295| Role | size / leading / weight / tracking |296|------|------------------------------------|297| Hero | 4.5rem / 0.85 / 500 / -3.6px |298| H1 | 3.875rem / 0.95 / 500 / -2.5px |299| H2 | 2rem / 1.13 / 500 / -1px |300| Body | 0.9375rem / 1.3 / 400 / -0.01px |301 302### Radius303 304- sm: `5px`305- md: `8px`306- lg: `12px`307- pill: `9999px`308 309### Shadows310 311- **card:** `rgba(0,153,255,0.15) 0 0 0 1px, rgba(0,0,0,0.25) 0 10px 30px`312- **button:** `rgba(0,153,255,0.15) 0 0 0 1px`313 314### Buttons315 316Four variants, each fully tokenized. The preview renders from these exact values.317 318#### Primary319 320| Property | Value |321|----------|-------|322| shape | `pill` |323| background | `#FFFFFF` |324| color | `#000000` |325| border | `none` |326| padding | `10px 22px` |327| fontFamily | `display` |328| fontWeight | `500` |329| tracking | `-0.01em` |330 331#### Secondary332 333| Property | Value |334|----------|-------|335| shape | `pill` |336| background | `rgba(255,255,255,0.08)` |337| color | `#FFFFFF` |338| border | `1px solid rgba(255,255,255,0.16)` |339| padding | `10px 22px` |340| fontFamily | `display` |341| fontWeight | `500` |342| tracking | `-0.01em` |343 344#### Outline345 346| Property | Value |347|----------|-------|348| shape | `pill` |349| background | `transparent` |350| color | `#FFFFFF` |351| border | `1px solid rgba(255,255,255,0.4)` |352| padding | `10px 22px` |353| fontFamily | `display` |354| fontWeight | `500` |355| tracking | `-0.01em` |356 357#### Ghost358 359| Property | Value |360|----------|-------|361| shape | `pill` |362| background | `transparent` |363| color | `rgba(255,255,255,0.6)` |364| border | `none` |365| padding | `10px 14px` |366| fontFamily | `display` |367| fontWeight | `500` |368| tracking | `-0.01em` |369 370### Charts371 372| Property | Value |373|----------|-------|374| variant | `dots` |375| strokeWidth | `1` |376| fillOpacity | `0` |377| barGap | `10px` |378| highlight | `all` |379| dotMarker | `true` |380 # 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=Geist:wght@400;500;600&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: ['"Geist"', 'serif'], sans: ['"Inter"', 'sans-serif'], mono: ['"JetBrains Mono"', 'monospace'], }, colors: { primary: '#ffffff', secondary: '#a6a6a6', accent: '#0099ff', neutral: '#000000', surface: '#090909', }, borderRadius: { sm: '5px', md: '8px', lg: '12px', }, }, },};Developer infrastructure made invisible. Geist with -2.4px tracking, shadow-as-border philosophy, multi-layer shadow stacks, ligatures everywhere.
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.
tonal-surface with a moss-green seed — warm tonal surfaces, full-rounded tonal buttons, Roboto Flex throughout. Calm and grounded.
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.