Font pairing
IBM Plex Sans+IBM Plex Serif
IBM Plex Sans headings over IBM Plex Serif body. A unified corporate family where sans and serif were drawn to sit on the same grid.
Both faces share stem widths, x-height, and proportions, so the swap from sans to serif reads as a tonal shift, not a clash. Long-form documentation stays calm and scannable.
The art of typography
Typography is the visible voice of design. The right pairing balances contrast with consistency, a heading face that earns attention, a body face that earns trust. Test it at the sizes you actually ship, on the surfaces your readers actually use.
IBM Plex Sans (heading)
IBM Plex Serif (body)
Contrast Check
AAAThe quick brown fox
jumps over the lazy dog · 0123456789
- AA normal
- passes
- AA large
- passes
- AAA normal
- passes
- AAA large
- passes
Default colors come from the Editorial Cream palette. Adjust above to test your own combination, these are the recommended heading text against the recommended body / surface color.
Mood
Use cases
Tags
How to Use This Pairing
This IBM Plex Sans + IBM Plex Serif pairing works by combining the visual energy of a sans serif typeface for headlines with the sustained readability of a serif for body text. The contrast in typeface classification creates a clear hierarchy that guides the reader from headline to body without confusion.
For the heading, use 500 or 600 weight, enough to anchor the page without overwhelming the layout. For body text, 400 or 500 weight keeps reading comfortable across paragraphs. If your layout calls for subheadings, step down one weight from your display heading to maintain clear distinction between levels. See the type scale calculator to generate a scale with mathematically coherent steps.
The mood keywords for this pairing, professional, technical, editorial, describe the overall feeling the combination creates. Match these to the emotional register of your content. Formal content suits more neutral moods; creative or lifestyle brands benefit from warmer or more distinctive combinations. Browse all font pairings to compare mood categories and find a pairing that matches your brand tone.
IBM Plex Sans is a humanist sans-serif designed by IBM as a corporate typeface. It has a neutral, technical character suited to documentation and enterprise UI.
IBM Plex Serif is a transitional serif designed to pair with IBM Plex Sans. It brings a calm, professional voice to long-form documentation.
Production Code
Copy-paste into your project, no build step required.
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=IBM%20Plex%20Sans:wght@500;600;700&family=IBM%20Plex%20Serif:wght@400;500&display=swap" rel="stylesheet">Setting It up in Your Project
Start by loading both fonts from Google Fonts using the production code snippet above. If you are using the Google Fonts link, both IBM Plex Sans and IBM Plex Serif load from a single URL. The Google Fonts API serves fonts from Google's global CDN with automatic version updates. For self-hosting or a design token approach, copy both the heading and body font-face declarations and assign them to distinct CSS custom properties.
In your CSS, set the heading font family on all h1 to h6 elements, and the body font family on the body or p selector. Using CSS custom properties for font families makes it easy to swap fonts across the entire site by editing one line.
This pairing works best when the heading size creates clear visual hierarchy above the body text. A common starting ratio is 2.5 to 3 times the body font size for h1, stepping down by approximately 1.2× for each subsequent heading level. Use the type scale calculator to generate a mathematically coherent scale.
Line-height for body text should sit between 1.4 and 1.6 times the font size for comfortable reading. Headings benefit from tighter line-height, 1.1 to 1.25 times, to bring the lines close enough that they read as a single unit rather than a list.
Related Pairings
View allThe art of typography
Good typography is the visible voice of design, quiet when it should be, loud when it must.
PreviewIBM Plex Sans + Lora
IBM Plex Sans headings over Lora body. A neutral technical sans for section titles and a calligraphic serif for long-form prose. Used in product docs and editorial corporate sites.
The art of typography
Good typography is the visible voice of design, quiet when it should be, loud when it must.
PreviewIBM Plex Mono + IBM Plex Sans
IBM Plex Mono headings over IBM Plex Sans body. A common pattern in developer docs where section titles are set in monospace and prose in a humanist sans.
The art of typography
Good typography is the visible voice of design, quiet when it should be, loud when it must.
PreviewFira Code + IBM Plex Sans
Fira Code headings over IBM Plex Sans body. A programming monospace with ligatures sets the section titles, and a humanist sans carries the prose. Useful for developer docs and API reference sites.
Frequently Asked Questions
- What makes a good font pairing?
- A good pairing creates contrast through typeface classification while maintaining harmony in style, x-height, and overall proportion. The heading typeface should be visually distinct from the body typeface, a serif with a sans-serif, a geometric with a humanist, so the reader instantly understands the hierarchy without needing to read the text. At the same time, the two faces should share enough character that they feel like they belong to the same design system.
- Can I swap the heading and body fonts?
- This pairing is designed with IBM Plex Sans as the heading and IBM Plex Serif as the body. Swapping them, using IBM Plex Serif for headings and IBM Plex Sans for body, is technically possible but typically not recommended. Each typeface is chosen for its strengths at its intended size range. IBM Plex Sans has design characteristics that work best at display sizes, and IBM Plex Serif is optimised for sustained reading at body sizes.
- Which CSS weights should I use for this pairing?
- For headings, this pairing is designed to work with 500 or 600 or 700 weights. For body text, 400 or 500 weights provides the best balance of legibility and visual weight. If you are using a variable font, you can fine-tune the weight to match your layout exactly rather than snapping to fixed steps.
- Is this pairing free for commercial use?
- Both IBM Plex Sans (OFL-1.1) and IBM Plex Serif (OFL-1.1) are open-source fonts with permissive licenses. They can be used in personal and commercial projects, including client work, without attribution requirements. Confirm with your legal team if you are building a product that redistributes fonts, since some uses have specific license requirements.
Want a Different Combination?
Try the deterministic pairing generator or open the typography playground to mix your own.