Font pairing: the four rules, and a bench to break them on
Font pairing has one working principle and three consequences of it. Two faces sit together when they share a skeleton and disagree about everything built on top of it. The bench below sets a pair at any size, leading and tracking, so the argument can be settled by looking rather than by reading advice.
Fig. 02Two sheets, one light source. A pairing is judged where they overlap, not side by side.
The pairing bench
Fig. 01 · specimenHandgloves rubbed down
A pairing works when the two faces share a skeleton and disagree about everything else: width, contrast, and the shape of the counters. Set them at the sizes you will actually use, not at the size that flatters them.
Fig. 1 · Righteous, Kumbh Sans and Syne Mono are served by this site and render the same for every reader. The remaining faces are read off your own machine, so their shapes, and therefore the spacing decisions you make against them, shift by system. That difference is the point of the exercise rather than a defect in it.
The one principle
Two faces sit together when they share a skeleton and disagree about everything built on top of it. Skeleton means the underlying proportions: how tall the lowercase is against the capitals, how wide the round letters are, where the axis of the o points. Everything on top of the skeleton (weight, contrast, serif, width, texture) is where the difference should live.
Faces that share both skeleton and surface look like a mistake, as though one of the two failed to load. Faces that share neither look like two documents that collided. The interesting pairings sit exactly between those two failures.
Rule one: match the x-height, not the point size
Two faces set at the same point size are almost never the same visual size. The x-height is what a reader perceives as size, and it varies enormously between families. Righteous, the display face on this site, has an x-height of 75.1 % of its cap height. Kumbh Sans, the text face directly under it, sits at 66.7 %. Both figures are read out of the font files this page serves, at a 216 pixel setting.
The practical consequence: when a heading face has a much larger x-height than the text face, the heading has to be set smaller than instinct suggests, or it will overpower a page it is only supposed to introduce. Move the size slider on the bench and watch the point at which the relationship tips.
Rule two: put the difference in width and contrast
Width and stroke contrast are the two axes a reader notices immediately and consciously. Pairing a condensed display face with a normal-width text face gives an obvious, legible difference without touching the skeleton. Pairing a high-contrast face with a low-contrast one does the same thing through texture instead of shape.
What does not work is a small difference on many axes at once. Two faces that are slightly different in width, slightly different in contrast and slightly different in weight read as one face rendering badly. Make one difference large and hold the rest still.
Rule three: test at the real size, in the real amount
Every pairing looks good as two words on a white field. The test is a heading of the length headings actually reach, over the amount of body copy that will actually sit under it. The bench above defaults to a phrase long enough to wrap, for that reason.
This is also where a display face is caught. A face drawn for forty-eight point will often have joins and counters that close up entirely at eighteen, and eighteen point, not forty-eight, is where most subheadings live.
Rule four: leading and tracking belong to the pair, not to the face
Leading is set by the line length and the x-height together, not by the face on its own. A face with a large x-height fills its line more and needs more space between lines to stay open. A long measure needs more leading than a short one at the same size, because the eye has further to travel back.
Tracking works the other way round as size increases. A display face set very large almost always wants negative tracking; the same face at text size almost always wants none. That relationship is visible on the bench by moving size and tracking together and watching where the word stops looking loose and starts looking tight.
Three pairings that hold, and why
Geometric display over neutral sans
Righteous over Kumbh Sans, which is what this site uses. The skeleton is shared (both are geometric, both have wide round letters) and the disagreement is entirely in weight and personality. The x-height gap of about eight percentage points means the display face has to be set relatively small, and the proportions of every heading on this site were chosen against that constraint.
High-contrast serif over humanist sans
The classic editorial pairing. The serif carries the voice, the sans carries the reading, and the contrast difference is large enough that no reader ever confuses the two roles. It fails when the serif is set below the size its hairlines survive.
One family, two widths
The least fashionable answer and frequently the best one. A family with a genuine condensed axis gives a heading and a text setting that cannot clash, because they are the same drawing. It costs one font file instead of two, which on a page measured for speed is not a small consideration.
When a pairing is wrong
Three symptoms, all visible on the bench. The heading and the body look like the same size even though they are not: the x-heights are too close. The page feels busy at a glance but nothing stands out: the differences are spread across too many axes. The heading looks like it belongs to a different document: the skeletons disagree, usually in the width of the round letters.
The fix for all three is the same: take away one of the differences and make another one larger.
Measured on this site
- Righteous x/cap75.1 %
- Kumbh Sans x/cap66.7 %
- Syne Mono x/cap76.9 %
- Set at216 px
Questions about pairing
QueriesHow many typefaces should a design use?
Two families, with a third only when a monospaced face is needed for data or code. Hierarchy comes from size, weight and space inside a family far more reliably than from adding families, and a variable font supplies all three from one file.
Is it safe to pair two sans-serif faces?
Yes, provided the difference is large and lives on one axis. A condensed grotesque over a normal humanist sans works. Two neutral geometric sans faces of similar width do not, because there is nothing for the reader to notice except the inconsistency.
Why do the faces on the bench render differently on my machine?
Three of them (Righteous, Kumbh Sans and Syne Mono) are served by this site and render identically everywhere. The rest are read from fonts already installed on your own system, so their shapes and metrics vary by operating system. That is exactly what a fallback stack does on a real site, which is why they are included rather than hidden.
Does font pairing matter for accessibility?
Indirectly but significantly. A pairing that relies on a small size difference forces readers to work out the hierarchy from context, and a display face used below its intended size loses the open counters that make letters distinguishable. Both cost most for the readers who already have the least margin.
Read next
TransfersBest fonts for graphic designers
Forty-one faces grouped by the job they do, each with its class, its designer and the licence you actually get.
No. 190Type & TypefacesType in practice
Body size, ratio, leading and measure: how the decisions on paper become a scale a real page can hold.
No. 331GlossaryTypography glossary
Around seventy working terms, grouped by what they describe and defined by what each one changes.