|Design System

Design Tokens

Typography

9 type tokens across a single font family. Every size and weight is chosen for readability in AI interfaces — where text streams in real time and users scan before they read.

Font Families

Two typefaces with distinct roles.

Manrope

Primary

Geometric sans-serif with humanist touches. Clean enough for UI, warm enough for reading.

--font-manropefont-sansWeights: 300, 400, 500, 600, 700

DM Sans

Logo / Brand

Low-contrast geometric sans used for the wordmark and branding elements.

--font-dm-sansfont-logoWeights: 400, 500

Type Scale

From Display (48px) to Caption (12px). Each level includes a live specimen and metadata.

Design with intent

Display48px / 3remLight (300)LH 1.1LS -0.02em
text-5xl font-light

Primary heading

Heading 136px / 2.25remBold (700)LH 1.2LS -0.01em
text-4xl font-bold

Section heading

Heading 230px / 1.875remSemibold (600)LH 1.25LS -0.005em
text-3xl font-semibold

Subsection heading

Heading 324px / 1.5remSemibold (600)LH 1.3
text-2xl font-semibold

Body large is for introductory paragraphs and emphasized reading.

Body Large18px / 1.125remRegular (400)LH 1.6
text-lg

Body text is the default for all content. Optimized for extended reading at screen distance.

Body16px / 1remRegular (400)LH 1.6
text-base

Compact text for dense interfaces and secondary information.

Body Small14px / 0.875remRegular (400)LH 1.5
text-sm

Caption text for timestamps, footnotes, and fine print.

Caption12px / 0.75remRegular (400)LH 1.4LS 0.01em
text-xs

SECTION LABEL

Overline12px / 0.75remSemibold (600)LH 1.4LS 0.08em
text-xs font-semibold uppercase tracking-widest

Weight Specimens

Manrope at each available weight.

300 Light

The quick brown fox jumps over the lazy dog.

400 Regular

The quick brown fox jumps over the lazy dog.

500 Medium

The quick brown fox jumps over the lazy dog.

600 Semi

The quick brown fox jumps over the lazy dog.

700 Bold

The quick brown fox jumps over the lazy dog.

AI Interface Recommendations

How to apply the type scale in AI product patterns.

Streaming text

Use Body (16px/400) for all AI-generated streaming content. The 1.6 line-height prevents text from feeling cramped as it appears character by character.

Artifact card titles

Use Heading 3 (24px/600) for artifact card titles. Large enough to anchor the card, small enough to coexist with body content.

Code output

Switch to a monospace font for code blocks. Use Body Small (14px) sizing to keep code compact but readable alongside prose.

Chat timestamps

Use Caption (12px) paired with the tertiary color token. Present but never competing with message content.

Prompt Guides

Per-token usage guidance for AI interface development.

Prompt Guide — Display

Use for

  • Hero headings and landing sections
  • Design system title pages
  • Full-screen takeover headings

Don't use for

  • Content within AI chat — too large for conversational context
  • Mobile viewports without responsive scaling

AI Context

Reserved for page-level hero moments. In AI products, this might appear on a welcome screen or empty state. Never inside a chat thread or artifact card — it would overwhelm the content hierarchy.

Prompt Guide — Heading 1

Use for

  • Page titles and primary section headings
  • Artifact card titles when expanded to full view

Don't use for

  • Inside chat bubbles — use Heading 3 or Body Large
  • Repeated headings in a list — too heavy

AI Context

Top-level page headings. In AI documentation or artifact viewers, this is the title of a full-page artifact. One per viewport — multiple H1s create visual confusion.

Prompt Guide — Heading 2

Use for

  • Major section dividers within a page
  • Settings panel group titles
  • Multi-step wizard step titles

Don't use for

  • Card titles — too large for contained spaces
  • AI response section breaks — use Heading 3

AI Context

Section-level heading. In AI tool panels or settings pages, this delineates major groups. In streaming responses, AI rarely needs this — content sections within a response are better served by H3.

Prompt Guide — Heading 3

Use for

  • Artifact card titles
  • AI response section headers
  • Modal and dialog titles
  • Sidebar section titles

Don't use for

  • Body text emphasis — use bold weight instead
  • Navigation items — too large

AI Context

The most versatile heading in AI interfaces. Artifact card titles, section breaks in long AI responses, and dialog headers. Large enough to establish hierarchy, small enough to coexist with body content.

Prompt Guide — Body Large

Use for

  • Introductory paragraphs and ledes
  • AI welcome messages and onboarding text
  • Empty state descriptions

Don't use for

  • Long-form AI responses — use Body for sustained reading
  • Dense data tables or lists

AI Context

Slightly elevated body text. Use for the first message in a conversation, onboarding instructions, or feature descriptions. Not for streaming content — Body (16px) is better for extended reading.

Prompt Guide — Body

Use for

  • AI-streamed response text
  • Chat messages (user and assistant)
  • Documentation paragraphs
  • Form labels and descriptions

Don't use for

  • Headings — too small to establish hierarchy
  • Fine print or legal text — use Caption

AI Context

The default. Every AI-generated paragraph, every chat message, every piece of content the user reads in a sustained way. 16px at 1.6 line-height is the readability sweet spot for screen text.

Prompt Guide — Body Small

Use for

  • Table cell text
  • Compact list items
  • Badge and tag labels
  • AI tool parameter labels

Don't use for

  • Primary reading content — too small for comfort
  • Headings of any kind

AI Context

For compact UI elements in AI interfaces: parameter labels, badge text, compact menus, secondary metadata inside cards. Readable but clearly subordinate to Body text.

Prompt Guide — Caption

Use for

  • Timestamps on chat messages
  • Token count displays
  • Copyright and attribution text
  • Image captions and alt descriptions

Don't use for

  • Anything the user must read to complete a task
  • Error messages — must be readable at a glance

AI Context

The smallest text in the system. Timestamps below chat messages, token usage counters, model version labels. Present but never demanding. Pair with 'tertiary' or 'muted' color tokens.

Prompt Guide — Overline

Use for

  • Section labels above headings
  • Category tags on artifact cards
  • Tab group labels
  • Form section dividers

Don't use for

  • Body text — all-caps is hard to read in paragraphs
  • Buttons — use sentence case instead

AI Context

The labeling typeface. 'TOOLS', 'ARTIFACTS', 'SETTINGS' — structural labels that organize AI interface chrome. Always uppercase with wide tracking. Pair with 'accent' or 'secondary' color.