Improve typography by fixing font choices, hierarchy, sizing, weight consistency, and readability. Makes text feel intentional and polished.
Assess and improve typography that feels generic, inconsistent, or poorly structured — turning default-looking text into intentional, well-crafted type.
Use the frontend-design skill — it contains design principles, anti-patterns, and the Context Gathering Protocol. Follow the protocol before proceeding — if no design context exists yet, you MUST run teach-impeccable first.
Analyze what's weak or generic about the current type:
Font choices:
Hierarchy:
Sizing & scale:
rem scales for app UIs; fluid clamp() for marketing/content page headings)Readability:
Consistency:
CRITICAL: The goal isn't to make text "fancier" — it's to make it clearer, more readable, and more intentional. Good typography is invisible; bad typography is distracting.
Consult the typography reference from the frontend-design skill for detailed guidance on scales, pairing, and loading strategies.
Create a systematic plan:
If fonts need replacing:
font-display: swap, metric-matched fallbacks)Build a clear type scale:
rem-based type scale, optionally adjusted at 1-2 breakpoints. Fluid sizing undermines the spatial predictability that dense, container-based layouts needclamp(min, preferred, max) for headings and display text. Keep body text fixedmax-width on text containers using ch units (max-width: 65ch)tabular-nums for data tables and numbers that should alignletter-spacing: slightly open for small caps and uppercase, default or tight for large display text--text-body, --text-heading), not value names (--font-16)font-kerning: normal and consider OpenType features where appropriateNEVER:
user-scalable=no)px for font sizes — use rem to respect user settingsRemember: Typography is the foundation of interface design — it carries the majority of information. Getting it right is the highest-leverage improvement you can make.