Skip to main content

Font Pairing Tool

Curated heading and body Google Font pairings with usage notes for each combination.

Written by Golam Rabbani, Founder & Lead Engineer

How to use this font pairing tool

  1. Choose a pairing category in the dropdown: editorial (serif+sans), whitepaper (sans+serif), magazine (serif+serif), SaaS (sans+sans), brand (display+sans), or developer (mono+sans).
  2. Press Show pairings to render the curated list.
  3. Read each pairing — heading font, body font, and a short note on when to use it.
  4. Copy the list as plain text for design specs or hand-off documents.
  5. Reset to clear the filter and start again.

About this font pairing tool

The font pairing tool surfaces a hand-curated catalogue of heading + body combinations drawn from the free Google Fonts library. Pairings are grouped by usage category so you can filter for the situation you are in: editorial reading, SaaS marketing, developer brands, magazine layouts, and so on. Each pairing comes with a short note explaining why the heading and body fonts work together — for example, "high-contrast serif headlines over a neutral sans for long-form reading."

Worked example: filtering by SaaS / minimal returns suggestions like Poppins for headings + Inter for body ("rounded geometric headlines over a UI sans — most SaaS landing pages") and Manrope + Inter ("modern geometric sans with neutral body — product marketing"). Pasting those names into your stylesheet (via the Google Fonts <link> tag or a self-hosted file) gives you the same combination the curated note describes.

The pairings table is bundled in lib/data/fontPairings.ts. No network call is made — the tool just helps you pick names, then you load them in your own project.

FAQ

Where do the font pairings come from?
They are a hand-curated set focused on the free Google Fonts library. The list lives in lib/data/fontPairings.ts and is committed to the repo.
Why is the tool restricted to Google Fonts?
Google Fonts is free, ubiquitous, and self-hostable. Limiting to that catalogue means every pairing the tool suggests is reachable for hobby projects and commercial sites alike.
Does the tool load the fonts to preview them?
No. It only returns the names so you can load them yourself in your stylesheet. That keeps the tool offline and INP-friendly.
How were the pairings chosen?
They follow the standard editorial pairing principles: contrast in form (serif + sans), or unity in family (sans + sans of the same designer), and they avoid weight clashes.
Can I propose new pairings?
Yes — the source list at lib/data/fontPairings.ts is a flat array. Edit it and PR your additions.