Art branch · 2026-04-22

Decision
History.

This file archives the design alternatives we considered and rejected during the Cortex app brand art-direction phase. Nothing here is active spec — everything here lost to a better option. Preserved for portfolio reference, future audits, and the record of how the final decisions were reached. Active spec lives in app-brand-addendum.html v3.

Typography

Three directions were evaluated for the app body typeface system. Option B (DM Sans everywhere) was selected by the founder.

Winner — active spec

Option B: DM Sans everywhere. DM Sans carries brand identity from web into app; held up at 11pt on Retina after A/B review. The full spec is in §4 and §4b of app-brand-addendum.html.

Side-by-side comparison

SF Pro Text vs. DM Sans rendered at app type scale. The comparison was the decision artifact — seeing both families in context at 10–13pt.

Style SF Pro Text (system) DM Sans (brand)
rowTitle 13pt · 500 Always use guard let, not if let Always use guard let, not if let
rowDetail 12pt · 400 Procedural rule — added 3 days ago Procedural rule — added 3 days ago
metadata 11pt · 400 cortex/ · 2 days ago · 0.82 confidence cortex/ · 2 days ago · 0.82 confidence
sectionHeader 10pt · 700 · ALL CAPS Working Memory — 4 items Working Memory — 4 items
timestamp 11pt · 400 14 minutes ago 14 minutes ago
SF Pro Text

SF Pro Text is hinted specifically for macOS rendering at 11–13pt. At 1x density (non-Retina displays, Remote Desktop, screenshots), it holds its weight and spacing exactly. It inherits Dynamic Type, participates in accessibility size scaling automatically, and renders with zero additional infrastructure cost. The tradeoff is legibility-over-personality — SF is invisible by design. In a tool that surfaces in every Claude session, invisibility may be a feature rather than a bug.

DM Sans

DM Sans has stronger brand identity — its slightly round, geometric character distinguishes Cortex from every other macOS tool at a glance. At 13pt it reads cleanly. At 11pt, browser rendering of DM Sans is softer than SF, particularly at 1x display density where hinting matters most. The rendering gap closes on Retina. Requires bundling the font files (~90KB) and registering them in the app — the P0 infrastructure item that must land before any font-sensitive P1/P2 work begins.

Three directions evaluated

Considered — not selected
Option A
SF everywhere
Most Mac-native
Working Memory — 4 items
Always use guard let
cortex/ · 2 days ago
Zero font-bundle overhead. Integrates with Dynamic Type for free. Feels at home on macOS. Brand distinctiveness comes entirely from color system and Hedvig in display moments.
Chosen by founder
Option B — Active spec
DM Sans everywhere
Strongest brand
Working Memory — 4 items
Always use guard let
cortex/ · 2 days ago
Consistent brand voice across all text. DM Sans is already used for chips and headers — this unifies the system. Requires font bundle + registration (P0 in reskin table). At 11pt on 1x displays the rendering is softer than SF; on Retina it’s essentially equivalent.
Considered — not selected
Option C
Hybrid
DM Sans chrome, SF data rows
Working Memory — 4 items
Always use guard let
cortex/ · 2 days ago
DM Sans for section headers, filter chips, panel title, and buttons — the “chrome” layer. SF for data rows where rendering precision matters most. Gets 80% of brand distinctiveness at lower rendering risk. Still requires font bundle for DM Sans, but the blast radius of a bad 11pt rendering is contained to chrome, not content.

Why B won: Brand consistency across the full type system outweighs the 1x rendering risk — Cortex’s target user is almost exclusively on Retina MacBooks where the rendering gap closes. DM Sans was already doing real work (chips, section headers, onboarding); this locks it as the single body system instead of a split spec. Option C’s hybrid was the initial designer recommendation but introduced a two-typeface complexity that B avoids cleanly.