Choose and implement web typography avoiding common rendering, pairing, and hierarchy mistakes.
Scanned 9/6/2026
Install to Claude Code
npx -y skills add clawic/skills --skill fonts --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Fonts?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/clawic-fonts)More formats (shields.io, HTML) on the badges page.
---
name: Fonts
slug: fonts
version: 1.0.0
description: Choose and implement web typography avoiding common rendering, pairing, and hierarchy mistakes.
homepage: https://clawic.com/skills/fonts
metadata:
clawdbot:
emoji: 🅰️
requires: {}
os:
- linux
- darwin
- win32
displayName: 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
```css
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
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!