Developer

Font Pairing Tool

Preview a heading and body pairing from 20 Google Fonts on sample text, with body size and dark/light background options.

Loading interactive tool…

Embed this tool on your site

About this tool

The Font Pairing Previewer renders a heading font and a body font together on sample text so you can judge a combination before using it. Choose each from the same list of 20 popular Google Fonts, including Inter, Roboto, Montserrat, Poppins, Playfair Display, Lora, Merriweather and Cormorant Garamond. The heading font styles a sample headline and subheading; the body font styles a paragraph at 14, 16, 18 or 20 px. A Theme selector switches the preview between a dark and a light background. Fonts load from the Google Fonts CDN in weights 400, 600 and 700 when you select them. Under the sample text, a code box lists the font-family declarations for the current pair plus the body font-size, ready to select and copy into a stylesheet.

Why use it

  • Live preview renders actual Google Fonts, not a screenshot or static mockup, so kerning and rendering match the browser.

  • Mix any two of 20 popular serif, sans-serif and display fonts in seconds.

  • Check the pair on both a dark and a light background before committing.

  • The code box shows the font-family declarations for whatever pair is on screen.

How to use

  1. Pick a heading font from the Heading font dropdown (Playfair Display is selected by default).
  2. Pick a body font from the Body font dropdown (Inter by default).
  3. Set the Body size to 14px, 16px, 18px or 20px.
  4. Switch the Theme between dark and light to check the pair on both backgrounds.
  5. Select the font-family lines in the code box under the sample text and copy them into your CSS.

When it helps

  • Choosing typography for a new web project or redesign before committing in Figma.
  • Evaluating font pairing options quickly without setting up a full design file or sandbox.
  • Finding a readable body font to pair with a distinctive display font.
  • Comparing serif vs sans-serif body options at the same heading font.

Examples

Default pair

Input
Heading font: Playfair Display / Body font: Inter / Body size: 16px
Expected result
/* Heading */
font-family: "Playfair Display", serif;

/* Body */
font-family: "Inter", sans-serif;
font-size: 16px;

Sans heading, serif body

Input
Heading font: Montserrat / Body font: Merriweather / Body size: 18px
Expected result
/* Heading */
font-family: "Montserrat", serif;

/* Body */
font-family: "Merriweather", sans-serif;
font-size: 18px;

Two-serif pair

Input
Heading font: Cormorant Garamond / Body font: Lora / Body size: 16px
Expected result
/* Heading */
font-family: "Cormorant Garamond", serif;

/* Body */
font-family: "Lora", sans-serif;
font-size: 16px;

Tips

  • Pair contrasting moods: a serif heading with a sans-serif body usually reads as classic + clean.
  • Limit yourself to two or at most three fonts per project — more leads to visual chaos.
  • Choose body fonts with strong x-height for screen reading — Source Sans Pro, Merriweather, and Inter are reliable defaults.
  • Match weights carefully: a thin display heading needs a body with at least one heavier weight to balance hierarchy.
  • Test at the smallest body size you will ship (often 14-16px) — many fonts that shine at 24px feel mushy at 14.
  • Self-host fonts in production for performance and privacy; download the files from Google Fonts or google-webfonts-helper.

Frequently Asked Questions

Do I need to self-host these fonts?
The previewer loads fonts directly from the Google Fonts CDN. For production you can add a Google Fonts link or @import yourself (the tool does not generate one), or download and self-host the files for privacy and performance.
Are all Google Fonts available?
No. Both dropdowns offer the same 20 families: Inter, Roboto, Open Sans, Lato, Montserrat, Source Sans Pro, Nunito, Raleway, Poppins, Oswald, Merriweather, Playfair Display, Lora, PT Serif, Crimson Text, Libre Baskerville, Cormorant Garamond, DM Serif Display, Abril Fatface and Josefin Sans.
What makes a good font pairing?
Good pairings typically combine fonts with similar visual weight but contrasting styles — for example, a geometric sans-serif heading with a humanist serif body. Avoid pairing fonts that are too similar (confusing) or too different (incoherent).
Can I use variable fonts?
The previewer requests weights 400, 600 and 700 of each family and has no weight or variable-axis controls. Check the Google Fonts page of a family to see whether it ships as a variable font.
What CSS does the tool give me?
Only font-family declarations for the heading and body fonts plus the body font-size, shown in the code box under the sample. Add the matching Google Fonts link or @import (or self-hosted @font-face rules) so the fonts actually load on your site.
Why does the heading declaration always end in serif?
The tool appends a fixed fallback: serif after the heading font and sans-serif after the body font, whatever you pick. Change the fallback to match the font category when you copy it, for example sans-serif after Montserrat.
Can I change the heading size?
No. The headline scales with the window width (about 22 to 36 px) and the subheading with it; only the body paragraph has a size control.

Explore the category

Glossary

Typeface
The design of a set of letterforms (e.g. Helvetica). A typeface family includes all weights, styles, and widths of that design.
Font
A specific instance of a typeface — e.g. Helvetica Bold 16pt is a font; Helvetica is the typeface family.
Serif
Typefaces with small projecting features (serifs) at the ends of strokes. Often associated with editorial and academic settings.
Sans-serif
Typefaces without serifs. Generally cleaner on screen at small sizes; common for UI and modern marketing.
x-height
The height of lowercase letters (specifically 'x'), excluding ascenders and descenders. Higher x-heights generally read better on screen.
Variable font
A single font file containing multiple weights, widths, or styles along continuous axes. Smaller download than multiple static fonts.
Pairing
Two or more typefaces used together in a design. Successful pairings balance contrast (serif/sans, display/body) with harmony (similar x-height, mood).
@import / @font-face
CSS rules to load external fonts. @import links to a hosted CSS file (e.g. Google Fonts URL); @font-face declares a custom font from your own files.
A LITTLE HELP. A LOT DONE.
Good tools.
Great flow.

Your shortcut to the everyday. Create, convert, calculate,
and get back to what you love.

✓ Free to use✓ No sign-up✓ 500+ possibilities