Skip to main content
Calcimator

Font Pairing Calculator

Compatibility score for heading and body pairings.

About this calculator

This calculator scores a heading-and-body font pairing across two opposing forces: contrast, where difference between the two fonts is good, and harmony, where similarity is good. On the contrast side, it compares each font's classification (serif, sans, slab, display, or mono, rated 1–5) and rewards pairs that are clearly distinct — identical classifications score a weak 30, while a two-step-or-greater difference scores 80+ — and it separately rewards a bolder heading than body, since a heading roughly matching or falling below body weight scores poorly. On the harmony side, it compares x-height proportion and stroke contrast (how much a typeface's strokes vary in thickness, from monolinear faces like Futura to high-contrast faces like Bodoni) and rewards closeness: every step of difference in x-height costs 30 points, every step of stroke-contrast difference costs 25.

The overall compatibility score blends these as a weighted average — 30% classification, 20% weight contrast, 30% x-height match, 20% stroke match — reflecting the idea that classification difference and x-height similarity matter most to a pairing feeling deliberate rather than accidental. This is a heuristic model built on typographic conventions, not a measurement of any real typeface: you supply the 1–5 ratings yourself based on how you'd characterize the actual fonts, so the output is only as good as your own assessment of their properties. It's best used as a sanity check against a pairing you're already considering, or to compare a few candidate pairings against each other, rather than as a definitive verdict on any single combination.

Inputs

Results

Overall compatibility

80/100

Contrast score70/100
Harmony score88/100
Classification fit65/100
Weight contrast75/100
x-height match100/100
How to Use This Calculator
  1. Enter Heading classification (1–5), Body classification (1–5), and Heading x-height (1–5).
  2. Set Body x-height (1–5), Heading stroke contrast (1–5), and Body stroke contrast (1–5).
  3. Adjust Heading weight (1–5), Body weight (1–5) as needed.
  4. Review the Overall compatibility (/100) result.
  5. Use Contrast score (/100) and Harmony score (/100) to inform your decision.

What each input means

Heading classification (1–5)
Heading font class: 1=Serif, 2=Sans-serif, 3=Slab serif, 4=Display/script, 5=Monospace.
Body classification (1–5)
Body font class: 1=Serif, 2=Sans-serif, 3=Slab serif, 4=Display/script, 5=Monospace.
Heading x-height (1–5)
Heading x-height proportion: 1=Very small (Didot), 3=Medium (Garamond), 5=Very large (Verdana).
Body x-height (1–5)
Body x-height proportion on the same 1–5 scale.
Heading stroke contrast (1–5)
Stroke variation: 1=Monolinear (Futura), 3=Moderate, 5=High contrast (Bodoni).
Body stroke contrast (1–5)
Body font stroke contrast on the same 1–5 scale.
Heading weight (1–5)
Heading weight: 1=Thin, 2=Light, 3=Regular, 4=Bold, 5=Black.
Body weight (1–5)
Body weight: 1=Thin, 2=Light, 3=Regular, 4=Bold, 5=Black.

What each result means

Overall compatibility
Weighted score: 80+ = Excellent pairing, 60–79 = Good, 40–59 = Fair, <40 = Poor.
Contrast score
How well the pair creates visual differentiation between heading and body.
Harmony score
How well the pair's shared characteristics create visual cohesion.
Classification fit
Score for classification pairing (e.g. serif + sans = strong contrast).
Weight contrast
Score for weight differentiation — headings should generally be bolder.
x-height match
How similar the x-height proportions are — closer is more harmonious.

How this is calculated

Worked example, using the default values

  1. Identify Input Parameters
    4 parameters
    Heading classification (1–5) = 2, Body classification (1–5) = 1, Heading x-height (1–5) = 3, Body x-height (1–5) = 3 = 8 input(s) provided
  2. Calculate Overall compatibility
    Overall compatibility = min(100
    80 = 80
  3. Calculate Contrast score
    Contrast score = min(100
    70 = 70
  4. Calculate Harmony score
    Harmony score = min(100
    88 = 88

Engine last updated . Checked against 3 independently-derived tests — how we verify calculators. Built by Paul Gunder, a software engineer, not a licensed financial, medical, or legal professional.

Frequently Asked Questions

Why does pairing two fonts from the same classification score so poorly?

A zero-step classification difference (both serif, or both sans, for example) scores only 30 out of 100 on that dimension, while a one-step difference jumps to 65 and a two-step-or-greater difference scores 80 or above. The model treats classification contrast as one of the clearest signals of a deliberate pairing, since two fonts from the same family can look like a mistake — as if you forgot to change the heading font — rather than a considered choice.

Does my heading font always need to be bolder than my body font?

The calculator rewards it: a positive weight difference (heading heavier than body) scores up to 100 as the gap widens, while a heading at or below body weight scores well under 50. This reflects a common typographic convention that headings should visually outweigh body text to establish hierarchy, but it's a scoring heuristic, not a hard rule — you can still get a usable pairing with a lighter heading if other dimensions compensate.

What's the actual difference between the 'contrast score' and 'harmony score' outputs?

Contrast score is the average of the classification score and weight contrast score — it measures how clearly differentiated your heading and body fonts are. Harmony score is the average of the x-height match score and stroke match score — it measures how visually cohesive the two fonts feel together. The overall compatibility score then blends all four underlying scores with different weights (30/20/30/20) rather than simply averaging the two summary scores.

How accurate is this if I'm just guessing the 1–5 ratings for my fonts?

As accurate as your guesses are — this calculator doesn't measure any real typeface file, it only does arithmetic on the classification, x-height, stroke-contrast, and weight numbers you supply. If you rate a font's x-height or stroke contrast incorrectly relative to its actual design, the score will be misleading in exactly the direction your input error points, so it's most useful as a relative comparison between a few candidate pairings you already have in mind rather than an absolute verdict.

The questions that sit next to this one — chosen by subject, including calculators filed under a different category.

More in Creative, Media & Design.