Basefox · Type study · 26 Aug 2026

Four type systems, same screens

Your read was right and it is structural: two of the three current faces are grotesques. Space Grotesk descends from Space Mono, and Barlow is built on California highway signage. Spline Sans Mono is the humanist one, and it is doing the smallest job. These are real builds, not mockups.

What is being compared

The app addresses type through three roles — display, body, mono — so a system swaps all three at once and no call site changes. Mono is identical in all four, which keeps the comparison about display and body.

SystemDisplay / bodyLaunch flag
CurrentSpace Grotesk / Barlow-type=current
Warm sansArchivo / Source Sans 3-type=warmSans
EditorialFraunces / Source Sans 3-type=editorial
HybridFraunces heroes / Archivo labels / Source Sans 3-type=hybrid

Hybrid did not exist when you asked. I added it after seeing Fraunces at label sizes: a serif carries character at 22pt and up, and gets busy below that. Hybrid uses Fraunces for hero-scale display only and Archivo underneath.

Detail: where the difference actually lives

Hero headline + blurb

Home · exchange card. The largest display type in the app, over the body face.

Current
Current — Hero headline + blurb
Warm sans
Warm sans — Hero headline + blurb
Editorial
Editorial — Hero headline + blurb
Hybrid
Hybrid — Hero headline + blurb

The wordmark

Home header. One word, seen every launch.

Current
Current — The wordmark
Warm sans
Warm sans — The wordmark
Editorial
Editorial — The wordmark
Hybrid
Hybrid — The wordmark

Section header

13pt display, uppercase, letterspaced. Where a serif gets busy.

Current
Current — Section header
Warm sans
Warm sans — Section header
Editorial
Editorial — Section header
Hybrid
Hybrid — Section header

Change-feed row

15pt display headline in a compact card — the smallest display size in use.

Current
Current — Change-feed row
Warm sans
Warm sans — Change-feed row
Editorial
Editorial — Change-feed row
Hybrid
Hybrid — Change-feed row

Board title

Brand board, large navigation title.

Current
Current — Board title
Warm sans
Warm sans — Board title
Editorial
Editorial — Board title
Hybrid
Hybrid — Board title

Route card

All three roles at once: display, body, and the unchanged mono readouts.

Current
Current — Route card
Warm sans
Warm sans — Route card
Editorial
Editorial — Route card
Hybrid
Hybrid — Route card

Full screens

Home

Current
Current — Home
Warm sans
Warm sans — Home
Editorial
Editorial — Home
Hybrid
Hybrid — Home

Brand board

Current
Current — Brand board
Warm sans
Warm sans — Brand board
Editorial
Editorial — Brand board
Hybrid
Hybrid — Brand board

My read

Current

Space Grotesk / Barlow

Competent and cool. Tight apertures, squarish bowls, a slightly technical air. Barlow is narrow and mechanical at 13–15pt, which is most of the pixels in this app.

Warm sans

Archivo / Source Sans 3

The safe improvement. Source Sans 3 is genuinely humanist and noticeably more open at body sizes. Archivo is warmer than Space Grotesk without changing the register. Lowest risk, least distinctive.

Editorial

Fraunces / Source Sans 3

Real character, and it matches the field-guide register the product is reaching for. It falls down at label sizes: serif small-caps section headers read heavy and dated, and the 15pt feed headline gets noisy.

Recommended

Hybrid

Fraunces heroes / Archivo labels / Source Sans 3

Takes the character and leaves the busyness. The wordmark and hero headlines get Fraunces; section headers, row titles, and feed headlines stay clean. The body face does the warming.

Why hybrid rather than editorial

Compare the section-header row above. Editorial sets SHOP BY CATEGORY in letterspaced serif caps, which reads like a 2012 restaurant menu. Hybrid sets the same label in Archivo and keeps Fraunces for the two places a serif earns its keep: the wordmark and the hero headline. One switch on point size does it, and that switch already exists for the width axis.

Three things to weigh before you pick

Cost of the change

Small, and reversible. TypeSystem.active selects a system; every candidate is built from variable fonts already bundled. Picking a winner means deleting the other cases and the fonts they use, which is a subtraction rather than a rewrite.

ItemDetail
New filesTheme/TypeSystem.swift, three .ttf files in Resources/Fonts/
ChangedTheme/Fonts.swift — role builders now switch on the active system
Call sites touchedNone. .display(), .bodyText(), .mono() are unchanged.
Bundle costArchivo 643KB, Source Sans 3 631KB, Fraunces 352KB. Dropping the losing faces recovers most of it.
LicenceAll three are SIL Open Font License, same as the current three.

Next

Tell me which one, and I will delete the other three cases, remove the unused font files, update the design-system section of basefox-spec-v03.md, and settle the sentence-case question at the same time. Then back to the card visuals.