Bitter + Karla
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.
Bitter 700 / Karla 400 — click the text to edit
Why it works
Bitter is a slab serif designed for screens — sturdy rectangular serifs, minimal contrast, a large x-height — so bold headings feel warm and grounded rather than bookish. Karla brings a complementary looseness: its grotesque forms carry small irregularities in spacing and terminals that read as handmade charm at text sizes. Slab-plus-quirky-sans is a classic blog recipe because both faces are low-contrast and even in color, keeping the page cohesive while the serifs supply the personality.
Use this pairing
<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=Bitter:wght@700&family=Karla:wght@400;600&display=swap" rel="stylesheet">h1, h2, h3 {
font-family: 'Bitter', Georgia, 'Times New Roman', serif;
font-weight: 700;
}
body {
font-family: 'Karla', 'Trebuchet MS', Helvetica, Arial, sans-serif;
font-weight: 400;
}import { Bitter, Karla } from "next/font/google";
const heading = Bitter({
subsets: ["latin"],
weight: "700",
variable: "--font-heading",
});
const body = Karla({
subsets: ["latin"],
weight: "400",
variable: "--font-body",
});