Skip to content

Typography

Text styles for headings and body content.

Overview

The Standard UI typography system is built on three font families and the Apps SDK type scale from 2xl down to 2xs. Text styles are Tailwind utilities that combine family, size, line height, and weight. Prefer these tokens over ad-hoc font properties.

Font families

Three families cover UI, display, and code.

CSS variableTailwind classFontUsage
--font-sansfont-sansSöhneDefault UI and body. Paragraphs, controls, and general content.
--font-displayfont-displaySignifierSerif display. Use with heading-*-serif for editorial titles.
--font-monofont-monoSöhne MonoMonospace. Code, tokens, and technical identifiers.

Type scale

Headings

Sizes lg through 2xl ship as both Söhne (sans) and Signifier (serif) variants. Smaller headings use Söhne only.

Tailwind classFontSizeLine heightWeightUsage
heading-2xl-sans / heading-2xl-serifSöhne / Signifier36px (2xl)42px600Page titles and hero headings. Use sparingly.
heading-xl-sans / heading-xl-serifSöhne / Signifier32px (xl)38px600Major section headings.
heading-lg-sans / heading-lg-serifSöhne / Signifier24px (lg)28px600Subsection headings.
heading-mdSöhne20px (md)26px600Card titles, dialog headers.
heading-smSöhne18px (sm)26px600Small headings and list headers.
heading-xsSöhne16px (xs)24px600Compact headings in dense UI.

Body text

Body styles use Söhne. Each size has a regular and strong (medium weight) variant.

Tailwind classSizeLine heightWeightUsage
text-lg / text-lg-strong18px (lg)29px400 / 500Lead paragraphs and intro copy.
text-md / text-md-strong16px (md)24px400 / 500Default body text and labels.
text-sm / text-sm-strong14px (sm)20px400 / 500Captions, helper text, button labels.
text-xs / text-xs-strong12px (xs)18px400 / 500Footnotes, timestamps, badges.
text-2xs / text-2xs-strong10px (2xs)14px400 / 500Dense metadata and compact chrome.

Text colors

Pair type tokens with semantic text colors for hierarchy. See Colors for the full palette.

Tailwind classUsage
text-fg-primaryHeadings and emphasized content.
text-fg-secondaryBody text and standard content.
text-fg-tertiaryCaptions, labels, and supporting text.
text-fg-quaternaryPlaceholders, disabled text, and subtle hints.

Usage guidelines

Do

  • Use heading-* for titles to keep hierarchy consistent
  • Use text-md for paragraphs, text-sm for secondary info
  • Pair type tokens with semantic colors (text-fg-primary, text-fg-secondary)
  • Prefer -strong variants over arbitrary font weights
  • Pick -serif or -sans explicitly on lg–2xl headings
  • Keep heading levels sequential — don’t skip steps

Don't

  • Don’t use raw sizes like text-[17px] for content typography
  • Don’t mix arbitrary weights with type tokens
  • Don’t use Signifier for body copy or sizes below heading-lg
  • Don’t use heading-2xl-* more than once per page
  • Don’t stack multiple type tokens on the same element
  • Don’t use headings only for visual size — match semantic levels

Responsive typography

The scale works across breakpoints. Combine with Tailwind prefixes when you need a size jump.

PatternUsage
heading-xl-serif md:heading-2xl-serifLarger page title on medium+ screens.
text-sm md:text-mdLarger body text on medium+ screens.