Raft Design System

Foundations

Typography

The two typefaces, the type scale and where each style is used, and the casing rules.

Raft uses two typefaces with separate jobs: Space Grotesk for what people say, Space Mono for what machines write. Hierarchy comes from size, weight and color, never from capitals.

Principles

  • Space Grotesk is people; Space Mono is machines. Space Grotesk (variable, weights 300 to 700) sets messages, labels and titles. Space Mono (400 and 700) sets IDs, times, counts, runtimes, event lines, shortcuts and code.
  • Chinese falls back to the system face: PingFang SC, then Source Han Sans. Mixed Chinese and English text keeps the numbers, IDs and times in Space Mono.
  • No all caps. Use Title Case for anything people can click and sentence case for everything else; see Casing.

Type scale

Each style sets a size and a line height; the bold styles also set their weight.

TokenUse for
text-heroThe onboarding headline
text-displayThe large title of a top-level page, the name on an agent's profile
text-titleStatistics on a profile page
text-headlineTop bar titles (a top-level page's name, a pushed page's title), panel headers, sidebar headers, dialog and sheet titles, the workspace pill
text-bodyMessage text, inputs; list and task titles at weight 600
text-subheadButtons, names, radio labels, dialog body text
text-calloutPreviews, menu items, banners, excerpts
text-footnoteGroup headings, field labels, tooltips
text-captionSubtitles, status chips, help text
text-labelTab bar labels and the labels of the labeled rail
text-mono-metaIDs, times, counts, runtimes, event lines, shortcuts (in Space Mono)
text-mono-codeCode and commands (in Space Mono)

Usage

  • Pick the weight by purpose from 400, 500, 600 and 700; the scale sets only size and line height for the regular styles.
  • Size the initials in an avatar at 11px, 13px, 15px, 22px or 40px, by avatar size; see Avatar.
  • Set anything a machine produced in Space Mono, even inside a sentence: #25, 10:24, Claude Code, counts, event lines.
  • Set statistics meant for people in Space Grotesk.

Casing

TextCaseExample
Anything clickable: buttons, menu items, tabs, tab bar items, status namesTitle CaseCreate Task, Mark All Read
Titles, group headings, descriptions, empty statesSentence caseNo tasks match these filters
A dialog or sheet title that repeats its button's labelTitle CaseCreate Channel
  • Never set text in all caps, in CSS or in the string. The one exception is the step label on the onboarding screen; see Brand.
  • The rules for writing Title Case are in Writing.
  • Writing: the words themselves.
  • Alignment: how text lines up with shapes and edges.