6 min read
How to Choose Font Sizes and Line-Height in Web Typography?
A practical guide on setting font sizes, line spacing, and legibility rules for a fast, accessible website.

Proper web typography transforms a basic layout into a fluid and professional reading experience. When font sizes, line heights, and color contrasts are calculated precisely, users can digest your content effortlessly on any screen size. In this guide, I answer the most frequent technical questions regarding web typography setups.
What is the minimum recommended base font size for web?
The minimum recommended base font size (body text) for the web is 16px, but the modern standard leans towards 18px or even 20px for desktop screens. Any size below 16px forces the user to zoom in or strain their eyes, increasing the page bounce rate. When designing a presentation website, I use relative units like 1rem (equivalent to default 16px) and scale up to 1.125rem (18px) for long-form blog articles or text-heavy landing pages.
Smaller sizes (12px–14px) should be reserved strictly for secondary elements such as footnotes, form labels, or copyright notices in the footer. For headings, the ratio between body text and H1 should be at least 1:2.5 to establish a clear visual hierarchy.
How do I calculate line-height correctly for body text?
The optimal line spacing (line-height) for body copy should be between 1.4 and 1.6 times the font size. If you are using an 18px font size, a line-height multiplier of 1.5 equals a calculated row height of 27px, providing enough white space for the human eye to effortlessly jump to the next line.
Here are concrete rules based on content types:
- For paragraph body text (16px–20px): use a unitless value between
1.5and1.65. - For large headings (H1, H2 above 32px): reduce the line-height value to
1.1–1.25, as excessive spacing between heading lines fragments sentence cohesion. - For mobile viewports: slightly reduce line-height to
1.4–1.45to conserve valuable vertical screen real estate.
In professional graphic design workflows, fine-tuning line-height prevents ugly overlaps of ascenders and descenders on letters like p, q, b, and d.
How many characters per line are ideal for web readability?
The ideal measure for comfortable reading on the web is between 45 and 75 characters per line (including spaces), with 66 characters being the golden standard. Lines longer than 80–90 characters tire eye muscles because finding the beginning of the next line becomes challenging. Conversely, lines that are too short (under 35–40 characters) disrupt natural reading rhythm, forcing frequent scanning jumps.
When crafting a brand's visual identity on the web, I control line length using the CSS ch unit (representing the width of character "0"). Setting a CSS rule like max-width: 65ch on paragraph containers ensures text blocks maintain optimal legibility regardless of monitor size.
Why should I use rem and em units instead of pixels?
Using relative units such as rem and em instead of fixed pixels (px) is crucial for web accessibility and responsive scaling. Pixels are absolute values that ignore user browser preferences, particularly for visually impaired users who set custom default font sizes. If a visitor increases browser font defaults from 16px to 24px, a pixel-based site will remain tiny and unreadable.
The rem unit scales relative to the root HTML element, making site-wide adjustments predictable and uniform. The em unit scales relative to its direct parent element, ideal for padding, margins, and modular components. Adopting a rem-based typography system allows you to adjust the entire interface scale through a single media query breakpoint.
How do I check if text color contrast meets WCAG standards?
Text color contrast against background elements is verified using contrast ratios defined by Web Content Accessibility Guidelines (WCAG 2.1). The AA level standard requires a minimum contrast ratio of 4.5:1 for normal body text and 3:1 for large text (over 24px or 19px bold).
Follow these practical rules to ensure accessibility:
- Avoid light gray text (
#999999) on white backgrounds, as it yields a weak 2.8:1 contrast ratio that becomes unreadable in bright daylight. - Opt for dark charcoal shades (
#1A1A1Aor#222222) over pure black (#000000) on white backgrounds to reduce harsh eye strain from a 21:1 contrast ratio. - Review color palettes showcased in my portfolio using tools like WebAIM Contrast Checker prior to final code implementation.
Poor contrast alienates readers, reduces session duration, and hurts conversion rates significantly.
How many font families can I combine on a single website?
The golden rule of web design is to limit your layout to a maximum of two font families. Using three or more typefaces creates visual clutter, dilutes brand recognition, and severely impacts page loading speeds. Typically, the best combination pair consists of a distinct header typeface (Display or Serif) paired with a clean, highly legible body font (Sans-serif).
When executing a client project that includes logo creation services, I ensure selected web fonts match the brand's personality without sacrificing text clarity. In modern digital design, utilizing a single versatile variable font (with weight ranges from Light to ExtraBold) is often sufficient to establish dynamic visual hierarchy.
How does typographical hierarchy affect SEO and AI search performance?
A structured typographic hierarchy utilizing semantic HTML tags (H1, H2, H3, p) directly assists search engine web crawlers and AI search engines in understanding your content structure and relevance. Clear structural scaling, where heading sizes decrease logically, signals information priority to machine parsers.
The process of GEO / AEO / AIO optimization depends heavily on how cleanly AI algorithms parse page content. Using large font sizes on non-semantic tags (like generic divs or spans) instead of proper heading tags causes AI models to misinterpret primary topics. Furthermore, high readability lowers bounce rates, sending positive UX signals back to search engines.
How can I prevent custom web fonts from slowing down site speed?
To keep web fonts from reducing page performance, you must limit the number of font weights downloaded and adopt modern formats like WOFF2. Every extra weight variant adds an additional HTTP request and file download, delaying text rendering.
Implement these key technical optimization strategies:
- Self-host font files directly on your server rather than fetching third-party resources to eliminate external DNS lookups.
- Apply the CSS property
font-display: swap;to display system fonts immediately while custom fonts load in the background. - Restrict your font selection to 3–4 essential weights per typeface (e.g., Regular 400, Medium 500, Bold 700).
Schedule a consultation session via the contact page if you want to audit the typographic performance and technical health of your current website.
What's next?
Choosing proper font sizes, line heights, and typography scales is both a technical and artistic decision that directly impacts user engagement and site conversions. Well-executed web typography builds instant credibility and guides visitors seamlessly through your content.
If you need a complete design overhaul or legibility optimizations for your existing platform, explore my design services or send me a message. I will analyze your typography system and build a clear visual framework tailored perfectly for every screen size.