Foundations

Typography

A nine-role type scale built on Suisse Int'l from Swiss Typefaces, with Google Fonts fallbacks. Each role defines family, size, weight, line height, and tracking as a composition token.

Families

Font families

Aa Bb Cc Dd
DisplaySuisse Int'l

Headlines, display type, hero moments. Always weight 300 (light). If it feels thin, go bigger.

--font-family-display300, 400, 500
Aa Bb Cc Dd
BodySuisse Int'l

Body text, UI labels, navigation, general interface copy.

--font-family-sans400 (Book), 450 (Regular), 500 (Medium)
0123456789
MonoSuisse Int'l Mono

Code blocks, token names, tabular data, eyebrow labels.

--font-family-mono400, 700

Scale

Type scale

Every role rendered at its actual size, weight, and family.

Display 2XLHero headlines, splash screens
clamp(48px, 10vw, 96px)
Entangle
size: clamp(48px, 10vw, 96px)weight: 300line-height: 1.05tracking: -0.03em
Display XLSection heroes, key moments
clamp(40px, 8vw, 72px)
Design System
size: clamp(40px, 8vw, 72px)weight: 300line-height: 1.05tracking: -0.02em
Heading LGPage titles, major section headings
clamp(28px, 5vw, 40px)
Platform-grade infrastructure
size: clamp(28px, 5vw, 40px)weight: 300line-height: 1.1tracking: -0.02em
Heading MDSub-sections, card headings
24px
Components built for production
size: 24pxweight: 300line-height: 1.25tracking: -0.01em
Body LGLead paragraphs, intros
18px
Token-driven components that respect the system while giving engineers the flexibility they need to build fast.
size: 18pxweight: 400line-height: 1.6tracking: 0
Body MDDefault body text
16px
The default reading size. Comfortable for long-form content, UI labels, and general body text across the platform.
size: 16pxweight: 400line-height: 1.6tracking: 0
Body SMCaptions, helper text
14px
Captions, helper text, and secondary information that supports the primary content without competing for attention.
size: 14pxweight: 400line-height: 1.5tracking: 0
LabelForm labels, overlines, badges
12px
FORM LABEL
size: 12pxweight: 500line-height: 1.4tracking: 0.08em
MonoCode, token names, technical
14px
const token = getToken('color.brand.500');
size: 14pxweight: 400line-height: 1.5tracking: 0.02em

Usage

Usage guide

How each type role maps to specific UI elements. Every example below is rendered at its production specification.

Button Typography

The signature Entangle treatment. All interactive pill elements — buttons, badges, tags, nav items — share this voice. Mono uppercase at small size communicates precision and technical authority.

font: --font-family-monosize: 11pxweight: 500case: uppercasetracking: 0.10emshape: pill (rounded-full)

Badge & Tag Typography

ActivePositiveWarningCriticalTag

Slightly tighter tracking than buttons. Used for status indicators and categorisation. Pill shape for status badges, rounded-md for tags.

font: --font-family-monosize: 11pxweight: 500case: uppercasetracking: 0.08em

Form Field Typography

you@company.com

We'll send a verification link to this address.

********

Password must be at least 8 characters.

LabelsSans, 14px, medium (500)
Input textSans, 14px, regular (400)
PlaceholderSans, 14px, regular (400), dimmed colour
Helper textSans, 12px, regular (400), muted colour
Error textSans, 12px, regular (400), critical colour
font: --font-family-sanslabel: 14px / 500input: 14px / 400helper: 12px / 400

Navigation Typography

DashboardAnalyticsCampaignsSettings
Foundations/Typography/Usage Guide
Active linkMono, 10.5px, uppercase, tracking 0.10em, foreground
Inactive linkMono, 10.5px, uppercase, tracking 0.10em, muted
BreadcrumbMono, 12px, tracking 0.04em
font: --font-family-mononav: 10.5px / 500breadcrumb: 12px / 400case: uppercase (nav)tracking: 0.10em (nav)

Data Typography

Conversions

2,847

Cost Per Lead

$14.20

Return On Ad Spend

4.8x

CampaignSpendLeadsCPL
Brand Search$4,200312$13.46
Competitor$6,800198$34.34
Metric valueDisplay, light (300), clamp(2rem, 4vw, 3rem)
Metric labelMono, 10.5px, uppercase, tracking 0.12em, muted
Chart axisMono, 11px, muted
Table headerMono, 11px, uppercase, tracking 0.08em
value: --font-family-display / 300label: --font-family-mono / 10.5pxtable-header: 11px / uppercasetabular-nums: always

Rules

×

Never use italic

The system has no italic weights loaded. Do not apply font-style: italic anywhere.

×

Body text minimum: 14px for UI, 16px for long-form

UI labels and short text can use 14px. Long-form reading content (articles, documentation paragraphs) must use 16px or larger.

×

Display type is reserved for headlines and hero moments

Suisse Int’l Light (300) should only appear in display roles. Never use weight 300 for body text or UI elements.

×

Monospace uppercase is reserved for interactive and label elements

Never use mono uppercase for body text. It is reserved for buttons, badges, tags, nav items, eyebrow labels, and data labels.