How to Pair Fonts: 7 Rules That Actually Work
A practical, no-nonsense guide to combining typefaces: contrast, superfamilies, x-height, weights and how many fonts to use — with live Google Fonts examples.
Font pairing has a reputation for being mysterious, but most good combinations follow a handful of simple principles. Whether you are designing a portfolio, a SaaS landing page or a recipe blog, the same rules apply: create clear contrast, keep a shared underlying structure, and limit yourself to as few families as possible.
Below are the seven rules we use when building pairings in the fontombo lab, each with a live example you can open and tweak.
1. Give each font a clear job
The most common mistake is choosing two fonts that both want attention. Decide up front which typeface is the voice (headings, hero text, logo) and which is the workhorse (paragraphs, navigation, buttons). The voice can be expressive; the workhorse must be invisible at 16px across hundreds of words.
Here Playfair Display carries the personality with its sharp contrast between thick and thin strokes, while Source Sans 3 quietly handles the reading.
2. Contrast structure, not just style
Pairing a serif with a sans serif is the classic move because the two differ in structure — one has stroke endings, the other doesn't. But contrast can also come from width (condensed vs. wide), weight (black vs. regular) or construction (geometric circles vs. humanist, calligraphic strokes). If two fonts are similar but not identical — say, two geometric sans serifs — the result usually looks like a mistake rather than a decision.
3. Match the x-height and proportions
While structure should differ, proportion should agree. The x-height (the height of lowercase letters like “x” and “a”) affects how big a font looks at the same point size. Pairing a font with a very small x-height next to one with a very large x-height makes text sizes feel inconsistent, especially when they appear on the same line, such as a bold serif lead-in followed by sans body copy.
A quick test: set both fonts at the same size side by side in the tool and look at the lowercase letters. If one looks noticeably larger, either choose a different partner or adjust sizes to compensate.
4. When in doubt, use a superfamily
Superfamilies are type systems designed with matching serif and sans (and sometimes mono) versions. Because they share skeletons, spacing and vertical metrics, they pair effortlessly. Google Fonts has several excellent ones: IBM Plex, PT, Roboto and Roboto Slab, DM Serif and DM Sans, and Source Serif and Source Sans.
5. Two fonts is usually enough — three at most
Every extra family adds visual noise and page weight. A well-chosen family with four or more weights can produce headings, subheadings, captions and buttons on its own. Add a third font only when it has a distinct role, such as a monospace for code samples or a handwritten accent for short annotations. In the tool, you can switch any combination between two and three fonts with one checkbox to see whether the third font is earning its place.
6. Pick the body font first
It sounds backwards, but readers spend far more time with your body text than your headings. Start with a highly legible text face that has generous weights and italics, then search for a heading font that complements it. Good body candidates on Google Fonts include Inter, Source Serif 4, Lora, Merriweather and Open Sans.
7. Test with real content, in context
A pairing that looks great in a specimen can fall apart in a real layout. Test with your actual headlines — long ones, short ones, ones with numbers — and look at it on a phone. That is why the tool has a “My text” mode: paste your real copy and compare several combinations side by side, in light and dark backgrounds.
A quick checklist
- Does each font have a clear, separate job?
- Is the contrast obvious at a glance?
- Do the lowercase letters look similar in size?
- Does the body font have regular, bold and italic?
- Have you tested it with real content on a small screen?
Ready to try it? Open the pairing tool or browse hundreds of ready-made pairings.