Building a complete typographic color system
A complete typographic color system for light mode contains five tiers. (1) Primary text: L10–15%, warm near-black — for headings, body text, and all primary content. (2) Secondary text: L40–50%, medium gray — for metadata, captions, supporting information. (3) Tertiary/disabled text: L65–70%, light gray — for placeholder text, disabled states, and de-emphasized UI strings (note: this fails WCAG for meaningful content and should only be used for truly non-essential text). (4) Inverse text: near-white, L92–97% — for text on dark backgrounds, banners, dark UI elements. (5) Link/interactive text: brand primary or blue-family, L30–45% on white — for links, with an underline or other non-color indicator. Each tier needs a defined hex value, a documented contrast ratio against its intended background, and a specified use case. Without this specification, designers will make inconsistent tier choices, eroding visual hierarchy across the product.
