Skip to sheet

F-203Typography

Typography

Two faces, three tiers. General Sans sets headings, always at Semibold; Asap sets everything else. Every line height sits on the 8px grid.

Two faces

A geometric grotesk with drafting-room precision for headings, and a sturdy humanist sans for reading. Both are self-hosted from public/fonts, so there is no third-party request on first paint.

Tier 1 · Headings

--font-heading
General SansSemibold 600, always

Snowdon Towers Sample Structural

Foundry
Indian Type Foundry, via Fontshare
License
ITF Free Font License 2.0. Free for commercial use; self-hosting allowed. Not on Google Fonts.
File
GeneralSans-Variable.woff2
Axis
Weight 200–700, roman and italic
Sets
Page titles, section headings, card and list titles

Tiers 2 and 3 · Everything else

--font-sans
AsapRegular 400 to read, Medium 500 and Semibold 600 for controls

Send from Revit places the detail on the active sheet at its saved scale.

Foundry
Omnibus-Type, OFL
License
SIL Open Font License 1.1. Free to use, embed and self-host; the license text ships beside the files.
File
Asap-Variable.woff2
Axis
Weight 400–700, roman and italic
Sets
Body copy, ledes, controls, labels, metadata and figures

Type scale by role

Pick a style by what the text does, not by how big it should look. The classes live in src/styles/global.css; Display and Title step down below 768px so their line heights stay on the grid.

RoleSampleSize / lineWeightUse
Display.type-displayRook Library56/64 · 40/48 below 768px600 · -0.03emLanding heroes only
Title.type-titleRelease notes40/48 · 32/40 below 768px600 · -0.03emOne per page: the h1
Section.type-sectionRecent imports22/32600 · -0.02emSection headings
Item.type-itemBeam to column connection16/24600 · -0.01emCard and list titles
Lede.type-ledeEvery detail, family and project your office has drawn.18/32400 · 0The paragraph under a title
Body.text-baseSend from Revit places the detail on the active sheet at its saved scale.16/24400 · 0Reading text
UI.text-smSend to Revit14/24600 · 0Buttons, tabs, segmented items
Meta.type-metaS-600 · 3" = 1'-0" · v2.3.113/16500 · 0, tabular figuresCounts, dates, sheet numbers
Label.type-labelRecently added12/16 capitals600 · 0.08emSmall labels above titles, table headers

Rules

A short list, because the scale does most of the work.

01

Headings are always 600

General Sans has one job and one weight. Hierarchy comes from size and space, never from a lighter or heavier cut.

Level 3 framing600 · yes
Level 3 framing400 · no

02

Nothing above 700

Both variable axes stop at 700. Ask for more and the browser fakes it. In practice Asap runs 400 to 600.

Rook400
Rook500
Rook600
Rook700 · ceiling

03

Figures are tabular in metadata

Sheet numbers, scales, versions and dates line up in a column, so an engineer can scan them like a drawing index.

  • Beam to column connection

    S-600 · 3" = 1'-0" · v2.3.1

  • Typical slab edge

    S-511 · 1" = 1'-0" · v1.10.0

  • Moment frame base plate

    S-702 · 1½" = 1'-0" · v2.0.4

04

Sentence case; capitals only for labels

Titles, buttons and menu items are sentence case. Spaced capitals belong to 12px labels and nothing else.

Rook Lateral · 2.3.1

Faster wind load takedowns

Released Oct 2, 2026