The changelog stack
Schibsted Grotesk for headings · Inter for body · JetBrains Mono for code — all three set live below.
Details make the difference
Good type pairing is quiet craft: a display face with character, a body face that gets out of the way, and a monospace that keeps code honest. Set them together and a page finds its rhythm — headings announce, paragraphs settle, and the details stay precise.
function pair(display, body, mono) {
return { display, body, mono }; // three roles, one system
}Why these three
A product changelog alternates between version headers, plain-English release notes and the occasional code diff, so it needs three faces with clear hierarchy. Schibsted Grotesk gives version numbers and release titles a crisp, contemporary grotesque weight that anchors each entry. Inter keeps the bullet-point notes fast to scan with its even color and tall x-height. JetBrains Mono flags flags, config keys and migration snippets — its disambiguated glyphs matter most exactly here, where a mistyped setting from a release note breaks someone's build.
Copy the CSS
:root {
--font-display: 'Schibsted Grotesk', 'Helvetica Neue', Helvetica, Arial, sans-serif;
--font-body: 'Inter', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
--font-mono: 'JetBrains Mono', 'SF Mono', Menlo, Consolas, 'Courier New', monospace;
}
h1, h2, h3 {
font-family: var(--font-display);
font-weight: 700;
}
body {
font-family: var(--font-body);
font-weight: 400;
}
code, pre, kbd {
font-family: var(--font-mono);
font-weight: 400;
}Read more
More about each face: Schibsted Grotesk · Inter · JetBrains Mono
Choosing type for this? Fonts for SaaS products →