Woodstock Docs
Design System

Typography

The type families, scale, weight, and text treatments currently used in Woodstock.

Typography

This records the typography used in the Woodstock app. It does not introduce a new type scale.

Families and defaults

RoleCSS or utilityValueUsed for
Interface textRoot font shorthand16px / 145% system-ui, "Segoe UI", Roboto, sans-serifThe whole app by default. It follows the operating system's UI typeface.
Interface text spacingRoot letter-spacing0The default spacing for ordinary app text.
Code and identifiersfont-monoTailwind's UI monospace stackTool names, repository identifiers, source payloads, and inline or block Markdown code.

The documentation site is separate from the product app: it loads Inter. That font is not loaded by the app itself.

Type scale

Use only the even-size Tailwind steps below. text-[10px] is the one exception: Tailwind has no built-in 10px token, and it is reserved for compact badges where text-xs would not fit.

UtilitySizeDefault line heightUses
text-[10px]10pxInheritedCompact status and unread badges — the sole arbitrary-size exception.
text-xs12px16pxMetadata, timestamps, table headers, secondary labels, and compact controls.
text-sm14px20pxSupporting copy, buttons, menus, messages, and form labels.
text-base16px24pxInputs, channel names, and normal long-form app content.
text-lg18px28pxPage titles, product name, and Markdown level-one headings.
text-xl20px28pxIcons that are rendered as text and close controls.
text-2xl24px32pxOne-time-password input.
text-4xl36px40pxHome-page headline.
text-5xl48px48pxLarge-screen home-page headline.

Markdown

Markdown uses the same scale: inline code and tables inherit the surrounding text size; code blocks use text-sm; and mention chips inherit the message size.

Weights

Use the default weight for ordinary text and font-semibold when stronger emphasis is needed.

UtilityWeightUses
Default / font-normal400Body copy, labels, metadata, and standard controls.
font-semibold600Primary actions, headings, sender names, and emphasized values.

Headings use the same text-content color as body copy. Weight and size provide hierarchy; there is no separate “strong” text color.

Type-style recipes

These are reference combinations, not global HTML element styles. Apply them deliberately in the app; Markdown headings use the same hierarchy.

StyleClasses
Displaytext-5xl font-semibold tracking-tight leading-tight
H1text-2xl font-semibold tracking-tight
H2text-xl font-semibold
H3text-lg font-semibold
H4text-base font-semibold
H5text-sm font-semibold
H6text-xs font-semibold
Bodytext-base
Small bodytext-sm
Caption / metadatatext-xs text-muted
Overlinetext-xs uppercase tracking-wide text-muted
Inline codefont-mono (inherits surrounding size)
Code blockfont-mono text-sm leading-snug

Spacing and line height

UtilityValueUsed for
tracking-tight-0.025emWordmark and home-page headline.
tracking-wide0.025emUppercase status, section, and table labels.
tracking-[0.4em]0.4emOne-time-password digits.
leading-none1Text-based icons and compact badges.
leading-tight1.25Home-page headline.
leading-snug1.375Markdown code blocks.
leading-relaxed1.625Channel descriptions and other longer reading text.

Use the default line height for normal UI copy. Add a line-height utility only when the content is intentionally more compact, is a display heading, or is long-form reading text.

Content conventions

ContentTreatment
Chat and ordinary app copyDefault sans family; normally text-sm or text-base.
Message metadatatext-xs with text-muted.
Buttons and controlstext-sm by default; use font-semibold only for a primary or clearly emphasized action.
Section labels and table headerstext-xs uppercase tracking-wide; add font-semibold only when the label needs stronger hierarchy.
Markdown headingstext-lg, text-base, and text-sm, all font-semibold for levels one through three.
Code, tool names, and raw payloadsfont-mono; inline code inherits its surrounding text size, while code blocks use text-sm leading-snug.

On this page