Pairing
A pairing is two typefaces with different jobs. Most bad pairings fail in the same direction — not by clashing, but by being so alike that the reader sees a mistake instead of a decision.
Pick a display face and a body face. The bench grades the pairing on four contrasts and says why. It is allowed to tell you the pairing is bad, and for most pairs of similar faces it will.
The weekend edition
Printed early, read slowly. The headline above and this paragraph are the two jobs a pairing has to hold apart: one voice that stops you, and one that keeps you moving. If they blur into each other, the page has one voice doing neither job.
workable
The class contrast carries it, but the x-heights are far enough apart that the two faces will need separate size adjustments to look the same size — set them optically, not numerically.
- class
- transitional serif × grotesque ✓
- x-height
- 0.475 vs 0.526 — apart
- width
- measuring…
- era
- ~150 years apart ✓
What the bench is actually measuring
Class is the first check because it is the strongest signal a reader gets. A serif against a sans is legible as a decision from across the room; two grotesques distinguishable only by the tail of the lowercase l are legible as a production error. X-height matters because two faces sharing a line should agree about how big the lowercase is — when they disagree, one face reads as larger even at identical point sizes, and every mixed line needs manual correction.
Width is measured live, in your browser, at weight 400 — not taken from the font files' metadata. The files ship with different default weights, from thin to extra-bold, and comparing widths across those defaults would really be comparing weights. Era is the softest of the four: faces drawn two centuries apart bring different assumptions about contrast and proportion, and that difference reads as texture even when the reader cannot name it.
Why the bench is allowed to say no
Set the display face and the body face to Inter and Public Sans and read the verdict. The bench calls it a mistake, and it is right: they are both screen-era sans faces with nearly identical x-heights, and no reader on earth will perceive them as two voices. A tool that praised that pairing to be encouraging would be useless precisely when you needed it, which is the moment you cannot see the problem yourself.
The bench also refuses the flattering myth that pairing is mostly taste. Taste picks between good options. The floor under taste is mechanical: enough contrast to read as intent, enough metric agreement to share a page. Every combination that fails those two tests fails for every audience, in every context, no matter how fashionable both faces are this year.
The pairing this site chose
Atelier runs Source Serif 4 for reading against Recursive for the interface, and the bench's own criteria explain why. Different classes: a transitional serif and a sans. Different jobs: paragraphs against labels, sliders and readouts. Close x-heights, so a caption can sit beside a serif line without a size correction. And one deliberate cheat: Recursive's MONO axis lets the interface voice become a monospace for numerals without loading a third family, which is why every readout on this page keeps its digits in a fixed rhythm as you drag.
Pair for contrast of job, not beauty of face. If you cannot tell the two apart at a glance, the reader cannot either.