Files
claudemesh/marketing/design-system.md
Alejandro Gutiérrez 2412267fb4
Some checks failed
CI / Lint (push) Has been cancelled
CI / Typecheck (push) Has been cancelled
CI / Broker tests (Postgres) (push) Has been cancelled
CI / Docker build (linux/amd64) (push) Has been cancelled
fix(web): disable anonymous login by default (guest button removal)
claudemesh requires an account — mesh membership is tied to user.id.
e8ad7a5 flipped the config default but the env var override at
env.config.ts:43 still defaulted to true, keeping the button visible.

Fixed at env var level + example files. Needs Coolify rebuild since
NEXT_PUBLIC_* is build-time in Next standalone.
2026-04-05 15:26:13 +01:00

3.4 KiB
Raw Permalink Blame History

claudemesh — Design System

Extracted from claude.com/product/claude-code on 2026-04-04 via Playwriter reverse-engineering. 242 CSS variables pulled, 6 font files downloaded, token table rebuilt as --cm-*.

Not "inspired by". This is the Anthropic design system, rewired under our own token names so the site reads as a native citizen of the Claude ecosystem.

Fonts (self-hosted, woff2)

Family Weights File
Anthropic Sans 300800 /fonts/AnthropicSans-Roman.woff2 + Italic
Anthropic Serif 300800 /fonts/AnthropicSerif-Roman.woff2 + Italic
Anthropic Mono 300800 /fonts/AnthropicMono-Roman.woff2 + Italic

Usage

  • Serif → display headlines, scenario titles, long-form body prose (the Anthropic voice)
  • Sans → UI: buttons, nav, pillar labels
  • Mono → code, terminal, metadata tags, section labels

Color palette (swatch names from claude.com)

Token Hex Role
--cm-clay #d97757 Brand primary (Claude orange)
--cm-clay-hover #c96442 Brand hover
--cm-fig #c46686 Accent pink
--cm-oat #e3dacc Warm cream
--cm-cactus #bcd1ca Sage
--cm-gray-050 #faf9f5 Foreground (on dark)
--cm-gray-150 #f0eee6 Surface (light mode)
--cm-gray-350 #c2c0b6 Text secondary
--cm-gray-450 #9c9a92 Text tertiary
--cm-gray-800 #262624 Surface hover (dark)
--cm-gray-850 #1f1e1d Elevated surface (dark)
--cm-gray-900 #141413 Page background (dark)

Type scale (fluid clamp, from Anthropic's own scale)

Token Min → Max Use
--cm-text-h1 2.125rem → 3.25rem Page titles
--cm-text-h2 1.875rem → 2.75rem Section headers
--cm-text-h3 1.75rem → 2.25rem Card titles
--cm-text-body-lg 1.1875rem → 1.25rem Lede paragraph
  • Line-heights: 1.2 (display), 1.5 (UI), 1.7 (body prose)
  • Letter-spacing: 0 default, 0.05em on labels, 0.22em on section markers

Spacing & layout

  • Gutter: 2rem
  • Max width: 90rem
  • Grid: 12-col with gutters
  • Section padding: py-32 px-8 md:px-16

Radii

  • --cm-radius-xs: 0.25rem (buttons, inputs, tags)
  • --cm-radius-md: 0.5rem
  • --cm-radius-lg: 1rem (hero cards, CTA box)

Motion

  • --cm-dur: 300ms
  • --cm-ease: cubic-bezier(0.22, 0.61, 0.36, 1)
  • All transitions color + transform only, no layout shifts

Signature touches (claudemesh's own voice on top)

  • Italic serif phrases in clay for emphasis — Anthropic uses this too
  • Mono section markers prefixed with (e.g. — real scenarios)
  • Terminal-style tag chips in mono
  • $ npx claudemesh init command blocks with blinking clay cursor
  • Hero backdrop: generated mesh image at 50% opacity with gradient fade to bg

Files

  • apps/web/src/assets/styles/globals.css — tokens + @font-face
  • apps/web/public/fonts/ — 6 woff2 files
  • apps/web/src/modules/marketing/home/*.tsx — sections using tokens
  • marketing/anthropic-tokens.json — full 242-var dump (reference)
  • marketing/assets/fonts/ — master copies of font files
  • marketing/assets/anthropic-refs/ — screenshots for visual reference

This uses Anthropic's proprietary fonts and exact color tokens. If Anthropic sends a notice, we swap fonts to a free equivalent (Source Serif 4, Inter, JetBrains Mono) and shift clay ±5% — the layout and system survive. Until then: full native ecosystem look.