Skip to main content

Font Pairing Generator — 50+ Curated Google Fonts Combinations

Font pairing generator — 50+ curated Google Fonts pairs (heading + body) with live preview, classifications, CSS export.

  • Runs locally
  • Category Color & Design
  • Best for Moving from a visual idea to reusable color values.
Style
Use case
56 pairs

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Playfair Display
Body: Source Sans 3
Medium-era classic — high-contrast serif heading, warm humanist sans body.
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700&family=Source+Sans+3:wght@400&display=swap');

body {
  font-family: 'Source Sans 3', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Lora
Body: Open Sans
Long-form reader favorite — Lora reads as a "newspaper opinion column" headline.
@import url('https://fonts.googleapis.com/css2?family=Lora:wght@700&family=Open+Sans:wght@400&display=swap');

body {
  font-family: 'Open Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Lora', Georgia, 'Times New Roman', serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Merriweather
Body: Montserrat
Top-3 most-used Google Fonts pair on personal blogs — high contrast, warm.
@import url('https://fonts.googleapis.com/css2?family=Merriweather:wght@700&family=Montserrat:wght@400&display=swap');

body {
  font-family: 'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Merriweather', Georgia, 'Times New Roman', serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Cormorant Garamond
Body: Montserrat
Wedding / fashion / luxury — Cormorant has the airy Garamond feel.
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@600&family=Montserrat:wght@400&display=swap');

body {
  font-family: 'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  font-weight: 600;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Libre Baskerville
Body: Source Sans 3
A modern open-source Baskerville — trustworthy, "magazine quality" feel.
@import url('https://fonts.googleapis.com/css2?family=Libre+Baskerville:wght@700&family=Source+Sans+3:wght@400&display=swap');

body {
  font-family: 'Source Sans 3', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Libre Baskerville', Georgia, 'Times New Roman', serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Crimson Text
Body: Work Sans
Optimized for long-form prose — Crimson Text mimics old-style book typography.
@import url('https://fonts.googleapis.com/css2?family=Crimson+Text:wght@700&family=Work+Sans:wght@400&display=swap');

body {
  font-family: 'Work Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Crimson Text', Georgia, 'Times New Roman', serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: EB Garamond
Body: Lato
EB Garamond is Wikipedia's preferred serif — pairs naturally with humanist Lato.
@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:wght@700&family=Lato:wght@400&display=swap');

body {
  font-family: 'Lato', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'EB Garamond', Georgia, 'Times New Roman', serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Spectral
Body: Inter
Spectral was designed by Production Type for Google Docs — premium reading serif.
@import url('https://fonts.googleapis.com/css2?family=Spectral:wght@600&family=Inter:wght@400&display=swap');

body {
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Spectral', Georgia, 'Times New Roman', serif;
  font-weight: 600;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Bitter
Body: Rubik
Slab serif heading + geometric humanist body — friendly, slightly retro.
@import url('https://fonts.googleapis.com/css2?family=Bitter:wght@700&family=Rubik:wght@400&display=swap');

body {
  font-family: 'Rubik', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Bitter', Georgia, 'Times New Roman', serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: PT Serif
Body: PT Sans
Same designer (ParaType) — guaranteed harmonic spacing and proportions.
@import url('https://fonts.googleapis.com/css2?family=PT+Serif:wght@700&family=PT+Sans:wght@400&display=swap');

body {
  font-family: 'PT Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'PT Serif', Georgia, 'Times New Roman', serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Inter
Body: Inter
Stripe / Linear / countless SaaS dashboards — Inter is the safe default of 2024.
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@700&display=swap');

body {
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Manrope
Body: Manrope
A "geometric Inter" — wider counters, softer terminals, very 2023 startup landing page.
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@800&display=swap');

body {
  font-family: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 800;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: DM Sans
Body: DM Sans
DeepMind's commissioned sans — warmer than Inter, slightly handwritten edges.
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@700&display=swap');

body {
  font-family: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Plus Jakarta Sans
Body: Plus Jakarta Sans
A 2023 favorite — slightly more character than Inter, still very neutral.
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@700&display=swap');

body {
  font-family: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Space Grotesk
Body: Inter
Tech-magazine pairing — Space Grotesk's mono-ish heading + Inter's neutral body.
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@700&family=Inter:wght@400&display=swap');

body {
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Space Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Archivo
Body: Archivo
Argentinian grotesque — wide, confident heading; identical body for a unified system.
@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@800&display=swap');

body {
  font-family: 'Archivo', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Archivo', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 800;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Oswald
Body: Source Sans 3
Condensed heading + neutral body — print-magazine masthead vibe online.
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@600&family=Source+Sans+3:wght@400&display=swap');

body {
  font-family: 'Source Sans 3', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Oswald', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 600;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Bebas Neue
Body: Montserrat
All-caps tall display heading + clean geometric body — fashion / streetwear staple.
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue:wght@400&family=Montserrat:wght@400&display=swap');

body {
  font-family: 'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Bebas Neue', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Poppins
Body: Roboto
Poppins's geometric circles read as friendly + modern; Roboto stays utilitarian.
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@700&family=Roboto:wght@400&display=swap');

body {
  font-family: 'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Raleway
Body: Roboto
Raleway thin "W" is its signature — elegant heading, neutral Roboto body.
@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@700&family=Roboto:wght@400&display=swap');

body {
  font-family: 'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Raleway', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Nunito
Body: Nunito Sans
Rounded terminals — friendly, used widely in kids / education / wellness apps.
@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@700&family=Nunito+Sans:wght@400&display=swap');

body {
  font-family: 'Nunito Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Nunito', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Abril Fatface
Body: Lato
Abril's ultra-thick serifs scream "magazine cover" — pairs with neutral Lato body.
@import url('https://fonts.googleapis.com/css2?family=Abril+Fatface:wght@400&family=Lato:wght@400&display=swap');

body {
  font-family: 'Lato', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Abril Fatface', Georgia, 'Times New Roman', serif;
  font-weight: 400;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Fraunces
Body: Inter
Fraunces is a softie-serif with optical sizing — modern editorial look.
@import url('https://fonts.googleapis.com/css2?family=Fraunces:wght@700&family=Inter:wght@400&display=swap');

body {
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Fraunces', Georgia, 'Times New Roman', serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Big Shoulders Display
Body: Roboto
Chicago Design System display — bold, condensed, civic feel.
@import url('https://fonts.googleapis.com/css2?family=Big+Shoulders+Display:wght@700&family=Roboto:wght@400&display=swap');

body {
  font-family: 'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Big Shoulders Display', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Unbounded
Body: Inter
Wide expanded heading — Web3 / AI startup 2024 staple.
@import url('https://fonts.googleapis.com/css2?family=Unbounded:wght@600&family=Inter:wght@400&display=swap');

body {
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Unbounded', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 600;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Syne
Body: Inter
Funky variable display — creative studios, design portfolios.
@import url('https://fonts.googleapis.com/css2?family=Syne:wght@700&family=Inter:wght@400&display=swap');

body {
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Syne', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Archivo Black
Body: Roboto
Heavy single-weight headline + neutral body — sports / news / SaaS landing.
@import url('https://fonts.googleapis.com/css2?family=Archivo+Black:wght@400&family=Roboto:wght@400&display=swap');

body {
  font-family: 'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Archivo Black', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Anton
Body: Roboto
Ultra-condensed display — billboard / poster vibe.
@import url('https://fonts.googleapis.com/css2?family=Anton:wght@400&family=Roboto:wght@400&display=swap');

body {
  font-family: 'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Anton', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Rozha One
Body: Poppins
Devanagari-inspired Latin display — distinctive, beautiful at large sizes.
@import url('https://fonts.googleapis.com/css2?family=Rozha+One:wght@400&family=Poppins:wght@400&display=swap');

body {
  font-family: 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Rozha One', Georgia, 'Times New Roman', serif;
  font-weight: 400;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Old Standard TT
Body: Lato
Old Standard TT mimics 1910s academic typography — scholarly + restrained.
@import url('https://fonts.googleapis.com/css2?family=Old+Standard+TT:wght@700&family=Lato:wght@400&display=swap');

body {
  font-family: 'Lato', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Old Standard TT', Georgia, 'Times New Roman', serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Cinzel
Body: Lato
Roman inscription–inspired display — luxury / spa / wedding.
@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@600&family=Lato:wght@400&display=swap');

body {
  font-family: 'Lato', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Cinzel', Georgia, 'Times New Roman', serif;
  font-weight: 600;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Caveat
Body: Nunito
Caveat reads as handwriting — pair with rounded Nunito for warmth.
@import url('https://fonts.googleapis.com/css2?family=Caveat:wght@700&family=Nunito:wght@400&display=swap');

body {
  font-family: 'Nunito', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Caveat', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Pacifico
Body: Quicksand
Retro brushed script + soft geometric body — bakery / kids / lifestyle.
@import url('https://fonts.googleapis.com/css2?family=Pacifico:wght@400&family=Quicksand:wght@400&display=swap');

body {
  font-family: 'Quicksand', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Pacifico', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Fredoka
Body: Nunito
Round chunky heading — kids products, friendly SaaS.
@import url('https://fonts.googleapis.com/css2?family=Fredoka:wght@600&family=Nunito:wght@400&display=swap');

body {
  font-family: 'Nunito', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Fredoka', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 600;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: JetBrains Mono
Body: Inter
Developer-tool landing pages — JetBrains Mono as "we ship code" signal.
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@700&family=Inter:wght@400&display=swap');

body {
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Space Mono
Body: Space Grotesk
Same superfamily — Space Mono heading + Space Grotesk body, harmonic by design.
@import url('https://fonts.googleapis.com/css2?family=Space+Mono:wght@700&family=Space+Grotesk:wght@400&display=swap');

body {
  font-family: 'Space Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Space Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: IBM Plex Mono
Body: IBM Plex Sans
IBM's in-house superfamily — pairs across mono / sans / serif by design.
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@600&family=IBM+Plex+Sans:wght@400&display=swap');

body {
  font-family: 'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-weight: 600;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Fira Code
Body: Fira Sans
Mozilla's Fira — Code's ligatures shine in heading; Sans is workhorse body.
@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@600&family=Fira+Sans:wght@400&display=swap');

body {
  font-family: 'Fira Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Fira Code', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-weight: 600;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Roboto Mono
Body: Roboto
Google's Roboto superfamily — safest mono+sans pairing in the library.
@import url('https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@600&family=Roboto:wght@400&display=swap');

body {
  font-family: 'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Roboto Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-weight: 600;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Libre Caslon Text
Body: Libre Franklin
Open-source revivals of Caslon + Franklin Gothic — classic American typography.
@import url('https://fonts.googleapis.com/css2?family=Libre+Caslon+Text:wght@700&family=Libre+Franklin:wght@400&display=swap');

body {
  font-family: 'Libre Franklin', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Libre Caslon Text', Georgia, 'Times New Roman', serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Cardo
Body: Source Sans 3
Scholarly serif designed for classical / biblical studies — pairs cleanly with Source Sans.
@import url('https://fonts.googleapis.com/css2?family=Cardo:wght@700&family=Source+Sans+3:wght@400&display=swap');

body {
  font-family: 'Source Sans 3', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Cardo', Georgia, 'Times New Roman', serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Gentium Plus
Body: Source Sans 3
Gentium's broad Latin coverage — multilingual editorial sites.
@import url('https://fonts.googleapis.com/css2?family=Gentium+Plus:wght@700&family=Source+Sans+3:wght@400&display=swap');

body {
  font-family: 'Source Sans 3', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Gentium Plus', Georgia, 'Times New Roman', serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Noto Serif
Body: Noto Sans
Google's "no tofu" project — most consistent multi-script coverage on the web.
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif:wght@700&family=Noto+Sans:wght@400&display=swap');

body {
  font-family: 'Noto Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Noto Serif', Georgia, 'Times New Roman', serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Tenor Sans
Body: Source Sans 3
Wide elegant caps for product names + clean body for descriptions.
@import url('https://fonts.googleapis.com/css2?family=Tenor+Sans:wght@400&family=Source+Sans+3:wght@400&display=swap');

body {
  font-family: 'Source Sans 3', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Tenor Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Josefin Sans
Body: Montserrat
1930s geometric inspired — vintage boutique / cafe / wellness.
@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@600&family=Montserrat:wght@400&display=swap');

body {
  font-family: 'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Josefin Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 600;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Amiri
Body: Source Sans 3
Amiri covers Latin + Arabic — ideal for MENA-region bilingual sites.
@import url('https://fonts.googleapis.com/css2?family=Amiri:wght@700&family=Source+Sans+3:wght@400&display=swap');

body {
  font-family: 'Source Sans 3', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Amiri', Georgia, 'Times New Roman', serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Alegreya
Body: Alegreya Sans
Designed-as-a-pair superfamily — Alegreya serif + Sans share proportions.
@import url('https://fonts.googleapis.com/css2?family=Alegreya:wght@700&family=Alegreya+Sans:wght@400&display=swap');

body {
  font-family: 'Alegreya Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Alegreya', Georgia, 'Times New Roman', serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Karla
Body: Karla
Karla's spurred terminals give character without shouting — quietly distinctive.
@import url('https://fonts.googleapis.com/css2?family=Karla:wght@700&display=swap');

body {
  font-family: 'Karla', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Karla', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Public Sans
Body: Public Sans
US Web Design System default — neutral, accessible, civic-feeling.
@import url('https://fonts.googleapis.com/css2?family=Public+Sans:wght@700&display=swap');

body {
  font-family: 'Public Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Public Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Lexend
Body: Lexend
Designed for reading proficiency — proven to improve reading speed.
@import url('https://fonts.googleapis.com/css2?family=Lexend:wght@700&display=swap');

body {
  font-family: 'Lexend', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Lexend', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Urbanist
Body: Urbanist
Geometric humanist — a free Futura-adjacent option.
@import url('https://fonts.googleapis.com/css2?family=Urbanist:wght@700&display=swap');

body {
  font-family: 'Urbanist', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Urbanist', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Epilogue
Body: Inter
Epilogue's wide caps headline + Inter body — startup landing page 2024.
@import url('https://fonts.googleapis.com/css2?family=Epilogue:wght@700&family=Inter:wght@400&display=swap');

body {
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Epilogue', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Noto Serif SC
Body: Noto Sans SC
Source Han Serif + Source Han Sans (Noto release) — the de-facto CJK editorial pair.
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@700&family=Noto+Sans+SC:wght@400&display=swap');

body {
  font-family: 'Noto Sans SC', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', system-ui, sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Noto Serif SC', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', Georgia, serif;
  font-weight: 700;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Ma Shan Zheng
Body: Noto Sans SC
Brush-style Chinese headline + Source Han Sans body — calligraphic warmth.
@import url('https://fonts.googleapis.com/css2?family=Ma+Shan+Zheng:wght@400&family=Noto+Sans+SC:wght@400&display=swap');

body {
  font-family: 'Noto Sans SC', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', system-ui, sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Ma Shan Zheng', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', Georgia, serif;
  font-weight: 400;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: ZCOOL KuaiLe
Body: Noto Sans SC
ZCOOL KuaiLe (站酷快乐体) playful display + Source Han Sans — marketing pages.
@import url('https://fonts.googleapis.com/css2?family=ZCOOL+KuaiLe:wght@400&family=Noto+Sans+SC:wght@400&display=swap');

body {
  font-family: 'Noto Sans SC', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', system-ui, sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'ZCOOL KuaiLe', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', Georgia, serif;
  font-weight: 400;
}

The quick brown fox jumps over the lazy dog

Typography is the visible voice of your writing. Pick a heading and a body that sound right in the same room.

Heading: Long Cang
Body: Noto Serif SC
Long Cang (龙藏) calligraphic display + Noto Serif SC — traditional + readable.
@import url('https://fonts.googleapis.com/css2?family=Long+Cang:wght@400&family=Noto+Serif+SC:wght@400&display=swap');

body {
  font-family: 'Noto Serif SC', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', Georgia, serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Long Cang', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', Georgia, serif;
  font-weight: 400;
}

What this tool does

A handpicked library of 50+ proven heading + body font combinations, drawn from real-world design systems — Medium, Stripe, Vercel, Apple Newsroom, The New York Times, GitHub, Notion, plus classic typographer recommendations from Typewolf, Fonts In Use, and the Google Fonts team. Every pair is loaded live from Google Fonts so you see the actual rendered typography, not a screenshot — change the sample text, switch between heading sizes, toggle dark mode. Filter by style (modern, classic, elegant, playful, editorial, monospace, CJK) or use case (blog, portfolio, e-commerce, brand, editorial). Includes 4 curated Chinese / CJK pairs (Source Han Serif + Source Han Sans, ZCOOL + Source Han Sans, and more) for bilingual sites. Each pair ships with a one-click CSS export — `@import` URL plus the `body` and `h1` rules — paste straight into your stylesheet. No signup, no tracking, no AI-generated nonsense pairs that look great in a screenshot and ugly in production. Built for designers picking typography for a landing page, developers stuck on `font-family: system-ui`, and content creators who want their blog to read like it was art-directed.

Tool details

Input
Text
The page exposes text boxes, numeric controls, file pickers, or structured inputs depending on the tool.
Output
Live result + Copy + Preview
The result area focuses on usable output, with copy, download, or preview actions when supported.
Privacy
Browser-side processing
The main tool logic does not call an external API, so inputs normally stay in the current tab.
Save / share
No account required
Open the page and use it; whether results survive refresh depends on the tool.
Performance budget
Initial JS <= 25 KB
No WASM budget is declared, keeping the tool quick to open on mobile.
Best fit
Color & Design · Designer
Category and role tags drive related tools, internal links, and quick fit checks.

How to use

  1. 1. Input

    Paste or drop your content into the tool panel.

  2. 2. Process

    Click the button. All processing is local in your browser.

  3. 3. Copy / Download

    Copy the result or download to disk in one click.

How Font Pairing Generator fits into your work

Use it while choosing, checking, converting, or documenting colors for real interface work.

Color jobs

  • Moving from a visual idea to reusable color values.
  • Checking contrast and accessibility before a UI ships.
  • Keeping brand, design, and implementation color decisions aligned.

Color checks

  • Verify contrast against the actual background, not just a sample swatch.
  • Check dark and light themes separately when both exist.
  • Copy the final format your design system or codebase expects.

Good next steps

These links move the current task into a more complete workflow.

  1. 1 HTML Color Names HTML named colors — all 147 CSS color names with hex/RGB/HSL, searchable + sortable. Open
  2. 2 CSS Gradient Generator Visual CSS gradient builder — linear, radial, conic with multi-stop colors, live preview, copy CSS, PNG export. Open
  3. 3 Color Converter HEX ⇄ RGB ⇄ HSL ⇄ HSV ⇄ CMYK — instant 5-way conversion, live swatch — browser-only Open

Real-world use cases

  • Killing the system-ui placeholder before a landing-page launch

    You shipped a marketing page on `font-family: system-ui` to hit a deadline, and it reads like an unfinished admin panel. Filter to the modern + brand pairs, find Inter Display heading over Inter body or Geist over Geist Mono, copy the two CSS rules plus the `@import`, and the page suddenly looks art-directed in under five minutes without you opening a single font catalogue.

  • Picking a serif-on-sans pair for a long-form blog

    You write 1,500-word essays and want them to read like Substack, not a wiki. Switch the sample text to one of your real paragraphs, flip through the editorial pairs (Lora + Open Sans, Source Serif + Source Sans), and judge each at the 16px body size you actually ship. You commit the winner once instead of A/B-ing five fonts live on readers.

  • Building a bilingual zh/en site that renders the same everywhere

    Your product page mixes English headings with Chinese body copy and falls back to ugly system CJK on Windows. Open the 4 CJK pairs, take Source Han Serif + Source Han Sans, and the generated CSS gives you an explicit CJK stack so 知乎-grade typography shows up identically on Mac, Windows, and Linux instead of three different renderings.

  • Handing a dev a copy-paste spec instead of a Figma screenshot

    You are the designer; the engineer wants exact font names, not a PNG. Lock the pair you chose, copy the CSS block (the `@import` URL, the `h1` rule, the `body` rule, weights already narrowed to `wght@400;700`), and drop it in the ticket. No back-and-forth over which Playfair weight or whether it was Montserrat 500 or 600.

Common pitfalls

  • Pulling every weight in the `@import` URL when you only use two; keep it to `wght@400;700` so the page does not download 8 unused weights and tank LCP.

  • Using a non-CJK pair on a Chinese site and assuming it works; Latin fonts have no Chinese glyphs, so add an explicit fallback like `'Inter', 'PingFang SC', sans-serif` or body text silently degrades.

  • Pairing two fonts with near-identical character (e.g. Roboto heading + Open Sans body) and getting mush; pick contrast in either family or weight, like Playfair heading + Source Sans body.

Privacy

Everything runs in your browser. The sample text you type, the pair you pick, and the CSS you copy never leave the page or hit a server. Fonts load directly from Google Fonts (that request goes to Google, same as on any site using their CDN), but your inputs are not logged, stored, or put into the URL. There is no signup and no tracking of which pairs you view.

FAQ

Tool combos

Folks in your role tend to reach for these alongside this tool.

Made by Toolora · 100% client-side · Updated 2026-06-12