Playfair Display + Lora

Grumpy wizards make toxic brew

The five boxing wizards jump quickly over the lazy dog, mixing jugs of quiet vodka while the jury watches. Click anywhere in this preview and type your own text to try the pairing.

Playfair Display 700 / Lora 400 — click the text to edit

Why it works

A rare serif-on-serif pairing that works because the two faces sit at opposite ends of the contrast spectrum: Playfair Display's crisp Didone hairlines command attention, while Lora's low-contrast, brush-influenced strokes are built for paragraph endurance. Both carry a literary, slightly romantic sensibility, giving the whole page the feel of a well-set magazine. Keep Playfair large and Lora at text sizes and the hierarchy never wavers.

More about each face: Playfair Display · Lora

Use this pairing

HTML — Google Fonts embed
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700&family=Lora:wght@400;600&display=swap" rel="stylesheet">
CSS
h1, h2, h3 {
  font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
  font-weight: 700;
}

body {
  font-family: 'Lora', Georgia, 'Times New Roman', serif;
  font-weight: 400;
}
Next.js — next/font
import { Playfair_Display, Lora } from "next/font/google";

const heading = Playfair_Display({
  subsets: ["latin"],
  weight: "700",
  variable: "--font-heading",
});

const body = Lora({
  subsets: ["latin"],
  weight: "400",
  variable: "--font-body",
});

Related pairings