1---2name: typography-pairings3description: Curated font pairings by character with type scale ratios (minor third, major third, perfect fourth), fluid typography formulas using clamp(), weight and line-height rules per context, and anti-patterns for overused or generic font combinations. Use proactively when selecting a font pairing for a brand or product, choosing a type scale ratio, implementing fluid typography for responsive scaling, avoiding generic font combinations, or setting weight, line-height, and letter-spacing rules per context.4---56# Typography Pairings78Curated font pairings organized by character and context, with computed type scales and fluid typography formulas.910## Purpose1112- Provide distinctive, intentional typography choices13- Map pairings to personality and use case14- Include ready-to-use type scale systems15- Ban overused AI-default font combinations1617---1819## Curated Pairings2021### Serif + Sans-Serif (Classic Contrast)2223| Character | Heading | Body | Best For |24|-----------|---------|------|----------|25| Editorial Authority | Playfair Display | Source Serif Pro | Publishing, luxury, longform |26| Modern Heritage | Cormorant Garamond | Lato | Fashion, hospitality, cultural |27| Warm Storytelling | Lora | Merriweather Sans | Blogs, memoir, narrative |28| Academic Gravitas | Libre Baskerville | Source Sans 3 | Education, research, institutional |29| Art Magazine | DM Serif Display | DM Sans | Gallery, creative, editorial |30| Classic Refinement | Crimson Pro | Cabin | Law, finance, traditional |31| Elegant Contrast | Spectral | Work Sans | Architecture, design, portfolio |3233### Sans-Serif + Sans-Serif (Contemporary)3435| Character | Heading | Body | Best For |36|-----------|---------|------|----------|37| Tech Confidence | Sora | Plus Jakarta Sans | SaaS, enterprise, dashboards |38| Geometric Precision | Outfit | Albert Sans | Fintech, data, analytics |39| Friendly Professional | Lexend | Nunito Sans | HR tech, onboarding, education |40| Bold Startup | Clash Display | General Sans | Landing pages, marketing, brand |41| Clean Authority | Manrope | Figtree | Enterprise, B2B, productivity |42| Soft Modern | Urbanist | Atkinson Hyperlegible | Accessibility-first, healthcare |43| Nordic Minimal | Red Hat Display | Red Hat Text | Design tools, minimal UI |44| Sharp & Direct | Space Grotesk | Geist | Developer tools, technical docs |45| Warm Geometric | Gilda Display | Jost | Hospitality, events, lifestyle |46| Human Tech | Bricolage Grotesque | Instrument Sans | Community, social, collaboration |4748### Monospace + Sans-Serif (Technical)4950| Character | Heading/Code | Body | Best For |51|-----------|-------------|------|----------|52| Tech Precision | JetBrains Mono | Inter | IDE, developer tools, docs |53| Hacker Chic | Fira Code | Fira Sans | Terminal, CLI, code editors |54| Retro Terminal | IBM Plex Mono | IBM Plex Sans | Retro tech, system admin |55| Clean Code | Cascadia Code | Segoe UI | Microsoft ecosystem, tutorials |56| Indie Dev | Victor Mono | Karla | Indie tools, creative code |5758### Display + Body (High Impact)5960| Character | Heading | Body | Best For |61|-----------|---------|------|----------|62| Playful Energy | Fredoka | Nunito | Kids, games, casual apps |63| Bold Statement | Archivo Black | Archivo | Sports, events, activism |64| Retro Futurism | Orbitron | Exo 2 | Sci-fi, space, gaming |65| Handcrafted Digital | Caveat | Quicksand | Personal brand, craft, artisan |66| Maximalist Pop | Bebas Neue | Barlow | Posters, fashion, streetwear |67| Elegant Display | Tenor Sans | Poppins | Luxury, minimalist, gallery |68| Industrial Strength | Oswald | Roboto Flex | Manufacturing, logistics, utility |69| Calligraphic Contrast | Playfair Display SC | Montserrat Alternates | Wedding, luxury events, premium |7071---7273## Type Scale Systems7475### Minor Third (1.200) — Compact, professional7677| Step | Size | Use |78|------|------|-----|79| xs | 11.11px (0.694rem) | Captions, legal |80| sm | 13.33px (0.833rem) | Labels, metadata |81| base | 16px (1rem) | Body text |82| lg | 19.2px (1.2rem) | Subheadings |83| xl | 23.04px (1.44rem) | Section titles |84| 2xl | 27.65px (1.728rem) | Page headings |85| 3xl | 33.18px (2.074rem) | Hero text |8687### Major Third (1.250) — Balanced, versatile8889| Step | Size | Use |90|------|------|-----|91| xs | 10.24px (0.64rem) | Captions, legal |92| sm | 12.8px (0.8rem) | Labels, metadata |93| base | 16px (1rem) | Body text |94| lg | 20px (1.25rem) | Subheadings |95| xl | 25px (1.563rem) | Section titles |96| 2xl | 31.25px (1.953rem) | Page headings |97| 3xl | 39.06px (2.441rem) | Hero text |9899### Perfect Fourth (1.333) — Dramatic, editorial100101| Step | Size | Use |102|------|------|-----|103| xs | 9px (0.563rem) | Captions, legal |104| sm | 12px (0.75rem) | Labels, metadata |105| base | 16px (1rem) | Body text |106| lg | 21.33px (1.333rem) | Subheadings |107| xl | 28.43px (1.777rem) | Section titles |108| 2xl | 37.9px (2.369rem) | Page headings |109| 3xl | 50.52px (3.157rem) | Hero text |110111---112113## Fluid Typography114115Use `clamp()` for responsive scaling between viewport widths:116117```css118/* Formula: clamp(min, preferred, max) */119/* preferred = min + (max - min) * ((100vw - minVW) / (maxVW - minVW)) */120121--text-base: clamp(1rem, 0.5rem + 0.75vw, 1.125rem);122--text-lg: clamp(1.2rem, 0.8rem + 0.9vw, 1.5rem);123--text-xl: clamp(1.44rem, 0.9rem + 1.2vw, 2rem);124--text-2xl: clamp(1.728rem, 1rem + 1.6vw, 2.5rem);125--text-3xl: clamp(2.074rem, 1.2rem + 2vw, 3.5rem);126```127128**Viewport breakpoints:** min = 320px, max = 1280px129130---131132## Weight & Leading Rules133134| Context | Font Weight | Line Height | Letter Spacing |135|---------|-------------|-------------|----------------|136| Body text | 400 (regular) | 1.5–1.75 | 0 |137| UI labels | 500 (medium) | 1.2 | 0.01em |138| Subheadings | 600 (semibold) | 1.3 | -0.01em |139| Headings | 700 (bold) | 1.1–1.25 | -0.02em |140| Display/Hero | 800-900 (extra-bold) | 1.0–1.1 | -0.03em |141| Code | 400 | 1.6–1.7 | 0 |142| Captions | 400 | 1.4 | 0.02em |143144**Rule:** As font size increases, line-height decreases and letter-spacing goes negative.145146---147148## Anti-Generic Bans149150| Banned | Why |151|--------|-----|152| Inter as default/only font | Most overused AI choice — pick it intentionally or not at all |153| Roboto for everything | Android default, signals zero design thought |154| Montserrat + Open Sans | The "free font cliché" — on every template site |155| Poppins as sole font | Overused in generic SaaS, lost all distinctiveness |156| system-ui as design choice | System font stack is for apps, not for designed experiences |157| Using 3+ font families | Visual noise, inconsistent, harder to maintain |158| Same weight for heading + body | Destroys hierarchy, looks unprofessional |159160---161162## Validation Checklist163164- [ ] Font pairing has clear character rationale165- [ ] Heading and body fonts have sufficient contrast (different classification or weight)166- [ ] No more than 2 font families (3 only if including monospace for code)167- [ ] Type scale follows consistent ratio168- [ ] Line heights set per context (not one value for all)169- [ ] Font weights create clear hierarchy (min 200 weight difference heading vs body)170- [ ] No banned combinations used without explicit justification171- [ ] Fluid typography applied for responsive scaling