fonts

Verified·Scanned 2/18/2026

Choose and implement web typography avoiding common rendering, pairing, and hierarchy mistakes.

from clawhub.ai·v5000209·3.4 KB·0 installs
Scanned from 1.0.0 at 5000209 · Transparency log ↗
$ vett add clawhub.ai/ivangdavila/fonts

Display vs Text Fonts

  • Display fonts (Abril Fatface, Bebas Neue, Lobster) are for headings 24px+ only—using them for body text destroys readability
  • If a font looks decorative or has extreme thick/thin contrast, it's display—not for paragraphs
  • Text fonts (Inter, Roboto, Georgia) are designed for 12-18px—use these for body copy

Pairing Traps

  • Two fonts too similar look like a mistake—if you can't tell them apart instantly, use one font
  • Contrast in category works: serif heading + sans-serif body, or different weights of same family
  • Two decorative fonts clash—never pair Lobster with Pacifico
  • Safe pairs: same superfamily (Roboto + Roboto Slab) or proven combos (Playfair Display + Source Sans Pro)

Weight and Rendering

  • Thin weights (100-300) render poorly on Windows—avoid for body text, use 400+ for cross-platform
  • Light fonts on dark backgrounds look thinner—bump weight up one level for dark mode
  • Faux bold (browser-generated) looks wrong—only use weights the font actually includes
  • Check font has italic—faux italic (slanted roman) is noticeably worse than true italic

Line Height and Length

  • Body text needs 1.4-1.6 line-height—1.0 or 1.2 makes paragraphs unreadable walls
  • Headings need tighter line-height (1.1-1.3)—large text with 1.5 line-height has awkward gaps
  • Line length 45-75 characters max—wider than 75 chars causes readers to lose their place
  • Set max-width on text containers in ch units: max-width: 65ch

All Caps

  • ALL CAPS needs increased letter-spacing—without it, letters collide and look cramped
  • text-transform: uppercase + letter-spacing: 0.05em minimum
  • Never use all caps for more than a few words—extended caps text is significantly harder to read
  • Small caps (font-variant: small-caps) only if font supports it—faux small caps look amateurish

Widows and Orphans

  • Single word alone on last line of paragraph looks broken—adjust text or container width
  • text-wrap: balance (CSS) distributes lines more evenly in headings
  • text-wrap: pretty for body text—prevents orphans in browsers that support it
  • Manual fix: non-breaking space ( ) between last two words

Loading and Performance

  • font-display: swap prevents invisible text—without it, text is blank until font loads
  • Subset fonts to characters you need—Latin-only saves 60%+ over full Unicode
  • WOFF2 is the only format you need—universal support, best compression
  • Preload critical fonts: <link rel="preload" href="font.woff2" as="font" crossorigin>

System Font Stack

font-family: system-ui, -apple-system, BlinkMacSystemFont, 
  'Segoe UI', Roboto, sans-serif;
  • Zero load time, native look per platform—use for UI-heavy apps
  • system-ui is now widely supported—simpler than listing all fallbacks
  • Always end with generic fallback (sans-serif, serif, monospace)

Hierarchy Mistakes

  • Using too many font sizes—stick to a type scale (1.25 or 1.333 ratio), not random sizes
  • Headings not distinct enough from body—skip at least one scale step between h1 and body
  • Overusing bold—if everything is emphasized, nothing is emphasized
  • Color as only differentiator—size and weight should establish hierarchy before color