항상 통하는 폰트 조합을 위한 5가지 규칙
5 Rules for Choosing Font Combinations That Always Work
There's a version of font pairing that feels like art — intuitive, taste-driven, something you either have an eye for or you don't. That version is real, and it's what separates good typography from great typography. But there's also a version of font pairing that's systematic, learnable, and reliable. That's the version we're going to cover here.
These five rules won't produce the most creative typography you've ever seen. They'll produce typography that works — consistently, predictably, and professionally — regardless of your experience level. Master them and you'll never ship a type system that embarrasses you.
Rule 1: Create Contrast, Not Conflict
The fundamental principle behind every successful font pairing is contrast that communicates hierarchy. When two fonts look too similar, readers question whether the difference is intentional. When they look completely incompatible, the page becomes visually chaotic. The sweet spot is deliberate, meaningful difference.
What contrast looks like in practice:
Contrast can come from classification (serif vs. sans-serif), from weight (light vs. bold), from proportion (condensed vs. normal), or from personality (geometric vs. humanist). The most reliable contrast is classification-based because it's built into the typeface's DNA — you don't have to engineer it through size or weight.
When you pair Playfair Display with Lato, the contrast is immediate and structural. Playfair's high-contrast serifs, calligraphic stroke variation, and display-optimized drama read completely differently from Lato's humanist warmth and open-aperture neutrality. No one looks at that combination and wonders if you made a mistake.
What conflict looks like in practice:
Two fonts from the same classification, similar in weight and proportion, with similar x-heights — this is conflict. Raleway and Montserrat are both popular geometric sans-serifs on Google Fonts. Using them together creates conflict: they're different enough to look inconsistent, similar enough to look like an accident. Pick one.
Two competing display fonts is another common conflict scenario. If your heading is a flowing script and your pull quotes use a decorative blackletter, neither element has room to breathe. Display fonts need neutral counterparts.
The test: Cover up your heading font and look only at the body. Then cover up the body and look only at the heading. Each should feel appropriate for its role. Now look at both together — is it immediately clear which is which? If you have to think about it, there's not enough contrast.
The font pairing tool lets you preview combinations side by side with real content, making contrast evaluation fast and concrete rather than theoretical.
/* Good contrast: serif heading + sans body */
h1, h2, h3 {
font-family: 'Playfair Display', serif;
font-weight: 700;
}
body {
font-family: 'Lato', sans-serif;
font-weight: 400;
}
/* Conflict: two similar geometric sans-serifs */
h1 { font-family: 'Raleway', sans-serif; } /* Avoid */
body { font-family: 'Montserrat', sans-serif; } /* Avoid */
Rule 2: Limit Yourself to 2–3 Fonts Maximum
This rule has nothing to do with aesthetics and everything to do with cognition. Every font you add to a page asks the reader to process another visual system — another set of proportions, another rhythm, another personality. Two systems is manageable. Three is the limit. Four or more creates cognitive noise.
The practical case for two fonts:
Most web projects need exactly two typefaces: one for headings and one for body text. Everything else — captions, navigation, labels, code snippets — can be handled through weight, size, and style variations within those two families. Adding a third font "just for captions" is almost never necessary and often harmful.
Inter alone provides you with 18 font weights and styles, extensive OpenType features, tabular numerals, case-sensitive punctuation, and optical sizes. You don't need a second font to handle UI elements if your primary font is well-chosen.
When three fonts makes sense:
A third font is justified when you have a genuinely distinct third category of content. Technical documentation sites often use: - A heading font for titles and section headers - A reading font for prose body text - A monospace font for code examples
/* Justified three-font system for technical docs */
:root {
--font-heading: 'Space Grotesk', sans-serif;
--font-body: 'Libre Baskerville', serif;
--font-mono: 'Space Mono', monospace;
}
h1, h2, h3, h4 { font-family: var(--font-heading); }
p, li, blockquote { font-family: var(--font-body); }
code, pre, kbd { font-family: var(--font-mono); }
This is a principled three-font system. Each font serves a distinct content type. There's no ambiguity about which font belongs to which category.
What to avoid:
- Using four fonts because you "needed something different for blockquotes"
- Adding a decorative font for a single callout section
- Using your brand font, a display font, a reading font, and a UI font as four separate systems
If you're tempted to add a fourth font, ask whether the need could be met through weight, size, or color instead. It almost always can.
The loading cost argument:
Beyond aesthetics, every Google Fonts family you load costs HTTP requests and render-blocking resources. A page that loads Inter, Playfair Display, and Merriweather is making three separate font requests (or one large combined request), loading potentially hundreds of kilobytes of font data. Each additional family extends Time to First Contentful Paint. Two carefully chosen fonts almost always outperform four rushed ones on performance as well as aesthetics.
Rule 3: Match the Mood and Era
Every typeface carries historical and emotional associations. A Garamond-style serif carries the weight of Renaissance scholarship. A Didone like Bodoni Moda carries the visual language of 19th-century fashion magazines. A rounded sans like Nunito suggests approachable consumer apps. These associations aren't arbitrary — they're encoded in decades of cultural usage.
When your fonts contradict each other's era or mood, the page feels incoherent even if readers can't articulate why. A Blackletter font paired with a futuristic geometric sans creates temporal dissonance — the two designs belong to centuries and aesthetics that have nothing to say to each other.
Matching mood:
Identify the primary emotional register of your content: - Authoritative and traditional → Old-style serifs (EB Garamond, Cormorant), humanist faces with historical roots - Modern and precise → Geometric sans (Montserrat, Futura-influenced), transitional serifs at clean weights - Warm and approachable → Rounded sans (Nunito, Poppins), humanist serifs (Lora, Merriweather) - Technical and systematic → Monospaced faces (Space Mono, JetBrains Mono), neutral grotesques (Roboto, Inter) - Elegant and editorial → High-contrast serifs (Playfair Display, Cormorant Garamond), refined sans (Raleway thin weights)
Your heading and body fonts should agree on this register. A warm, rounded heading font paired with a cold, geometric body font creates subconscious friction — the two designs want to exist in different contexts.
Matching era:
Era matching is more subtle than mood matching, but it matters for sophisticated design. A Venetian/humanist serif like EB Garamond has Renaissance DNA. A humanist sans like Source Sans Pro was designed to feel contemporary but was inspired by the same calligraphic traditions. They share an era-compatible visual philosophy and pair naturally.
Compare that with pairing EB Garamond with a constructed geometric sans like Futura. The eras are not merely different — they represent opposing design philosophies (calligraphic naturalism vs. geometric rationalism). That tension can work as deliberate contrast in the right hands, but it requires skill to execute.
Practical mood-matching shortcuts:
- Check when the original typeface (or its inspiration) was designed. Fonts from the same period tend to share visual assumptions.
- Read the designer's description on Google Fonts. They usually describe the intended mood and use case explicitly.
- Look at what other projects use the same font for. If your serious legal services firm wants to use Pacifico, notice that nearly every existing Pacifico usage is for beachwear and casual consumer products. That's signal, not coincidence.
Rule 4: Test at Real Sizes and Line Lengths
Font pairing decisions made in a design tool at 100% zoom on a large monitor are not the same as font pairing decisions made in a live browser at mobile sizes. This gap between design and implementation catches designers constantly, and it's entirely avoidable.
Why real-size testing matters:
Many fonts that look beautiful at 48px heading size become uncomfortable at 16px body text size. High-contrast serifs — the Didone category (Bodoni, Walbaum) — have extremely thin strokes that look elegant at display sizes and become hairline-thin and visually unstable at body text sizes. Cormorant Garamond, despite its beauty, is genuinely difficult to read as extended body text at small sizes on screen.
The reverse is also true: fonts optimized for body text often look bland and loose at display sizes. Merriweather is an excellent body font. As a heading font at 64px, its screen-optimized letterforms lack the drama that a true display face provides.
Line length reality:
Typography research consistently identifies 45–75 characters per line as the optimal range for comfortable reading. This is approximately 380–640px at common body text sizes. Your font pairing might look perfect at a fixed 800px content width but fall apart at 320px mobile width (where line lengths compress to 30–35 characters and the rhythm of both fonts changes).
Test every pairing with real content at these widths: - 320px (smallest common mobile) - 375px (iPhone SE / standard mobile) - 768px (tablet) - 1024px (small desktop) - 1280px–1440px (standard desktop)
/* Test your type scale across breakpoints */
body {
font-family: 'EB Garamond', serif;
font-size: 18px;
line-height: 1.7;
}
/* Mobile */
@media (max-width: 480px) {
body { font-size: 16px; }
}
h1 {
font-family: 'Playfair Display', serif;
font-size: clamp(28px, 5vw, 56px); /* Test this range thoroughly */
}
Testing checklist:
- Open your pairing in a real browser, not a design tool
- Resize the window to mobile width and check whether the heading font still reads well at compressed sizes
- Check whether the body font maintains comfortable reading rhythm at 320px
- Look at your numerals and punctuation — do they match the feel of your body text?
- Check ligatures: are common letter pairs (fi, fl, ffi) handled gracefully?
- Test with your actual content, not "Lorem ipsum" — different character distributions change how a font feels
Rule 5: When in Doubt, Use a Superfamily
A superfamily is a type family that includes both serif and sans-serif variants (and sometimes monospace, condensed, or display variants) designed by the same hand to work together. They're the closest thing to a cheat code in font pairing.
When you use a superfamily, the contrast question is already answered for you. The designer has established compatible proportions, x-heights, and spacing. The two variants share visual DNA at the level of the letterforms themselves. They will always look like they belong together because they were designed to.
The best superfamilies on Google Fonts:
Alegreya + Alegreya Sans — An award-winning family with remarkable expressiveness. Alegreya (serif) and Alegreya Sans share proportion and rhythm, making them immediately compatible. Both work beautifully in literary and editorial contexts.
h1, h2 { font-family: 'Alegreya', serif; font-weight: 700; }
body { font-family: 'Alegreya Sans', sans-serif; font-weight: 400; }
DM Serif Display + DM Sans — A contemporary pairing designed for digital interfaces. DM Serif Display has the drama you want in headings; DM Sans has the functional clarity you want in body text and UI elements.
Libre Baskerville + Libre Franklin — Both "Libre" families are revival-style typefaces optimized for screen reading. Baskerville for authoritative prose, Franklin for clean, journalistic body text.
Nunito + Nunito Sans — For friendly, rounded interfaces. Nunito's rounded terminals make warm headings; Nunito Sans loses the roundness for slightly tighter body reading.
IBM Plex Serif + IBM Plex Sans + IBM Plex Mono — A comprehensive three-family system. IBM Plex is designed as a corporate type system with three distinct variants that always work together. This is the ideal choice for technical and SaaS products.
:root {
--font-heading: 'IBM Plex Serif', serif;
--font-body: 'IBM Plex Sans', sans-serif;
--font-code: 'IBM Plex Mono', monospace;
}
Source Serif 4 + Source Sans 3 — Adobe's Source families are designed as companions. Source Serif provides a warmth and editorial quality for body text; Source Sans handles UI and headings with neutral precision. Both have been refined across multiple versions and are among the most technically excellent families available for free.
When not to use a superfamily:
Superfamilies optimize for harmony over personality. If your brand requires a very specific typographic personality — something unusual, distinctive, or tied to a particular aesthetic — a superfamily may produce results that are harmonious but generic. In those cases, you'll need to pair fonts from different designers, applying the first four rules to ensure the combination works.
The five rules exist on a spectrum from "always apply" to "apply when you have sufficient experience to deviate." Rules 1, 2, and 4 are close to universal — violating them almost always produces worse typography. Rules 3 and 5 have more room for creative interpretation as your experience grows.
Use the font glossary to explore the technical details behind type classification, and use the font pairing tool to test any combination with your real content before committing. The rules give you the framework; your content and brand give you the context. Put those two things together and reliable, professional font pairing is within reach of any designer at any experience level.
폰트 페어링 마스터클래스
타이포그래피 용어
도구 사용해 보기
언급된 폰트
Christian Robertson이 Google의 Material Design 생태계를 위해 디자인한 이 네오그로테스크 산세리프는 웹과 Android에서 가장 널리 사용되는 서체입니다. 이중적 성격의 디자인은 기계적 정밀함과 자연스러운 읽기 리듬 사이에서 균형을 이루어 UI 레이블과 긴 본문 텍스트 모두에 잘 어울립니다. 가변 폰트는 너비와 웨이트 축을 지원하며 키릴, 그리스, 확장 라틴 문자도 함께 지원합니다.
Rasmus Andersson은 컴퓨터 화면을 위해 특별히 이 네오그로테스크를 여러 해에 걸쳐 다듬었으며, 디지털 디스플레이의 작은 크기에서도 높은 가독성을 확보하기 위해 자간과 x-height, 획 대비를 최적화했습니다. 광학 크기 축(opsz)은 캡션과 헤드라인에 맞춰 디자인을 자동으로 조정하며, 웨이트 축은 얇은 것부터 가장 굵은 것까지 전체 범위를 아우릅니다. 전 세계 대시보드, 문서 사이트, 개발자 도구에서 사실상의 표준 선택지가 되었습니다.
Claus Eggers Sorensen이 그린 이 고대비 모던 Serif는 Bodoni와 Didot의 전통을 따르며, 극적인 굵기 변화와 고해상도 렌더링을 요구하는 섬세한 헤어라인을 지니고 있습니다. 그 극적인 대비를 감상할 수 있는 에디토리얼 디자인, 럭셔리 브랜딩, 대형 헤딩에서 탁월합니다. 가변 웨이트 축과 키릴 문자 지원이 기존의 이탤릭체와 스몰 캡스 버전을 보완합니다.
Sorkin Type이 화면에서 편안하게 읽히도록 디자인한 Merriweather는 넉넉한 x-height, 살짝 콘덴스드된 글자 형태, 저해상도 화면의 작은 크기에서도 잘 견디는 튼튼한 세리프를 특징으로 합니다. 가변 폰트 구현이 이례적으로 풍부해 광학 크기, 너비, 웨이트 축을 동시에 제공하는데, 이는 캡션부터 헤드라인까지 정밀한 타이포그래피 제어를 가능하게 하는 드문 사례입니다. 작가와 출판사들은 긴 에디토리얼 콘텐츠와 블로그 타이포그래피에 Merriweather를 즐겨 사용합니다.
Source Sans는 Adobe의 첫 오픈소스 서체로, Paul D. Hunt가 사용자 인터페이스를 위한 깔끔하고 읽기 쉬운 산세리프로 디자인했으며, Source Sans 3는 웨이트 축 전반에 걸친 완전한 가변 폰트로서 가장 정제된 버전을 나타냅니다. Robert Slimbach의 캘리그래피 레터링 비례에서 도출된 휴머니스트 구조는 순전히 중립적인 그로테스크였을 수도 있는 것에 따뜻함을 더합니다. 키릴, 그리스, 베트남어를 아우르는 폭넓은 문자 지원 덕분에 다국어 문서화와 크로스 플랫폼 UI 디자인에 믿음직한 선택지입니다.
Frank Griesshammer의 Source Serif 4는 Source Serif 패밀리의 성숙한 진화형이자 Adobe의 Source Sans에 짝을 이루는 세리프로, 여러 버전을 거치며 광학 크기와 웨이트 가변 축을 갖춘 정교한 트랜지셔널 세리프로 다듬어졌습니다. opsz 축은 크기가 바뀔 때 글자 형태 디테일을 자동으로 조정할 수 있게 해줍니다 — 작은 크기에서는 간격을 넓히고 조리개를 열며, 디스플레이 크기에서는 비례를 조여 대비를 높입니다. 키릴, 그리스, 베트남어 지원 덕분에 에디토리얼 시스템, 기술 문서, 디지털 도서를 위한 유능한 글로벌 서체입니다.