Skip to content

Typography

Responsive type scale, font variables, heading hierarchy, optical line-heights, and interactive typography specs.

4.3 KB
•
Updated on September 14, 2026

Overview

Space UI typography is built on the principles of restraint, precision, and responsive scalability. Rather than arbitrary one-off font sizes, the system uses a mathematically grounded type scale with descending heading levels, optical line-heights, and dedicated tokens for body and interface controls.

The design system is powered by three primary font families:


Text Playground

Test how headings, body paragraphs, blockquotes, lists, and interactive accordion widgets respond across different screen sizes and typeface configurations.

Font :
Heading 2Open Runde • SemiBold / 600

Levy Chronicles : Type Architecture

In modern product interfaces, typography is the core structural foundation. Space UI combines responsive scale ratios, optical line-heights, and strict measure limits to maximize legibility across all screen densities.

Heading 4Medium / 500

The Practice of Typographic Restraint

Good typography is mostly restraint. Rather than hundreds of random one-off font sizes, we maintain a coherent descending hierarchy with dedicated roles for headings, body copy, and UI controls.

“Every interface begins with text. Every typographic choice must prioritize clarity and reading comfort before ornamentation.”
Heading 6SemiBold / 600
Core Typography Benchmarks
  • Headings: tight line-height (1.10 – 1.25) with optical negative tracking.
  • Body copy: measure capped at 60–75ch and relaxed line-height (1.50 – 1.60).
  • Dynamic figures: tabular rendering with tabular-nums ($1,248.50).
  • Keyboard shortcuts: rendered with ⌘ + K.
Interactive Accordion

Using CSS variables and Tailwind CSS v4 utilities, heading and body sizes scale down smoothly on smaller screens while maintaining optimal line-heights and comfortable reading measures.


Heading Font Specs

Headings feature tight, optical line-heights (1.10–1.35) and proportional negative letter-spacing (tracking) to produce dense, punchy titles that balance neatly across lines.

Heading Specs
Heading 1H1
text-5xl lg:text-6xl font-semibold leading-[1.12] tracking-tight
Display Headline One
Size :64px / 4.0rem
Weight :SemiBold / 600
Line Height :72px / 1.12
Tracking :-0.025em / -1.6px
Heading 2H2
text-4xl lg:text-5xl font-semibold leading-[1.16] tracking-tight
Section Title Two
Size :48px / 3.0rem
Weight :SemiBold / 600
Line Height :56px / 1.16
Tracking :-0.020em / -1.0px
Heading 3H3
text-3xl font-semibold leading-tight tracking-tight
Subsection Header Three
Size :36px / 2.25rem
Weight :SemiBold / 600
Line Height :44px / 1.22
Tracking :-0.015em / -0.5px
Heading 4H4
text-2xl font-semibold leading-snug tracking-tight
Card & Group Title Four
Size :28px / 1.75rem
Weight :SemiBold / 600
Line Height :36px / 1.28
Tracking :-0.010em / -0.3px
Heading 5H5
text-xl font-semibold leading-snug
Feature Headline Five
Size :22px / 1.375rem
Weight :SemiBold / 600
Line Height :30px / 1.36
Tracking :-0.005em / -0.1px
Heading 6H6
text-lg font-semibold leading-normal
Subheading & Label Six
Size :18px / 1.125rem
Weight :SemiBold / 600
Line Height :26px / 1.44
Tracking :0em / 0px

Body & UI Font Specs

Body and interface typography is calibrated for maximum legibility at high reading speeds. Line-heights are relaxed (1.40–1.60) to provide comfortable vertical rhythm.

Body & UI Specs :
Body 18 (Lead / Large)text-lg
Space UI provides accessible, polished primitives built on React and Tailwind CSS v4.
Size :18px / 1.125rem
Weight :Regular / 400 • Medium / 500
Line Height :28px / 1.55
Role :Lead paragraphs, excerpts, intro summaries
Tracking :-0.005em
Body 16 (Base / Default)text-base
The quick brown fox jumps over the lazy dog. Comfortable reading measure capped at 65 characters.
Size :16px / 1.0rem
Weight :Regular / 400 • Medium / 500
Line Height :24px / 1.50
Role :Standard documentation body copy, blog prose, mobile form inputs
Tracking :-0.005em
Body 14 (UI Small / Controls)text-sm
Desktop control labels, table records, and form field descriptions.
Size :14px / 0.875rem
Weight :Regular / 400 • Medium / 500 • SemiBold / 600
Line Height :20px / 1.43
Role :Buttons, desktop inputs, menu items, table records, dialog content
Tracking :0em
Body 13 (Subtext / Captions)text-[13px]
Last edited 2 minutes ago • 1.2k stars • Licensed under MIT
Size :13px / 0.8125rem
Weight :Regular / 400 • Medium / 500
Line Height :18px / 1.38
Role :Helper texts, breadcrumbs, timestamp strings, metadata rows
Tracking :0em
Body 12 (Badge / Legal / Micro)text-xs
CTRL + K • PRODUCTION READY • STATUS: ACTIVE
Size :12px / 0.75rem
Weight :Medium / 500 • SemiBold / 600
Line Height :16px / 1.33
Role :Status badges, kbd shortcuts, legal notices, micro tags
Tracking :+0.010em

Type Scale Reference

A quick-reference matrix mapping typographic roles to rem/pixel sizes, line-heights, weights, tracking, and Tailwind CSS v4 utility classes:


Typographic Principles

When styling components or long-form documentation, follow these core guidelines:

1. Line-Height by Role

  • Headings: Keep line-height tight (around 1.10–1.25) so multiline headlines read as cohesive units.
  • Body & Paragraphs: Use generous line-height (1.50–1.60) so the eye easily transitions to the next line.
  • Single-line Controls: Use leading-none or leading-normal with centered flex alignment.

2. Cap the Measure (Line Length)

Unbounded paragraph widths fatigue the reader. Cap long-form reading copy around 60–75 characters per line using max-w-[65ch] or max-w-2xl.

3. Deliberate Text Wrapping

  • Apply text-wrap: balance on headings and card titles to distribute line lengths evenly.
  • Apply text-wrap: pretty on lead paragraphs and descriptions to prevent single-word orphans on the final line.

4. Tabular Numbers on Changing Values

Proportional digits have variable widths, causing layout jitter when counters, prices, or timers tick. Use font-variant-numeric: tabular-nums (Tailwind tabular-nums) for dynamic numeric values:

Code

5. iOS Mobile Input 16px Rule

iOS Safari automatically zooms the viewport if a form input has a font size smaller than 16px. Always start mobile inputs at 16px and scale down on larger viewports:

Code

Configuration & Custom Fonts

1. Setup with next/font (Next.js)

Configure Google Fonts or local variable fonts in your root layout:

app/layout.tsx

2. Tailwind CSS v4 Theme Integration

In Tailwind CSS v4, map your font variables inside @theme in globals.css:

app/globals.css