What makes a good pairing
The classic rule is contrast with harmony. The heading and body should differ enough to create clear hierarchy — a distinctive display face against a quiet, highly readable text face — but share underlying proportions so they feel like they belong together. Pairing two attention-seeking fonts, or two nearly identical ones, both fail.
Serif heading, sans body — and vice versa
A serif heading over a sans-serif body reads as editorial and trustworthy. A sans-serif heading over a serif body feels modern with a readable, traditional text block. Matched superfamilies (like DM Serif Display + DM Sans) are the safest bet — they were literally designed to work together.
About the fonts
Every font here is from Google Fonts, free for commercial use under open licences. The previews load the actual fonts, so what you see is exactly what ships.