1. Limit Line Length (The Measure)
Text that spans the entire width of a wide monitor is exhausting to read. The eye has trouble tracking back to the start of the next line. Ideal line length is between 45 and 75 characters.
CSS Trick: Use the ch unit to constrain width.
p {
max-width: 65ch;
}
2. Fluid Typography with Clamp()
Instead of relying on media queries to change font-size incrementally, use CSS clamp() to make your headings scale smoothly between a minimum and maximum size based on viewport width.
h1 {
font-size: clamp(2rem, 5vw, 4rem);
}
3. Optimize Line Height
Headings need less line-height (leading) than body copy. As text gets larger, the visual gap between lines appears proportionally larger.
- Body text:
line-height: 1.5to1.7 - Headings:
line-height: 1.1to1.2
4. Tighter Tracking (Letter Spacing) on Headings
Large bold headings look cleaner and more cohesive when the letters are pulled slightly closer together.
h1, h2, h3 {
letter-spacing: -0.02em;
}
Conversely, very small text (like all-caps metadata or badges) benefits from increased letter spacing (0.05em) to improve legibility.
5. Text-Wrap: Balance for Headings
Nothing looks worse than a long heading that breaks leaving a single word on the second line (an orphan). Modern CSS has a property to automatically balance the lines of text so they are roughly equal in width.
h1, h2 {
text-wrap: balance;
}
6. Text-Wrap: Pretty for Body Copy
Similar to balance, the newer pretty value ensures that the last line of a paragraph doesn't end with a single orphaned word.
p {
text-wrap: pretty;
}
7. Use System Fonts for UI Elements
While custom fonts are great for marketing pages and headings, using system fonts for complex dashboards or dense data tables improves performance and feels native to the user's OS.
.ui-text {
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
Preview Fonts Instantly
Want to see how different Google Fonts affect your design? Open the LiveTheme Editor, open the Font tab, and instantly apply thousands of heading and body combinations to real templates without downloading files or writing CSS imports.