Skip to main content

Typography

How text is set: roles, sizes and line height.

display56px · 1.8 · 800The drop is coming
title40px · 1.1 · 800The drop is coming
heading28px · 1.1 · 700Night runner jacket
body17px · 1.55 · 400A visitor lands on a launch page from a social post and joins the waiting list.
label15px · 1.1 · 700Join the drop
caption14px · 1.55 · 400A visitor lands on a launch page from a social post and joins the waiting list.
data17px · 1.55 · 400Days to launch 6 · On the list 2,400 · Pieces in the drop 12 · Colors 4

The five answers​

QuestionAnswerWhy
Which text roles does it need?Core and expressive displayA big expressive display role carries the brand.
How many steps does the type scale take?Fine steps, so pages can set their own rhythmFine steps give big moments room.
How are sizes and line heights defined?A ratio, line heights in proportionRatios suit the big display sizes.
How large is body text?RegularRegular body; the display does the shouting.
Where does type do the most work?Headlines and heroType does its work in headlines.

Tokens​

Each token points to another token. Values live only on primitives, below.

TokenPoints to
type.display.font-familybrand-expressive.theme.base.type.display.font-family → font.family.bricolage-grotesque
type.display.font-sizefont.size.56
type.display.line-heightfont.line-height.1_8
type.display.font-weightfont.weight.800
type.title.font-familybrand-expressive.theme.base.type.title.font-family → font.family.bricolage-grotesque
type.title.font-sizefont.size.40
type.title.line-heightfont.line-height.1_1
type.title.font-weightfont.weight.800
type.heading.font-familybrand-expressive.theme.base.type.heading.font-family → font.family.bricolage-grotesque
type.heading.font-sizefont.size.28
type.heading.line-heightfont.line-height.1_1
type.heading.font-weightfont.weight.700
type.body.font-familybrand-expressive.theme.base.type.body.font-family → font.family.dm-sans
type.body.font-sizefont.size.17
type.body.line-heightfont.line-height.1_55
type.body.font-weightfont.weight.400
type.label.font-familybrand-expressive.theme.base.type.label.font-family → font.family.dm-sans
type.label.font-sizefont.size.15
type.label.line-heightfont.line-height.1_1
type.label.font-weightfont.weight.700
type.caption.font-familybrand-expressive.theme.base.type.caption.font-family → font.family.dm-sans
type.caption.font-sizefont.size.14
type.caption.line-heightfont.line-height.1_55
type.caption.font-weightfont.weight.400
type.data.font-familybrand-expressive.theme.base.type.data.font-family → font.family.dm-sans
type.data.font-sizefont.size.17
type.data.line-heightfont.line-height.1_55
type.data.font-weightfont.weight.400

The raw values these tokens end at are on Primitives › Type.

When to use what​

SituationUseNotWhy
Page titletype.displaytype.titleThe display role carries the brand in every hero.
A number in a tabletype.bodyA mono fontTables are rare and never compared column by column, so mono digits add nothing. The brand font keeps the voice.
Paragraph or help texttype.body, shortLong paragraphsShort copy keeps the energy.
Field label or column headertype.labeltype.captionLabels stay readable on vivid color.