← all systems sanity
edit →

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:

2. Color Palette & Roles

Primary Brand

Accent & Interactive

Surface & Background

Neutrals & Text

Semantic

Border System

3. Typography Rules

Font Family

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

RoleFontSizeWeightLine HeightLetter SpacingNotes
Display / HerowaldenburgNormal112px (7rem)4001.00 (tight)-4.48pxMaximum impact, compressed tracking
Hero SecondarywaldenburgNormal72px (4.5rem)4001.05 (tight)-2.88pxLarge section headers
Section HeadingwaldenburgNormal48px (3rem)4001.08 (tight)-1.68pxPrimary section anchors
Heading LargewaldenburgNormal38px (2.38rem)4001.10 (tight)-1.14pxFeature section titles
Heading MediumwaldenburgNormal32px (2rem)4251.24 (tight)-0.32pxCard titles, subsection headers
Heading SmallwaldenburgNormal24px (1.5rem)4251.24 (tight)-0.24pxSmaller feature headings
SubheadingwaldenburgNormal20px (1.25rem)4251.13 (tight)-0.2pxSub-section markers
Body LargewaldenburgNormal18px (1.13rem)4001.50-0.18pxIntro paragraphs, descriptions
BodywaldenburgNormal16px (1rem)4001.50normalStandard body text
Body SmallwaldenburgNormal15px (0.94rem)4001.50-0.15pxCompact body text
CaptionwaldenburgNormal13px (0.81rem)400-5001.30-1.50-0.13pxMetadata, descriptions, tags
Small CaptionwaldenburgNormal12px (0.75rem)4001.50-0.12pxFootnotes, timestamps
Micro / LabelwaldenburgNormal11px (0.69rem)500-6001.00-1.50normalUppercase labels, tiny badges
Code BodyIBM Plex Mono15px (0.94rem)4001.50normalCode blocks, technical content
Code CaptionIBM Plex Mono13px (0.81rem)400-5001.30-1.50normalInline code, small technical labels
Code MicroIBM Plex Mono10-12px4001.30-1.50normalTiny code labels, uppercase tags

Principles

4. Component Stylings

Buttons

Primary CTA (Pill)

Secondary (Dark Pill)

Outlined (Light Pill)

Ghost / Subtle

Uppercase Label Button

Cards

Dark Content Card

Feature Card (Full-bleed)

Inputs

Text Input / Textarea

Search Input

Top Navigation

Footer

Badges / Pills

Neutral Subtle

Neutral Filled

5. Layout Principles

Spacing System

Base unit: 8px

TokenValueUsage
space-11pxHairline gaps, border-like spacing
space-22pxMinimal internal padding
space-34pxTight component internal spacing
space-46pxSmall element gaps
space-58pxBase unit — button padding, input padding, badge padding
space-612pxStandard component gap, button horizontal padding
space-716pxSection internal padding, card spacing
space-824pxLarge component padding, card internal spacing
space-932pxSection padding, container gutters
space-1048pxLarge section vertical spacing
space-1164pxMajor section breaks
space-1296-120pxHero vertical padding, maximum section spacing

Grid & Container

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

TokenValueUsage
radius-xs3pxInputs, textareas, subtle rounding
radius-sm4-5pxSecondary buttons, small cards, tags
radius-md6pxStandard cards, containers
radius-lg12pxLarge cards, feature containers, forms
radius-pill99999pxPrimary buttons, badges, nav pills

6. Depth & Elevation

Shadow System

LevelValueUsage
Level 0 (Flat)noneDefault state for most elements — dark surfaces create depth through color alone
Level 1 (Subtle)0px 0px 0px 1px #212121Border-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 darkNavigation 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

Don’t

8. Responsive Behavior

Breakpoints

NameWidthBehavior
Desktop XL>= 1640pxFull layout, maximum content width
Desktop>= 1440pxStandard desktop layout
Desktop Compact>= 1200pxSlightly condensed desktop
Laptop>= 1100pxReduced column widths
Tablet Landscape>= 960px2-column layouts begin collapsing
Tablet>= 768pxTransition zone, some elements stack
Mobile Large>= 720pxNear-tablet layout
Mobile>= 480pxSingle-column, stacked layout
Mobile Small>= 376pxMinimum supported width

Collapsing Strategy

Mobile-Specific Adjustments

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

  1. Start dark: Begin with #0b0b0b background, #ffffff primary text, #b9b9b9 secondary text
  2. Add structure: Use #212121 surfaces and #353535 borders for containment — no shadows
  3. Apply typography: Inter (or Space Grotesk) with tight letter-spacing on headings, 1.50 line-height on body
  4. Color punctuation: Add #f36458 for CTAs and #0052ef for all hover/interactive states
  5. Refine spacing: 8px base unit, 24-32px within sections, 64-120px between sections
  6. Technical details: Add IBM Plex Mono uppercase labels for tags and metadata
  7. Polish: Ensure all interactive elements hover to #0052ef, all buttons are pills or subtle 5px radius, borders are hairline (1px)