Design System Inspired by Sanity
1. Visual Theme & Atmosphere
Sanity's website is a developer-content platform rendered as a nocturnal command center -- dark, precise, and deeply structured. The entire experience sits on a near-black canvas (#0b0b0b) that reads less like a "dark mode toggle" and more like the natural state of a tool built for people who live in terminals. Where most CMS marketing pages reach for friendly pastels and soft illustration, Sanity leans into the gravity of its own product: structured content deserves a structured stage.
The signature typographic voice is waldenburgNormal -- a distinctive, slightly geometric sans-serif with tight negative letter-spacing (-0.32px to -4.48px at display sizes) that gives headlines a compressed, engineered quality. At 112px hero scale with -4.48px tracking, the type feels almost machined -- like precision-cut steel letterforms. This is paired with IBM Plex Mono for code and technical labels, creating a dual-register voice: editorial authority meets developer credibility.
What makes Sanity distinctive is the interplay between its monochromatic dark palette and vivid, saturated accent punctuation. The neutral scale runs from pure black through a tightly controlled gray ramp (#0b0b0b -> #212121 -> #353535 -> #797979 -> #b9b9b9 -> #ededed -> #ffffff) with no warm or cool bias -- just pure, achromatic precision. Against this disciplined backdrop, a neon green accent (display-p3 green) and electric blue (#0052ef) land with the impact of signal lights in a dark control room. The orange-red CTA (#f36458) provides the only warm touch in an otherwise cool system.
Key Characteristics:
- Near-black canvas (
#0b0b0b) as the default, natural environment -- not a dark "mode" but the primary identity
- waldenburgNormal with extreme negative tracking at display sizes, creating a precision-engineered typographic voice
- Pure achromatic gray scale -- no warm or cool undertones, pure neutral discipline
- Vivid accent punctuation: neon green, electric blue (
#0052ef), and coral-red (#f36458) against the dark field
- Pill-shaped primary buttons (99999px radius) contrasting with subtle rounded rectangles (3-6px) for secondary actions
- IBM Plex Mono as the technical counterweight to the editorial display face
- Full-bleed dark sections with content contained in measured max-width containers
- Hover states that shift to electric blue (
#0052ef) across all interactive elements -- a consistent "activation" signal
2. Color Palette & Roles
Primary Brand
- Sanity Black (
#0b0b0b): The primary canvas and dominant surface color. Not pure black but close enough to feel absolute. The foundation of the entire visual identity.
- Pure Black (
#000000): Used for maximum-contrast moments, deep overlays, and certain border accents.
- Sanity Red (
#f36458): The primary CTA and brand accent -- a warm coral-red that serves as the main call-to-action color. Used for "Get Started" buttons and primary conversion points.
Accent & Interactive
- Electric Blue (
#0052ef): The universal hover/active state color across the entire system. Buttons, links, and interactive elements all shift to this blue on hover. Also used as --color-blue-700 for focus rings and active states.
- Light Blue (
#55beff / #afe3ff): Secondary blue variants used for accent backgrounds, badges, and dimmed blue surfaces.
- Neon Green (
color(display-p3 .270588 1 0)): A vivid, wide-gamut green used as --color-fg-accent-green for success states and premium feature highlights. Falls back to #19d600 in sRGB.
- Accent Magenta (
color(display-p3 .960784 0 1)): A vivid wide-gamut magenta for specialized accent moments.
Surface & Background
- Near Black (
#0b0b0b): Default page background and primary surface.
- Dark Gray (
#212121): Elevated surface color for cards, secondary containers, input backgrounds, and subtle layering above the base canvas.
- Medium Dark (
#353535): Tertiary surface and border color for creating depth between dark layers.
- Pure White (
#ffffff): Used for inverted sections, light-on-dark text, and specific button surfaces.
- Light Gray (
#ededed): Light surface for inverted/light sections and subtle background tints.
Neutrals & Text
- White (
#ffffff): Primary text color on dark surfaces, maximum legibility.
- Silver (
#b9b9b9): Secondary text, body copy on dark surfaces, muted descriptions, and placeholder text.
- Medium Gray (
#797979): Tertiary text, metadata, timestamps, and de-emphasized content.
- Charcoal (
#212121): Text on light/inverted surfaces.
- Near Black Text (
#0b0b0b): Primary text on white/light button surfaces.
Semantic
- Error Red (
#dd0000): Destructive actions, validation errors, and critical warnings -- a pure, high-saturation red.
- GPC Green (
#37cd84): Privacy/compliance indicator green.
- Focus Ring Blue (
#0052ef): Focus ring color for accessibility, matching the interactive blue.
Border System
- Dark Border (
#0b0b0b): Primary border on dark containers -- barely visible, maintaining minimal containment.
- Subtle Border (
#212121): Standard border for inputs, textareas, and card edges on dark surfaces.
- Medium Border (
#353535): More visible borders for emphasized containment and dividers.
- Light Border (
#ffffff): Border on inverted/light elements or buttons needing contrast separation.
- Orange Border (
color(display-p3 1 0.3333 0)): Special accent border for highlighted/featured elements.
3. Typography Rules
Font Family
- Display / Headline:
waldenburgNormal, fallback: waldenburgNormal Fallback, ui-sans-serif, system-ui
- Body / UI:
waldenburgNormal, fallback: waldenburgNormal Fallback, ui-sans-serif, system-ui
- Code / Technical:
IBM Plex Mono, fallback: ibmPlexMono Fallback, ui-monospace
- Fallback / CJK:
Helvetica, fallback: Arial, Hiragino Sans GB, STXihei, Microsoft YaHei, WenQuanYi Micro Hei
Note: waldenburgNormal is a custom typeface. For external implementations, use Inter or Space Grotesk as the sans substitute (geometric, slightly condensed feel). IBM Plex Mono is available on Google Fonts.
Hierarchy
| Role |
Font |
Size |
Weight |
Line Height |
Letter Spacing |
Notes |
| Display / Hero |
waldenburgNormal |
112px (7rem) |
400 |
1.00 (tight) |
-4.48px |
Maximum impact, compressed tracking |
| Hero Secondary |
waldenburgNormal |
72px (4.5rem) |
400 |
1.05 (tight) |
-2.88px |
Large section headers |
| Section Heading |
waldenburgNormal |
48px (3rem) |
400 |
1.08 (tight) |
-1.68px |
Primary section anchors |
| Heading Large |
waldenburgNormal |
38px (2.38rem) |
400 |
1.10 (tight) |
-1.14px |
Feature section titles |
| Heading Medium |
waldenburgNormal |
32px (2rem) |
425 |
1.24 (tight) |
-0.32px |
Card titles, subsection headers |
| Heading Small |
waldenburgNormal |
24px (1.5rem) |
425 |
1.24 (tight) |
-0.24px |
Smaller feature headings |
| Subheading |
waldenburgNormal |
20px (1.25rem) |
425 |
1.13 (tight) |
-0.2px |
Sub-section markers |
| Body Large |
waldenburgNormal |
18px (1.13rem) |
400 |
1.50 |
-0.18px |
Intro paragraphs, descriptions |
| Body |
waldenburgNormal |
16px (1rem) |
400 |
1.50 |
normal |
Standard body text |
| Body Small |
waldenburgNormal |
15px (0.94rem) |
400 |
1.50 |
-0.15px |
Compact body text |
| Caption |
waldenburgNormal |
13px (0.81rem) |
400-500 |
1.30-1.50 |
-0.13px |
Metadata, descriptions, tags |
| Small Caption |
waldenburgNormal |
12px (0.75rem) |
400 |
1.50 |
-0.12px |
Footnotes, timestamps |
| Micro / Label |
waldenburgNormal |
11px (0.69rem) |
500-600 |
1.00-1.50 |
normal |
Uppercase labels, tiny badges |
| Code Body |
IBM Plex Mono |
15px (0.94rem) |
400 |
1.50 |
normal |
Code blocks, technical content |
| Code Caption |
IBM Plex Mono |
13px (0.81rem) |
400-500 |
1.30-1.50 |
normal |
Inline code, small technical labels |
| Code Micro |
IBM Plex Mono |
10-12px |
400 |
1.30-1.50 |
normal |
Tiny code labels, uppercase tags |
Principles
- Extreme negative tracking at scale: Display headings at 72px+ use aggressive negative letter-spacing (-2.88px to -4.48px), creating a tight, engineered quality that distinguishes Sanity from looser editorial typography.
- Single font, multiple registers: waldenburgNormal handles both editorial display and functional UI text. The weight range is narrow (400-425 for most, 500-600 only for tiny labels), keeping the voice consistent.
- OpenType feature control: Typography uses deliberate feature settings including
"cv01", "cv11", "cv12", "cv13", "ss07" for display sizes and "calt" 0 for body text, fine-tuning character alternates for different contexts.
- Tight headings, relaxed body: Headings use 1.00-1.24 line-height (extremely tight), while body text breathes at 1.50. This contrast creates clear visual hierarchy.
- Uppercase for technical labels: IBM Plex Mono captions and small labels frequently use
text-transform: uppercase with tight line-heights, creating a "system readout" aesthetic for technical metadata.
4. Component Stylings
Buttons
Primary CTA (Pill)
- Background: Sanity Red (
#f36458)
- Text: White (
#ffffff)
- Padding: 8px 16px
- Border Radius: 99999px (full pill)
- Border: none
- Hover: Electric Blue (
#0052ef) background, white text
- Font: 16px waldenburgNormal, weight 400
Secondary (Dark Pill)
- Background: Near Black (
#0b0b0b)
- Text: Silver (
#b9b9b9)
- Padding: 8px 12px
- Border Radius: 99999px (full pill)
- Border: none
- Hover: Electric Blue (
#0052ef) background, white text
Outlined (Light Pill)
- Background: White (
#ffffff)
- Text: Near Black (
#0b0b0b)
- Padding: 8px
- Border Radius: 99999px (full pill)
- Border: 1px solid
#0b0b0b
- Hover: Electric Blue (
#0052ef) background, white text
Ghost / Subtle
- Background: Dark Gray (
#212121)
- Text: Silver (
#b9b9b9)
- Padding: 0px 12px
- Border Radius: 5px
- Border: 1px solid
#212121
- Hover: Electric Blue (
#0052ef) background, white text
Uppercase Label Button
- Font: 11px waldenburgNormal, weight 600, uppercase
- Background: transparent or
#212121
- Text: Silver (
#b9b9b9)
- Letter-spacing: normal
- Used for tab-like navigation and filter controls
Cards
Dark Content Card
- Background:
#212121
- Border: 1px solid
#353535 or #212121
- Border Radius: 6px
- Padding: 24px
- Text: White (
#ffffff) for titles, Silver (#b9b9b9) for body
- Hover: subtle border color shift or elevation change
Feature Card (Full-bleed)
- Background:
#0b0b0b or full-bleed image/gradient
- Border: none or 1px solid
#212121
- Border Radius: 12px
- Padding: 32-48px
- Contains large imagery with overlaid text
Inputs
Text Input / Textarea
- Background: Near Black (
#0b0b0b)
- Text: Silver (
#b9b9b9)
- Border: 1px solid
#212121
- Padding: 8px 12px
- Border Radius: 3px
- Focus: outline with
var(--focus-ring-color) (blue), 2px solid
- Focus background: shifts to deep cyan (
#072227)
Search Input
- Background:
#0b0b0b
- Text: Silver (
#b9b9b9)
- Padding: 0px 12px
- Border Radius: 3px
- Placeholder: Medium Gray (
#797979)
Navigation
Top Navigation
- Background: Near Black (
#0b0b0b) with backdrop blur
- Height: auto, compact padding
- Logo: left-aligned, Sanity wordmark
- Links: waldenburgNormal 16px, Silver (
#b9b9b9)
- Link Hover: Electric Blue via
--color-fg-accent-blue
- CTA Button: Sanity Red pill button right-aligned
- Separator: 1px border-bottom
#212121
Footer
- Background: Near Black (
#0b0b0b)
- Multi-column link layout
- Links: Silver (
#b9b9b9), hover to blue
- Section headers: White (
#ffffff), 13px uppercase IBM Plex Mono
Badges / Pills
Neutral Subtle
- Background: White (
#ffffff)
- Text: Near Black (
#0b0b0b)
- Padding: 8px
- Font: 13px
- Border Radius: 99999px
Neutral Filled
- Background: Near Black (
#0b0b0b)
- Text: White (
#ffffff)
- Padding: 8px
- Font: 13px
- Border Radius: 99999px
5. Layout Principles
Spacing System
Base unit: 8px
| Token |
Value |
Usage |
| space-1 |
1px |
Hairline gaps, border-like spacing |
| space-2 |
2px |
Minimal internal padding |
| space-3 |
4px |
Tight component internal spacing |
| space-4 |
6px |
Small element gaps |
| space-5 |
8px |
Base unit -- button padding, input padding, badge padding |
| space-6 |
12px |
Standard component gap, button horizontal padding |
| space-7 |
16px |
Section internal padding, card spacing |
| space-8 |
24px |
Large component padding, card internal spacing |
| space-9 |
32px |
Section padding, container gutters |
| space-10 |
48px |
Large section vertical spacing |
| space-11 |
64px |
Major section breaks |
| space-12 |
96-120px |
Hero vertical padding, maximum section spacing |
Grid & Container
- Max content width: ~1440px (inferred from breakpoints)
- Page gutter: 32px on desktop, 16px on mobile
- Content sections use full-bleed backgrounds with centered, max-width content
- Multi-column layouts: 2-3 columns on desktop, single column on mobile
- Card grids: CSS Grid with consistent gaps (16-24px)
Whitespace Philosophy
Sanity uses aggressive vertical spacing between sections (64-120px) to create breathing room on the dark canvas. Within sections, spacing is tighter (16-32px), creating dense information clusters separated by generous voids. This rhythm gives the page a "slides" quality -- each section feels like its own focused frame.
Border Radius Scale
| Token |
Value |
Usage |
| radius-xs |
3px |
Inputs, textareas, subtle rounding |
| radius-sm |
4-5px |
Secondary buttons, small cards, tags |
| radius-md |
6px |
Standard cards, containers |
| radius-lg |
12px |
Large cards, feature containers, forms |
| radius-pill |
99999px |
Primary buttons, badges, nav pills |
6. Depth & Elevation
Shadow System
| Level |
Value |
Usage |
| Level 0 (Flat) |
none |
Default state for most elements -- dark surfaces create depth through color alone |
| Level 1 (Subtle) |
0px 0px 0px 1px #212121 |
Border-like shadow for minimal containment without visible borders |
| Level 2 (Focus) |
0 0 0 2px var(--color-blue-500) |
Focus ring for inputs and interactive elements |
| Level 3 (Overlay) |
Backdrop blur + semi-transparent dark |
Navigation overlay, modal backgrounds |
Depth Philosophy
Sanity's depth system is almost entirely colorimetric rather than shadow-based. Elevation is communicated through surface color shifts: #0b0b0b (ground) -> #212121 (elevated) -> #353535 (prominent) -> #ffffff (inverted/highest). This approach is native to dark interfaces where traditional drop shadows would be invisible. The few shadows that exist are ring-based (0px 0px 0px Npx) or blur-based (backdrop-filter) rather than offset shadows, maintaining the flat, precision-engineered aesthetic.
Border-based containment (1px solid #212121 or #353535) serves as the primary spatial separator, with the border darkness calibrated to be visible but not dominant. The system avoids "floating card" aesthetics -- everything feels mounted to the surface rather than hovering above it.
7. Do's and Don'ts
Do
- Use the achromatic gray scale as the foundation -- maintain pure neutral discipline with no warm/cool tinting
- Apply Electric Blue (
#0052ef) consistently as the universal hover/active state across all interactive elements
- Use extreme negative letter-spacing (-2px to -4.48px) on display headings 48px and above
- Keep primary CTAs as full-pill shapes (99999px radius) with the coral-red (
#f36458)
- Use IBM Plex Mono uppercase for technical labels, tags, and system metadata
- Communicate depth through surface color (dark-to-light) rather than shadows
- Maintain generous vertical section spacing (64-120px) on the dark canvas
- Use
"cv01", "cv11", "cv12", "cv13", "ss07" OpenType features for display typography
Don't
- Don't introduce warm or cool color tints to the neutral scale -- Sanity's grays are pure achromatic
- Don't use drop shadows for elevation -- dark interfaces demand colorimetric depth
- Don't apply border-radius between 13px and 99998px -- the system jumps from 12px (large card) directly to pill (99999px)
- Don't mix the coral-red CTA with the electric blue interactive color in the same element
- Don't use heavy font weights (700+) -- the system maxes out at 600 and only for 11px uppercase labels
- Don't place light text on light surfaces or dark text on dark surfaces without checking the gray-on-gray contrast ratio
- Don't use traditional offset box-shadows -- ring shadows (0 0 0 Npx) or border-based containment only
- Don't break the tight line-height on headings -- 1.00-1.24 is the range, never go to 1.5+ for display text
8. Responsive Behavior
Breakpoints
| Name |
Width |
Behavior |
| Desktop XL |
>= 1640px |
Full layout, maximum content width |
| Desktop |
>= 1440px |
Standard desktop layout |
| Desktop Compact |
>= 1200px |
Slightly condensed desktop |
| Laptop |
>= 1100px |
Reduced column widths |
| Tablet Landscape |
>= 960px |
2-column layouts begin collapsing |
| Tablet |
>= 768px |
Transition zone, some elements stack |
| Mobile Large |
>= 720px |
Near-tablet layout |
| Mobile |
>= 480px |
Single-column, stacked layout |
| Mobile Small |
>= 376px |
Minimum supported width |
Collapsing Strategy
- Navigation: Horizontal links collapse to hamburger menu below 768px
- Hero typography: Scales from 112px -> 72px -> 48px -> 38px across breakpoints, maintaining tight letter-spacing ratios
- Grid layouts: 3-column -> 2-column at ~960px, single-column below 768px
- Card grids: Horizontal scrolling on mobile instead of wrapping (preserving card aspect ratios)
- Section spacing: Vertical padding reduces by ~40% on mobile (120px -> 64px -> 48px)
- Button sizing: CTA pills maintain padding but reduce font size; ghost buttons stay fixed
- Code blocks: Horizontal scroll with preserved monospace formatting
Mobile-Specific Adjustments
- Full-bleed sections extend edge-to-edge with 16px internal gutters
- Touch targets: minimum 44px for all interactive elements
- Heading letter-spacing relaxes slightly at mobile sizes (less aggressive negative tracking)
- Image containers switch from fixed aspect ratios to full-width with auto height
9. Agent Prompt Guide
Quick Color Reference
Background: #0b0b0b (near-black canvas)
Surface: #212121 (elevated cards/containers)
Border: #353535 (visible) / #212121 (subtle)
Text Primary: #ffffff (white on dark)
Text Secondary: #b9b9b9 (silver on dark)
Text Tertiary: #797979 (medium gray)
CTA: #f36458 (coral-red)
Interactive: #0052ef (electric blue, all hovers)
Success: #19d600 (green, sRGB fallback)
Error: #dd0000 (pure red)
Light Surface: #ededed / #ffffff (inverted sections)
Example Prompts
Landing page section:
"Create a feature section with a near-black (#0b0b0b) background. Use a 48px heading in Inter with -1.68px letter-spacing, white text. Below it, 16px body text in #b9b9b9 with 1.50 line-height. Include a coral-red (#f36458) pill button with white text and a secondary dark (#0b0b0b) pill button with #b9b9b9 text. Both buttons hover to #0052ef blue."
Card grid:
"Build a 3-column card grid on a #0b0b0b background. Each card has a #212121 surface, 1px solid #353535 border, 6px border-radius, and 24px padding. Card titles are 24px white with -0.24px letter-spacing. Body text is 13px #b9b9b9. Add a 13px IBM Plex Mono uppercase tag in #797979 at the top of each card."
Form section:
"Design a contact form on a #0b0b0b background. Inputs have #0b0b0b background, 1px solid #212121 border, 3px border-radius, 8px 12px padding, and #b9b9b9 placeholder text. Focus state shows a 2px blue (#0052ef) ring. Submit button is a full-width coral-red (#f36458) pill. Include a 13px #797979 helper text below each field."
Navigation bar:
"Create a sticky top navigation on #0b0b0b with backdrop blur. Left: brand text in 15px white. Center/right: nav links in 16px #b9b9b9 that hover to blue. Far right: a coral-red (#f36458) pill CTA button. Bottom border: 1px solid #212121."
Iteration Guide
- Start dark: Begin with
#0b0b0b background, #ffffff primary text, #b9b9b9 secondary text
- Add structure: Use
#212121 surfaces and #353535 borders for containment -- no shadows
- Apply typography: Inter (or Space Grotesk) with tight letter-spacing on headings, 1.50 line-height on body
- Color punctuation: Add
#f36458 for CTAs and #0052ef for all hover/interactive states
- Refine spacing: 8px base unit, 24-32px within sections, 64-120px between sections
- Technical details: Add IBM Plex Mono uppercase labels for tags and metadata
- Polish: Ensure all interactive elements hover to
#0052ef, all buttons are pills or subtle 5px radius, borders are hairline (1px)
1---2name: sanity3description: Provides a comprehensive design system specification inspired by Sanity's visual identity, including color palette, typography, spacing, and component styles for building dark-themed developer interfaces.4---5# Design System Inspired by Sanity67## 1. Visual Theme & Atmosphere89Sanity's website is a developer-content platform rendered as a nocturnal command center -- dark, precise, and deeply structured. The entire experience sits on a near-black canvas (`#0b0b0b`) that reads less like a "dark mode toggle" and more like the natural state of a tool built for people who live in terminals. Where most CMS marketing pages reach for friendly pastels and soft illustration, Sanity leans into the gravity of its own product: structured content deserves a structured stage.1011The signature typographic voice is waldenburgNormal -- a distinctive, slightly geometric sans-serif with tight negative letter-spacing (-0.32px to -4.48px at display sizes) that gives headlines a compressed, engineered quality. At 112px hero scale with -4.48px tracking, the type feels almost machined -- like precision-cut steel letterforms. This is paired with IBM Plex Mono for code and technical labels, creating a dual-register voice: editorial authority meets developer credibility.1213What makes Sanity distinctive is the interplay between its monochromatic dark palette and vivid, saturated accent punctuation. The neutral scale runs from pure black through a tightly controlled gray ramp (`#0b0b0b` -> `#212121` -> `#353535` -> `#797979` -> `#b9b9b9` -> `#ededed` -> `#ffffff`) with no warm or cool bias -- just pure, achromatic precision. Against this disciplined backdrop, a neon green accent (display-p3 green) and electric blue (`#0052ef`) land with the impact of signal lights in a dark control room. The orange-red CTA (`#f36458`) provides the only warm touch in an otherwise cool system.1415**Key Characteristics:**16- Near-black canvas (`#0b0b0b`) as the default, natural environment -- not a dark "mode" but the primary identity17- waldenburgNormal with extreme negative tracking at display sizes, creating a precision-engineered typographic voice18- Pure achromatic gray scale -- no warm or cool undertones, pure neutral discipline19- Vivid accent punctuation: neon green, electric blue (`#0052ef`), and coral-red (`#f36458`) against the dark field20- Pill-shaped primary buttons (99999px radius) contrasting with subtle rounded rectangles (3-6px) for secondary actions21- IBM Plex Mono as the technical counterweight to the editorial display face22- Full-bleed dark sections with content contained in measured max-width containers23- Hover states that shift to electric blue (`#0052ef`) across all interactive elements -- a consistent "activation" signal2425## 2. Color Palette & Roles2627### Primary Brand28- **Sanity Black** (`#0b0b0b`): The primary canvas and dominant surface color. Not pure black but close enough to feel absolute. The foundation of the entire visual identity.29- **Pure Black** (`#000000`): Used for maximum-contrast moments, deep overlays, and certain border accents.30- **Sanity Red** (`#f36458`): The primary CTA and brand accent -- a warm coral-red that serves as the main call-to-action color. Used for "Get Started" buttons and primary conversion points.3132### Accent & Interactive33- **Electric Blue** (`#0052ef`): The universal hover/active state color across the entire system. Buttons, links, and interactive elements all shift to this blue on hover. Also used as `--color-blue-700` for focus rings and active states.34- **Light Blue** (`#55beff` / `#afe3ff`): Secondary blue variants used for accent backgrounds, badges, and dimmed blue surfaces.35- **Neon Green** (`color(display-p3 .270588 1 0)`): A vivid, wide-gamut green used as `--color-fg-accent-green` for success states and premium feature highlights. Falls back to `#19d600` in sRGB.36- **Accent Magenta** (`color(display-p3 .960784 0 1)`): A vivid wide-gamut magenta for specialized accent moments.3738### Surface & Background39- **Near Black** (`#0b0b0b`): Default page background and primary surface.40- **Dark Gray** (`#212121`): Elevated surface color for cards, secondary containers, input backgrounds, and subtle layering above the base canvas.41- **Medium Dark** (`#353535`): Tertiary surface and border color for creating depth between dark layers.42- **Pure White** (`#ffffff`): Used for inverted sections, light-on-dark text, and specific button surfaces.43- **Light Gray** (`#ededed`): Light surface for inverted/light sections and subtle background tints.4445### Neutrals & Text46- **White** (`#ffffff`): Primary text color on dark surfaces, maximum legibility.47- **Silver** (`#b9b9b9`): Secondary text, body copy on dark surfaces, muted descriptions, and placeholder text.48- **Medium Gray** (`#797979`): Tertiary text, metadata, timestamps, and de-emphasized content.49- **Charcoal** (`#212121`): Text on light/inverted surfaces.50- **Near Black Text** (`#0b0b0b`): Primary text on white/light button surfaces.5152### Semantic53- **Error Red** (`#dd0000`): Destructive actions, validation errors, and critical warnings -- a pure, high-saturation red.54- **GPC Green** (`#37cd84`): Privacy/compliance indicator green.55- **Focus Ring Blue** (`#0052ef`): Focus ring color for accessibility, matching the interactive blue.5657### Border System58- **Dark Border** (`#0b0b0b`): Primary border on dark containers -- barely visible, maintaining minimal containment.59- **Subtle Border** (`#212121`): Standard border for inputs, textareas, and card edges on dark surfaces.60- **Medium Border** (`#353535`): More visible borders for emphasized containment and dividers.61- **Light Border** (`#ffffff`): Border on inverted/light elements or buttons needing contrast separation.62- **Orange Border** (`color(display-p3 1 0.3333 0)`): Special accent border for highlighted/featured elements.6364## 3. Typography Rules6566### Font Family67- **Display / Headline**: `waldenburgNormal`, fallback: `waldenburgNormal Fallback, ui-sans-serif, system-ui`68- **Body / UI**: `waldenburgNormal`, fallback: `waldenburgNormal Fallback, ui-sans-serif, system-ui`69- **Code / Technical**: `IBM Plex Mono`, fallback: `ibmPlexMono Fallback, ui-monospace`70- **Fallback / CJK**: `Helvetica`, fallback: `Arial, Hiragino Sans GB, STXihei, Microsoft YaHei, WenQuanYi Micro Hei`7172*Note: waldenburgNormal is a custom typeface. For external implementations, use Inter or Space Grotesk as the sans substitute (geometric, slightly condensed feel). IBM Plex Mono is available on Google Fonts.*7374### Hierarchy7576| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |77|------|------|------|--------|-------------|----------------|-------|78| Display / Hero | waldenburgNormal | 112px (7rem) | 400 | 1.00 (tight) | -4.48px | Maximum impact, compressed tracking |79| Hero Secondary | waldenburgNormal | 72px (4.5rem) | 400 | 1.05 (tight) | -2.88px | Large section headers |80| Section Heading | waldenburgNormal | 48px (3rem) | 400 | 1.08 (tight) | -1.68px | Primary section anchors |81| Heading Large | waldenburgNormal | 38px (2.38rem) | 400 | 1.10 (tight) | -1.14px | Feature section titles |82| Heading Medium | waldenburgNormal | 32px (2rem) | 425 | 1.24 (tight) | -0.32px | Card titles, subsection headers |83| Heading Small | waldenburgNormal | 24px (1.5rem) | 425 | 1.24 (tight) | -0.24px | Smaller feature headings |84| Subheading | waldenburgNormal | 20px (1.25rem) | 425 | 1.13 (tight) | -0.2px | Sub-section markers |85| Body Large | waldenburgNormal | 18px (1.13rem) | 400 | 1.50 | -0.18px | Intro paragraphs, descriptions |86| Body | waldenburgNormal | 16px (1rem) | 400 | 1.50 | normal | Standard body text |87| Body Small | waldenburgNormal | 15px (0.94rem) | 400 | 1.50 | -0.15px | Compact body text |88| Caption | waldenburgNormal | 13px (0.81rem) | 400-500 | 1.30-1.50 | -0.13px | Metadata, descriptions, tags |89| Small Caption | waldenburgNormal | 12px (0.75rem) | 400 | 1.50 | -0.12px | Footnotes, timestamps |90| Micro / Label | waldenburgNormal | 11px (0.69rem) | 500-600 | 1.00-1.50 | normal | Uppercase labels, tiny badges |91| Code Body | IBM Plex Mono | 15px (0.94rem) | 400 | 1.50 | normal | Code blocks, technical content |92| Code Caption | IBM Plex Mono | 13px (0.81rem) | 400-500 | 1.30-1.50 | normal | Inline code, small technical labels |93| Code Micro | IBM Plex Mono | 10-12px | 400 | 1.30-1.50 | normal | Tiny code labels, uppercase tags |9495### Principles96- **Extreme negative tracking at scale**: Display headings at 72px+ use aggressive negative letter-spacing (-2.88px to -4.48px), creating a tight, engineered quality that distinguishes Sanity from looser editorial typography.97- **Single font, multiple registers**: waldenburgNormal handles both editorial display and functional UI text. The weight range is narrow (400-425 for most, 500-600 only for tiny labels), keeping the voice consistent.98- **OpenType feature control**: Typography uses deliberate feature settings including `"cv01", "cv11", "cv12", "cv13", "ss07"` for display sizes and `"calt" 0` for body text, fine-tuning character alternates for different contexts.99- **Tight headings, relaxed body**: Headings use 1.00-1.24 line-height (extremely tight), while body text breathes at 1.50. This contrast creates clear visual hierarchy.100- **Uppercase for technical labels**: IBM Plex Mono captions and small labels frequently use `text-transform: uppercase` with tight line-heights, creating a "system readout" aesthetic for technical metadata.101102## 4. Component Stylings103104### Buttons105106**Primary CTA (Pill)**107- Background: Sanity Red (`#f36458`)108- Text: White (`#ffffff`)109- Padding: 8px 16px110- Border Radius: 99999px (full pill)111- Border: none112- Hover: Electric Blue (`#0052ef`) background, white text113- Font: 16px waldenburgNormal, weight 400114115**Secondary (Dark Pill)**116- Background: Near Black (`#0b0b0b`)117- Text: Silver (`#b9b9b9`)118- Padding: 8px 12px119- Border Radius: 99999px (full pill)120- Border: none121- Hover: Electric Blue (`#0052ef`) background, white text122123**Outlined (Light Pill)**124- Background: White (`#ffffff`)125- Text: Near Black (`#0b0b0b`)126- Padding: 8px127- Border Radius: 99999px (full pill)128- Border: 1px solid `#0b0b0b`129- Hover: Electric Blue (`#0052ef`) background, white text130131**Ghost / Subtle**132- Background: Dark Gray (`#212121`)133- Text: Silver (`#b9b9b9`)134- Padding: 0px 12px135- Border Radius: 5px136- Border: 1px solid `#212121`137- Hover: Electric Blue (`#0052ef`) background, white text138139**Uppercase Label Button**140- Font: 11px waldenburgNormal, weight 600, uppercase141- Background: transparent or `#212121`142- Text: Silver (`#b9b9b9`)143- Letter-spacing: normal144- Used for tab-like navigation and filter controls145146### Cards147148**Dark Content Card**149- Background: `#212121`150- Border: 1px solid `#353535` or `#212121`151- Border Radius: 6px152- Padding: 24px153- Text: White (`#ffffff`) for titles, Silver (`#b9b9b9`) for body154- Hover: subtle border color shift or elevation change155156**Feature Card (Full-bleed)**157- Background: `#0b0b0b` or full-bleed image/gradient158- Border: none or 1px solid `#212121`159- Border Radius: 12px160- Padding: 32-48px161- Contains large imagery with overlaid text162163### Inputs164165**Text Input / Textarea**166- Background: Near Black (`#0b0b0b`)167- Text: Silver (`#b9b9b9`)168- Border: 1px solid `#212121`169- Padding: 8px 12px170- Border Radius: 3px171- Focus: outline with `var(--focus-ring-color)` (blue), 2px solid172- Focus background: shifts to deep cyan (`#072227`)173174**Search Input**175- Background: `#0b0b0b`176- Text: Silver (`#b9b9b9`)177- Padding: 0px 12px178- Border Radius: 3px179- Placeholder: Medium Gray (`#797979`)180181### Navigation182183**Top Navigation**184- Background: Near Black (`#0b0b0b`) with backdrop blur185- Height: auto, compact padding186- Logo: left-aligned, Sanity wordmark187- Links: waldenburgNormal 16px, Silver (`#b9b9b9`)188- Link Hover: Electric Blue via `--color-fg-accent-blue`189- CTA Button: Sanity Red pill button right-aligned190- Separator: 1px border-bottom `#212121`191192**Footer**193- Background: Near Black (`#0b0b0b`)194- Multi-column link layout195- Links: Silver (`#b9b9b9`), hover to blue196- Section headers: White (`#ffffff`), 13px uppercase IBM Plex Mono197198### Badges / Pills199200**Neutral Subtle**201- Background: White (`#ffffff`)202- Text: Near Black (`#0b0b0b`)203- Padding: 8px204- Font: 13px205- Border Radius: 99999px206207**Neutral Filled**208- Background: Near Black (`#0b0b0b`)209- Text: White (`#ffffff`)210- Padding: 8px211- Font: 13px212- Border Radius: 99999px213214## 5. Layout Principles215216### Spacing System217Base unit: **8px**218219| Token | Value | Usage |220|-------|-------|-------|221| space-1 | 1px | Hairline gaps, border-like spacing |222| space-2 | 2px | Minimal internal padding |223| space-3 | 4px | Tight component internal spacing |224| space-4 | 6px | Small element gaps |225| space-5 | 8px | Base unit -- button padding, input padding, badge padding |226| space-6 | 12px | Standard component gap, button horizontal padding |227| space-7 | 16px | Section internal padding, card spacing |228| space-8 | 24px | Large component padding, card internal spacing |229| space-9 | 32px | Section padding, container gutters |230| space-10 | 48px | Large section vertical spacing |231| space-11 | 64px | Major section breaks |232| space-12 | 96-120px | Hero vertical padding, maximum section spacing |233234### Grid & Container235- Max content width: ~1440px (inferred from breakpoints)236- Page gutter: 32px on desktop, 16px on mobile237- Content sections use full-bleed backgrounds with centered, max-width content238- Multi-column layouts: 2-3 columns on desktop, single column on mobile239- Card grids: CSS Grid with consistent gaps (16-24px)240241### Whitespace Philosophy242Sanity uses aggressive vertical spacing between sections (64-120px) to create breathing room on the dark canvas. Within sections, spacing is tighter (16-32px), creating dense information clusters separated by generous voids. This rhythm gives the page a "slides" quality -- each section feels like its own focused frame.243244### Border Radius Scale245246| Token | Value | Usage |247|-------|-------|-------|248| radius-xs | 3px | Inputs, textareas, subtle rounding |249| radius-sm | 4-5px | Secondary buttons, small cards, tags |250| radius-md | 6px | Standard cards, containers |251| radius-lg | 12px | Large cards, feature containers, forms |252| radius-pill | 99999px | Primary buttons, badges, nav pills |253254## 6. Depth & Elevation255256### Shadow System257258| Level | Value | Usage |259|-------|-------|-------|260| Level 0 (Flat) | none | Default state for most elements -- dark surfaces create depth through color alone |261| Level 1 (Subtle) | 0px 0px 0px 1px `#212121` | Border-like shadow for minimal containment without visible borders |262| Level 2 (Focus) | 0 0 0 2px `var(--color-blue-500)` | Focus ring for inputs and interactive elements |263| Level 3 (Overlay) | Backdrop blur + semi-transparent dark | Navigation overlay, modal backgrounds |264265### Depth Philosophy266Sanity's depth system is almost entirely **colorimetric** rather than shadow-based. Elevation is communicated through surface color shifts: `#0b0b0b` (ground) -> `#212121` (elevated) -> `#353535` (prominent) -> `#ffffff` (inverted/highest). This approach is native to dark interfaces where traditional drop shadows would be invisible. The few shadows that exist are ring-based (0px 0px 0px Npx) or blur-based (backdrop-filter) rather than offset shadows, maintaining the flat, precision-engineered aesthetic.267268Border-based containment (1px solid `#212121` or `#353535`) serves as the primary spatial separator, with the border darkness calibrated to be visible but not dominant. The system avoids "floating card" aesthetics -- everything feels mounted to the surface rather than hovering above it.269270## 7. Do's and Don'ts271272### Do273- Use the achromatic gray scale as the foundation -- maintain pure neutral discipline with no warm/cool tinting274- Apply Electric Blue (`#0052ef`) consistently as the universal hover/active state across all interactive elements275- Use extreme negative letter-spacing (-2px to -4.48px) on display headings 48px and above276- Keep primary CTAs as full-pill shapes (99999px radius) with the coral-red (`#f36458`)277- Use IBM Plex Mono uppercase for technical labels, tags, and system metadata278- Communicate depth through surface color (dark-to-light) rather than shadows279- Maintain generous vertical section spacing (64-120px) on the dark canvas280- Use `"cv01", "cv11", "cv12", "cv13", "ss07"` OpenType features for display typography281282### Don't283- Don't introduce warm or cool color tints to the neutral scale -- Sanity's grays are pure achromatic284- Don't use drop shadows for elevation -- dark interfaces demand colorimetric depth285- Don't apply border-radius between 13px and 99998px -- the system jumps from 12px (large card) directly to pill (99999px)286- Don't mix the coral-red CTA with the electric blue interactive color in the same element287- Don't use heavy font weights (700+) -- the system maxes out at 600 and only for 11px uppercase labels288- Don't place light text on light surfaces or dark text on dark surfaces without checking the gray-on-gray contrast ratio289- Don't use traditional offset box-shadows -- ring shadows (0 0 0 Npx) or border-based containment only290- Don't break the tight line-height on headings -- 1.00-1.24 is the range, never go to 1.5+ for display text291292## 8. Responsive Behavior293294### Breakpoints295296| Name | Width | Behavior |297|------|-------|----------|298| Desktop XL | >= 1640px | Full layout, maximum content width |299| Desktop | >= 1440px | Standard desktop layout |300| Desktop Compact | >= 1200px | Slightly condensed desktop |301| Laptop | >= 1100px | Reduced column widths |302| Tablet Landscape | >= 960px | 2-column layouts begin collapsing |303| Tablet | >= 768px | Transition zone, some elements stack |304| Mobile Large | >= 720px | Near-tablet layout |305| Mobile | >= 480px | Single-column, stacked layout |306| Mobile Small | >= 376px | Minimum supported width |307308### Collapsing Strategy309- **Navigation**: Horizontal links collapse to hamburger menu below 768px310- **Hero typography**: Scales from 112px -> 72px -> 48px -> 38px across breakpoints, maintaining tight letter-spacing ratios311- **Grid layouts**: 3-column -> 2-column at ~960px, single-column below 768px312- **Card grids**: Horizontal scrolling on mobile instead of wrapping (preserving card aspect ratios)313- **Section spacing**: Vertical padding reduces by ~40% on mobile (120px -> 64px -> 48px)314- **Button sizing**: CTA pills maintain padding but reduce font size; ghost buttons stay fixed315- **Code blocks**: Horizontal scroll with preserved monospace formatting316317### Mobile-Specific Adjustments318- Full-bleed sections extend edge-to-edge with 16px internal gutters319- Touch targets: minimum 44px for all interactive elements320- Heading letter-spacing relaxes slightly at mobile sizes (less aggressive negative tracking)321- Image containers switch from fixed aspect ratios to full-width with auto height322323## 9. Agent Prompt Guide324325### Quick Color Reference326```327Background: #0b0b0b (near-black canvas)328Surface: #212121 (elevated cards/containers)329Border: #353535 (visible) / #212121 (subtle)330Text Primary: #ffffff (white on dark)331Text Secondary: #b9b9b9 (silver on dark)332Text Tertiary: #797979 (medium gray)333CTA: #f36458 (coral-red)334Interactive: #0052ef (electric blue, all hovers)335Success: #19d600 (green, sRGB fallback)336Error: #dd0000 (pure red)337Light Surface: #ededed / #ffffff (inverted sections)338```339340### Example Prompts341342**Landing page section:**343"Create a feature section with a near-black (#0b0b0b) background. Use a 48px heading in Inter with -1.68px letter-spacing, white text. Below it, 16px body text in #b9b9b9 with 1.50 line-height. Include a coral-red (#f36458) pill button with white text and a secondary dark (#0b0b0b) pill button with #b9b9b9 text. Both buttons hover to #0052ef blue."344345**Card grid:**346"Build a 3-column card grid on a #0b0b0b background. Each card has a #212121 surface, 1px solid #353535 border, 6px border-radius, and 24px padding. Card titles are 24px white with -0.24px letter-spacing. Body text is 13px #b9b9b9. Add a 13px IBM Plex Mono uppercase tag in #797979 at the top of each card."347348**Form section:**349"Design a contact form on a #0b0b0b background. Inputs have #0b0b0b background, 1px solid #212121 border, 3px border-radius, 8px 12px padding, and #b9b9b9 placeholder text. Focus state shows a 2px blue (#0052ef) ring. Submit button is a full-width coral-red (#f36458) pill. Include a 13px #797979 helper text below each field."350351**Navigation bar:**352"Create a sticky top navigation on #0b0b0b with backdrop blur. Left: brand text in 15px white. Center/right: nav links in 16px #b9b9b9 that hover to blue. Far right: a coral-red (#f36458) pill CTA button. Bottom border: 1px solid #212121."353354### Iteration Guide3551. **Start dark**: Begin with `#0b0b0b` background, `#ffffff` primary text, `#b9b9b9` secondary text3562. **Add structure**: Use `#212121` surfaces and `#353535` borders for containment -- no shadows3573. **Apply typography**: Inter (or Space Grotesk) with tight letter-spacing on headings, 1.50 line-height on body3584. **Color punctuation**: Add `#f36458` for CTAs and `#0052ef` for all hover/interactive states3595. **Refine spacing**: 8px base unit, 24-32px within sections, 64-120px between sections3606. **Technical details**: Add IBM Plex Mono uppercase labels for tags and metadata3617. **Polish**: Ensure all interactive elements hover to `#0052ef`, all buttons are pills or subtle 5px radius, borders are hairline (1px)