Type scale (Scale D, 8 stops)

Paired font-size + line-height tokens. Line-height decreases as size increases (Bringhurst): large letterforms anchor visually and need less leading. All sizes in rem; the rendered px assumes the 16px browser default.

--bn-text-micro
--bn-text-micro-lh
9.6px · 1.3 DRAG · 12 · ×
--bn-text-badge
--bn-text-badge-lh
11.5px · 1.35 badge text · group totals · 247
--bn-text-caption
--bn-text-caption-lh
12px · 1.4 12 Feb · 1h 03 · footnote · timestamp
--bn-text-label
--bn-text-label-lh
13px · 1.45 UI chrome · sidebar entries · table cells
--bn-text-body
--bn-text-body-lh
15px · 1.5 Quote text and transcript segments — the participant voice. "I just couldn't figure out where to click next."
--bn-text-heading
--bn-text-heading-lh
18px · 1.3 Section heading · card title
--bn-text-title
--bn-text-title-lh
22px · 1.25 Page title · h1
--bn-text-display
--bn-text-display-lh
28px · 1.2 347

Weight ladder

Inter Variable, four tiers. Static-font fallbacks (Windows 10 Segoe UI offline) snap 420→400 and 490→400 — structural cues still carry hierarchy.

--bn-weight-normal 420 Body text, descriptions, quote content, secondary labels.
--bn-weight-emphasis 490 Headings, section titles, sidebar headings, badge text.
--bn-weight-starred 520 Starred quote body — pops above emphasis, below strong.
--bn-weight-strong 700 Page h1, delete × glyphs, accept/deny ✓/✗, bar counts.

Sidebar specimens

All five sidebars share --bn-sidebar-width: 280px as their default width and load organisms/sidebar.css (plus sidebar-tags.css for Tags). Hierarchy is built almost entirely from --bn-text-label (13px) plus weight contrast — Sessions and Tags reach down to caption/badge for metadata, and only Signals reaches down to micro for compact chips.

Font specs (named roles)

One card per named typographic role — the unit a designer redraws in Figma as a Text Style. Each card pairs a real rendering with the exact CSS spec the production code emits. Family Inter unless noted; SF Mono for monospace; colour --bn-colour-text unless noted. Letter-spacing is the CSS default (0) unless listed.

347
Display
Inter · 28 / 33.6 · 700
Dashboard hero numbers, big counts.
Project Ikea
Title
Inter · 22 / 27.5 · 490
Page titles, h1, logotype.
Onboarding Flow
Heading
Inter · 18 / 23.4 · 490
Section headings, card titles, modal titles.
"I just couldn't figure out where to click next."
Body — quote
Inter · 15 / 22.5 · 420
Quote text, transcript segments — participant voice.
"This is the one I'll remember from this round."
Body — quote starred
Inter · 15 / 22.5 · 520
Starred quotes — pops above emphasis without reaching bold.
Sessions
Label — heading
Inter · 13 / 18.85 · 490 · underline rule
Sidebar headings (.toc-heading), sidebar titles.
Getting Started
Label — link
Inter · 13 / 18.85 · light (~380)
Sidebar links (.toc-link), nav entries. Underline on hover.
Mental models · Accessibility
Label — UI
Inter · 13 / 18.85 · 420
Toolbar, filters, context, timecodes (app voice).
12 Feb · 1h 03 · 247 quotes
Caption
Inter · 12 / 16.8 · 420
Dates, durations, footnotes, footer, modal footer.
By section
Caption — sub-heading
Inter · 12 / 16.8 · 490 · uppercase · +0.06em
Signals grouping headers (.toc-sub-heading).
247 quotes · 18 tags
Badge — group total
Inter · 11.5 / 15.5 · 490
Group totals, sidebar subtitles (.tag-sidebar-subtitle).
Peter Morville · Jakob Nielsen
Badge — author/muted
Inter · 11.5 / 15.5 · 420 · muted
Author bylines (.codebook-author), provenance.
DRAG · 12 · ×
Micro
Inter · 9.6 / 12.5 · 490
Drag handles, pill counts, signal-entry badges.
.toc-link.active
Mono — label
SF Mono · 13 / 18.85 · 420
Inline code, selectors, kbd. Fallback: Fira Code, Consolas.

Inventory: where each stop lives

A reader's map of which size token surfaces in which sidebar. Anything not listed here is currently unused at sidebar scale — the larger stops (body, heading, title, display) live in the centre column (quote cards, section headers, dashboard hero numbers).

--bn-text-micro Signals badge label
--bn-text-badge Session ID badge (#1, #2…), speaker code badge (m1, p1…)
--bn-text-caption Session date · duration · Signals sub-heading (uppercase)
--bn-text-label Section heading · link text · entry name (Sessions/Quotes/Codes/Signals primary)
All four sidebars
Hierarchy is built from weight contrast at a single size wherever possible. Reaching down the scale is reserved for genuine metadata (Sessions caption row) or compact indicators (Signals badge).