O guia completo de combinação de fontes
The Complete Guide to Font Pairing
Typography is one of the most powerful tools in a designer's kit, yet font pairing remains one of the most misunderstood disciplines in the craft. Open any design critique thread and you'll find debates about whether two fonts "work together." Ask ten designers for their top pairing and you'll get ten different answers, each defended with passionate certainty.
The truth is that font pairing isn't mystical. It follows rules — rules rooted in visual contrast, historical classification, and the basic psychology of how humans read. Once you understand those rules, you can evaluate any combination with confidence and build pairings that feel inevitable rather than accidental.
This guide covers everything: the theory, the practice, the proven combinations, and the mistakes that trip up even experienced designers.
The Three C's: Contrast, Concordance, Conflict
Every font pairing falls into one of three relationships. Understanding which relationship you're creating — and whether it's intentional — is the first step toward making better decisions.
Contrast is the deliberate use of difference to create visual hierarchy and interest. When you pair a bold serif heading with a light sans-serif body, you're using contrast. The two fonts are clearly distinct, which makes the hierarchy legible at a glance. Contrast works because the brain immediately processes the difference as meaningful — the larger, heavier, more decorative type is the heading; the smaller, lighter, plainer type is the body.
The most reliable contrasts come from pairing across classifications. A humanist sans like Inter with a transitional serif like EB Garamond creates contrast through construction: one is built on geometric and optical principles, the other on calligraphic history. They look different because they are different in origin and purpose.
Concordance is harmony — pairing fonts that share similar characteristics without being so similar that they blur together. A concordant pairing might use two serifs from the same historical period, or two humanist designs that share proportions and warmth without being identical. The Playfair Display and Lora pairing works on this principle: both are literary serifs with ink-trap detailing and classical proportions, but Playfair's display-optimized drama distinguishes it clearly from Lora's text-optimized restraint.
Concordance requires more sophistication than contrast because the differences are subtle. Done well, it creates a refined, cohesive feeling. Done poorly, it looks like you couldn't decide between two fonts and used both anyway.
Conflict is what happens when two fonts create visual tension without the purposeful hierarchy of contrast or the harmony of concordance. Two display fonts competing for attention. Two decorative scripts side by side. Two geometric sans-serifs that are similar enough to suggest a mistake but different enough to clash. Conflict almost always happens by accident — it's the result of choosing fonts independently rather than as a system.
The goal of good font pairing is to operate in the contrast or concordance zone while actively avoiding conflict. Every pairing decision should start with the question: "Am I creating meaningful difference or meaningful harmony? Or am I just creating noise?"
The Heading + Body Formula
The most fundamental font pairing in web and print design is the heading-and-body combination. It's also the most forgiving place to start because the functional difference between heading and body creates built-in contrast in scale, weight, and context — even before you factor in typeface choice.
The formula works like this: choose one font for headings (H1 through H3) and one font for body text. The heading font should be expressive — it carries the personality of the page. The body font should be invisible — so readable that readers consume it without noticing it.
Heading font qualities to look for: - Strong personality or a distinctive feature (unusual weight, high contrast, expressive details) - Works well at 24px and above - Doesn't have to perform at 16px or in long paragraphs - Can be rarer or more unusual — it's used sparingly
Body font qualities to look for: - Optimized for readability at 14–18px - Generous x-height for comfortable reading - Open apertures that prevent letters from closing up - Moderate stroke contrast — not flat, not extreme - Comfortable in 50–75 character line lengths
When you pick these two roles first and then fill them with typefaces, pairing becomes much easier. You're not choosing "two fonts that go together" in the abstract — you're casting roles in a system.
For most web projects, the safest execution is a sans-serif heading paired with a serif body, or a serif heading with a sans-serif body. Both combinations use classification contrast to separate the roles. The heading's classification signals its role; the body's classification signals its role; the system reads clearly without ambiguity.
A practical starting point for any project: open Google Fonts, filter by "Display" for headings and "Text" for body, then apply the contrast principle. You'll narrow thousands of options to a manageable list within minutes.
Pairing by Classification: What Works
Understanding type classification is essential for systematic pairing. Not because you need to memorize history, but because classification groups fonts with similar visual DNA — and fonts with compatible visual DNA tend to pair well together.
Serif + Sans-Serif (Most Reliable)
This is the workhorse of font pairing. Serifs and sans-serifs developed from different traditions and serve different visual functions, which means the contrast between them is built-in and reliable.
The key is matching the humanist flavor. A humanist sans like Lato or Source Sans Pro pairs more naturally with a humanist serif like Garamond than with a transitional or Didone serif. Both humanist designs share proportions based on the human hand — the axis of stroke variation is diagonal, reflecting calligraphic origins. Pair two humanist designs (one serif, one sans) and the result feels cohesive despite the classification contrast.
Similarly, a geometric sans like Montserrat pairs naturally with a modern/Didone serif. Both are influenced by geometric construction and mechanical perfection — the contrast is in their application (heading vs. body), not their underlying aesthetic.
Serif + Serif (Requires Care)
Two serifs can work, but only if there's clear visual contrast between them — usually achieved through: - Period contrast (Renaissance humanist + transitional, or transitional + modern) - Weight contrast (light text serif + bold display serif) - Size contrast (large decorative heading + small text body)
Playfair Display as a heading with Merriweather as a body works because Playfair is a high-contrast Didone optimized for display, while Merriweather is a low-contrast slab designed for screen readability. They share the serif classification but differ dramatically in purpose and visual weight.
Sans + Sans (Difficult but Possible)
Two sans-serifs require the most intentional approach. You need to ensure the fonts differ in: - Weight (one noticeably heavier than the other) - Proportion (one condensed, one normal width) - Personality (one geometric, one humanist)
Oswald (condensed, bold heading) with Roboto (normal, readable body) is one of the most popular sans+sans pairings on Google Fonts. The contrast is in proportion and weight, not classification. The system is clear because no one mistakes which font is the heading and which is the body.
Display/Script + Any (Narrow Use)
Display and script fonts exist for single-line headlines, logos, and decorative callouts. They're not body fonts. When you use them, pair them with something completely neutral — a clean sans-serif or a modest serif — so the display font has room to breathe. Pairing two display fonts is almost always a conflict waiting to happen.
10 Proven Font Combinations
These pairings have been tested across thousands of real projects. Each has a clear use case and a clear reason it works.
1. Inter + EB Garamond Use case: Editorial, long-form content, sophisticated web apps. Why it works: Inter's optical optimization at small sizes and EB Garamond's classical humanist proportions share a warmth that prevents the pairing from feeling sterile. Use Inter for UI and navigation, EB Garamond for article body text.
font-family: 'Inter', sans-serif; /* headings, UI */
font-family: 'EB Garamond', serif; /* body text */
2. Playfair Display + Source Sans Pro Use case: Fashion, lifestyle, editorial blogs, premium brands. Why it works: Playfair's high-contrast Didone drama creates strong heading presence. Source Sans Pro's neutrality keeps body text from competing. The contrast between ornate and functional is the whole point.
3. Montserrat + Merriweather Use case: Business websites, marketing pages, professional services. Why it works: Montserrat's geometric confidence at large sizes pairs with Merriweather's screen-optimized readability. Both have clear personalities without clashing.
4. Oswald + Roboto Use case: News sites, sports, high-energy brands, informational dashboards. Why it works: Oswald's condensed boldness creates maximum heading impact. Roboto's neutral flexibility handles dense body text without fatigue. Both are high-performing Google Fonts with consistent rendering.
5. Raleway + Lato Use case: Clean startup sites, portfolio pages, design agencies. Why it works: Raleway's distinctive geometric character (the double-story 'W', the thin weight options) creates refined headings. Lato's humanist warmth prevents the body from feeling cold.
6. Cormorant Garamond + Proza Libre Use case: Literary blogs, publishing, high-end editorial. Why it works: Cormorant's extreme contrast and elegance commands attention at large heading sizes. Proza Libre is specifically designed as a text complement to display serifs — the pairing is by design.
7. DM Sans + DM Serif Display Use case: Modern editorial, contemporary brand sites. Why it works: This is a designed superfamily pairing — both fonts share the "DM" design DNA, meaning the proportions and spacing are calibrated to work together. It's essentially a cheat code for cohesive type.
font-family: 'DM Serif Display', serif; /* headings */
font-family: 'DM Sans', sans-serif; /* body */
8. Space Grotesk + Space Mono Use case: Developer tools, technical documentation, SaaS products. Why it works: Both are designed by the same designer as complementary fonts. Space Mono's fixed-width geometry matches Space Grotesk's quirky rationalism. Ideal for code-heavy content.
9. Libre Baskerville + Libre Franklin Use case: Civic, nonprofit, news, authoritative editorial. Why it works: Both are "Libre" revivals sharing a functional, no-nonsense ethos. Baskerville's authority at heading size pairs with Franklin's journalistic neutrality in body text.
10. Nunito + Nunito Sans Use case: Friendly apps, children's products, casual consumer software. Why it works: Another superfamily approach. Nunito's rounded terminals create warmth in headings; Nunito Sans removes the rounds for slightly more efficient body text. The family relationship ensures harmony.
Common Pairing Mistakes to Avoid
Even experienced designers fall into these traps. Knowing them is half the battle.
Pairing two fonts that are too similar. This is the most common mistake. Two geometric sans-serifs, or two transitional serifs, or two humanist types — they're similar enough that users wonder whether the variation is intentional, but different enough that it looks inconsistent. If you can't explain in one sentence why you chose two different fonts, consider using weights and styles within one family instead.
Using display fonts in body text. Playfair Display is called "Display" for a reason. High-contrast serifs and decorative faces are designed for large sizes where their detail reads clearly. At 16px body text size, the thin strokes in a Didone disappear, creating uncomfortable shimmer and fatigue. Check whether a font has a "Text" or display-only variant before using it in paragraphs.
Ignoring x-height compatibility. X-height — the height of lowercase letters relative to the cap height — varies significantly between fonts. When you mix fonts with very different x-heights, they feel mismatched even if you can't articulate why. A heading font with a low x-height next to a body font with a tall x-height creates an awkward visual jump. Check x-heights by typing the same word in both fonts at the same size.
Overloading with personality. Script fonts, display fonts, and decorative faces all have strong personalities. One personality per page. If your heading is a flowing script, your body should be invisible. If your body is a literary serif with editorial character, your heading can be dramatic but not also scripted. Two strong personalities fight for attention.
Not testing in context. Fonts look different on screens vs. in mockups, at mobile sizes vs. desktop, at your system's color profile vs. a calibrated display. A pairing that looks perfect in Figma might feel different in a live browser. Always test your fonts in actual HTML/CSS at the real sizes and line lengths you'll use.
Downloading and using everything. More fonts is not better. Loading multiple font families increases page weight, slows rendering, and creates visual inconsistency. Three font families is a hard maximum for any single project. Two is usually better. One, used with weight and style variants, is often ideal.
Testing Your Pairings: A Checklist
Before committing to a font pairing, run it through this checklist. Each question should have a clear, positive answer.
Hierarchy check: - [ ] Can you tell immediately which text is a heading and which is body copy? - [ ] Does the hierarchy remain clear when you squint at the page? - [ ] Would a first-time visitor understand the page structure without reading?
Readability check: - [ ] Is the body font comfortable to read for more than two paragraphs? - [ ] Does the body font maintain readability at your smallest intended size? - [ ] Are the letterforms distinguishable? (Is 'l', 'I', and '1' clearly different?)
Character check: - [ ] Do both fonts feel appropriate for your brand/content tone? - [ ] Would the pairing work in a different cultural or geographic context? - [ ] Is there a clear reason each font was chosen, or did you just "like them"?
Technical check: - [ ] Do both fonts render well on Windows (where ClearType anti-aliasing is common)? - [ ] Do both fonts include the character sets you need? (Extended Latin? Cyrillic? Numerals?) - [ ] Is the page-weight impact of loading both font families acceptable? - [ ] Have you tested at 320px mobile width and 1440px desktop width?
Contrast check: - [ ] Are the two fonts clearly different from each other — enough that the choice looks deliberate? - [ ] If you removed all size and weight differences, would you still be able to tell the fonts apart? - [ ] Does the pairing feel cohesive, or does one font feel like it belongs to a different project?
Use the font pairing tool to test combinations live in your browser, side by side, with your actual content. You'll catch problems in minutes that would take hours to diagnose after implementation.
The simplest test: Print your pairing at normal reading size on paper. Paper removes the confounding effects of screen rendering and forces you to evaluate the fonts purely on their merits. If the combination works on paper, it will work on screen.
Font pairing gets easier with practice, not because the rules change, but because you build intuition for what "contrast without conflict" looks and feels like. Keep a collection of pairings you admire, analyze why they work using the vocabulary in this guide, and apply that analysis to your own projects. The principles are consistent. The results, when you follow them, are reliably good.
Font Pairing Masterclass
Typography Terms
Try These Tools
Fonts Mentioned
Designed by Christian Robertson for Google's Material Design ecosystem, this neo-grotesque sans-serif is the most widely used typeface on the web and Android. Its dual-nature design balances mechanical precision with natural reading rhythm, making it equally at home in UI labels and long-form text. The variable font supports width and weight axes alongside Cyrillic, Greek, and extended Latin scripts.
Steve Matteson crafted this humanist sans-serif with upright stress and open apertures that prioritize legibility across screen sizes and resolutions. One of the most-deployed web fonts ever published, it strikes a neutral, professional tone well-suited to body copy, email templates, and web applications. Variable width and weight axes, plus Hebrew and Greek script support, make it a versatile multilingual workhorse.
Rasmus Andersson spent years refining this neo-grotesque specifically for computer screens, optimizing letter spacing, x-height, and stroke contrast for high readability at small sizes on digital displays. An optical size axis (opsz) lets the font automatically adjust its design for captions versus headlines, while the weight axis covers the full range from thin to black. It has become the de facto choice for dashboards, documentation sites, and developer tools worldwide.
Inspired by the geometric signage and storefronts of the Montserrat neighborhood in Buenos Aires, Julieta Ulanovsky created this typeface to capture the spirit of early 20th-century urban lettering. Clean circular forms and strong geometric proportions give it an assertive presence ideal for headlines, branding, and landing pages. The variable weight axis spans a wide range, and Cyrillic and Vietnamese scripts are included.
Vernon Adams reimagined the classic grotesque condensed genre for the web, taking cues from early American gothics and condensed newspaper type. Its tall, narrow proportions command attention in headlines, posters, and display contexts where vertical rhythm is tight. A variable weight axis and Cyrillic support expand its utility beyond English-language applications.
Claus Eggers Sorensen drew this high-contrast modern serif in the tradition of Bodoni and Didot, with dramatic thick-thin stroke transitions and delicate hairlines that demand high-resolution rendering. It excels in editorial design, luxury branding, and large-scale headings where its theatrical contrast can be appreciated. A variable weight axis and Cyrillic support complement the family's existing italic and small caps variants.
Lora is a well-balanced contemporary serif with roots in calligraphic tradition, combining moderate contrast and flowing curves that give it a distinctly literary character. Cyreal designed it specifically for reading comfort on screen, and the variable weight axis — along with coverage of Cyrillic, Vietnamese, Math, and Symbols — extends its usefulness well beyond English prose. It performs equally well in elegant blog layouts and academic typesetting where warmth and credibility matter.
EB Garamond is Georg Duffner's open-source revival of the sixteenth-century types of Claude Garamond, one of the most influential typeface designers in Western printing history, based closely on the specimen printed by Conrad Berner in 1592. The variable weight axis covers a range from regular to bold, and the family's extensive script support — Latin, Cyrillic, Greek, Vietnamese — makes it unusually versatile for a typeface so deeply rooted in the Renaissance humanist tradition. It brings scholarly elegance and historical authority to book design, academic publishing, and editorial contexts that prize typographic heritage.