Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

Font Pairing Generator

Two fonts that work together, previewed on your words, with the code to use them.

Design No upload Works offline Free, no sign-up

Your pair

Headings

Text

Why it works

    Preview

    Mood

    Code

    Load the fonts with

    1. Load the fonts

     

    2. Use them

     

    Next steps

    About the Font Pairing Generator

    Pick two fonts that work together — one for headings, one for text — and see them on your own words before you commit. Start from a curated pairing, filter by style and mood (modern, elegant, playful, editorial, technical …), or press Shuffle to build a new pair from the library, keeping a font you like locked. Every pair comes with plain notes on why it works: the contrast between the two faces, cautions such as capital-only or script fonts, and the x-height of each font measured in your browser.

    The fonts are open-licence (SIL OFL 1.1) families such as Inter, Montserrat, Poppins, Noto Sans, Archivo, Anton, Bebas Neue, Caveat and Great Vibes, served from this site, so nothing is requested from Google while you browse; serif, monospace and humanist system font stacks need no download at all. Preview the pair as an article, a landing page and a card, then copy the code three ways: a Google Fonts <link> or @import, Fontsource npm installs, or self-hosted @font-face rules with a ZIP of the font files and their licences — plus the CSS or Tailwind theme that applies the pair.

    How to use it

    1. Browse Pairings and click one, or use the filters (heading style, text style, mood, web fonts only) to narrow the list.
    2. Press Shuffle for a new pair; Lock the heading or text font to keep it while shuffling the other.
    3. Fine-tune under Your pair: weight, size, letter spacing, all capitals, width (Archivo), and the text’s size and line height. Read the notes underneath.
    4. Type your own heading and paragraph, and switch the preview between Article, Landing page and Card.
    5. Under Code, choose how your site loads fonts — Google Fonts, Fontsource or self-hosted files — and copy the loading code and the CSS (or Tailwind theme). For self-hosting, download the ZIP.

    Examples

    Montserrat + Inter with Google Fonts
    Input
    Pairing: Montserrat 700 for headings, Inter 400 for text, with bold and italic
    Result
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Montserrat:wght@700&amp;family=Inter:ital,wght@0,400;0,700;1,400&amp;display=swap">
    The same pair with Fontsource
    Input
    Code: Fontsource (npm)
    Result
    npm install @fontsource/montserrat @fontsource/inter
    
    import '@fontsource/montserrat/700.css';
    import '@fontsource/inter/400.css';
    import '@fontsource/inter/700.css';
    import '@fontsource/inter/400-italic.css';
    The CSS that applies a pair
    Input
    Montserrat 700 / Inter 400 · text 17px, line height 1.6 · h1 44px
    Result
    :root {
      --font-heading: "Montserrat", system-ui, sans-serif;
      --font-body: "Inter", system-ui, sans-serif;
    }
    
    body {
      font-family: var(--font-body);
      font-weight: 400;
      font-size: 1.0625rem; /* 17px */
      line-height: 1.6;
    }
    
    h1, h2, h3 {
      font-family: var(--font-heading);
      font-weight: 700;
      line-height: 1.15;
    }
    A pair that needs no download
    Input
    Transitional serif (system) for headings, System UI for text
    Result
    --font-heading: Charter, 'Bitstream Charter', 'Sitka Text', Cambria, serif;
    --font-body: system-ui, sans-serif;

    Each device shows its own fonts from these lists, so the page loads no font files at all.

    Common uses

    • Choosing the typography for a new website, blog, app or portfolio.
    • Finding a text font that suits a display or script font you already have, by locking it and shuffling the other.
    • Getting self-hosted font files with ready @font-face CSS instead of loading fonts from a third party.
    • Setting up a Tailwind CSS theme with heading and body font families.
    • Pairing Hindi and English text with fonts that draw Devanagari.

    What makes two fonts work together

    Good pairs differ clearly in one thing and agree in others. The most reliable contrast is structure: a serif or a display face for headings over a plain sans-serif for text, or a geometric sans-serif (round, built from circles) over a grotesque or humanist one. Two faces of the same structure — two geometric sans-serifs, say — look almost alike, which reads as a mistake, so the shuffle never pairs them. A single family can also carry a whole design when the weights are far apart, such as 800 for headings and 400 for text. Moods help as well: a playful script and a sober technical face rarely sit well together. The Google Fonts Knowledge library explains these ideas in depth.

    Choosing how to load the fonts

    • Google Fonts is the quickest: one <link>, and each visitor’s browser fetches the fonts from Google’s servers, which see the visitor’s IP address. A German court (Landgericht München I, case 3 O 17493/20) awarded a visitor damages under the GDPR because a website passed his IP address to Google this way without his consent. Self-hosting avoids the request.
    • Fontsource packages the same fonts for npm, so your build tool bundles them with your site — self-hosting without copying files by hand.
    • Self-hosted files: download the ZIP with the WOFF2 files (the Latin and Latin Extended subsets by default, more if you tick them), a fonts.css with one @font-face rule per file, and the licence of each family. Each rule has a unicode-range, so browsers fetch only the files whose characters a page uses.

    System font stacks need none of this: they name fonts that come with Windows, macOS, iOS, Android and Linux.

    System font stacks

    The serif, humanist, monospace and display stacks come from Modern Font Stacks (CC0). They cost nothing to load and render immediately, but each device shows its own font from the list — a book serif may be Charter on a Mac, Sitka Text or Cambria on Windows and Noto Serif on Android — so the notes say which one your device shows. Only regular and bold weights are offered for them, because other weights depend on the device.

    Licences

    Every library font is under the SIL Open Font License 1.1: you may use it on websites, in apps and in print, commercially too, and self-host it, as long as the licence and copyright stay with the font files (the ZIP includes them). You may not sell the fonts on their own. Fonts that declare a Reserved Font Name, such as Dancing Script, may not keep that name if you modify them.

    Limitations

    • The library has the families listed in the font menus — sans-serif, display and handwriting faces served from this site — plus system stacks; it is not the whole Google Fonts catalogue.
    • System stacks look different on every device; the preview shows how they look on yours.
    • The self-hosted ZIP contains the Fontsource builds of the fonts (WOFF2, by subset), not the original TTF files.
    • Variable-width headings are available for Archivo only; other fonts are offered at their normal width.
    • Without a connection, fonts and character sets your browser has not loaded from this site before cannot be previewed or put in the ZIP; the code still works.

    Privacy

    Everything happens in your browser. What you enter or open here is not uploaded or stored by MySmartCoPilot.

    Frequently asked questions

    Are the fonts loaded from Google while I use this tool?

    No. Every font file in the preview comes from this site, and your text never leaves your browser. Google is contacted only if you later use the Google Fonts code on your own site.

    Can I use these fonts commercially?

    Yes. All library fonts are under the SIL Open Font License 1.1, which allows commercial use in websites, apps, logos and print. Keep the licence with the font files when you distribute them, and do not sell the fonts by themselves.

    How does Shuffle choose a pair?

    It takes every heading font and text font that pass your filters and locks, drops pairs without enough contrast (the same structure twice, a display or script face as text, two system stacks of one kind), scores the rest for contrast and for the moods you picked, and chooses at random among the best. Text in Devanagari limits it to fonts that draw Hindi.

    Why is a heading font marked as capitals only?

    Bebas Neue has no lowercase design: the lowercase letters are capitals too. Use it for short headings and labels, and never for text.

    Which is better for text, serif or sans-serif?

    Both read well on modern screens at a comfortable size (16–20px) and line height (1.5–1.7). Sans-serifs are the usual choice for interfaces; serifs give long articles a book-like feel. Pick the one that suits the content, and test it on your real text in the preview.

    Quick answers and tool search

    Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.