Axiom

Typography & text

The 2-font limit

One typeface is almost always enough; weight and size carry the hierarchy. If you must pair, contrast a serif heading with a sans body — two sans faces differ too little to read as deliberate.

TagsSystemConsistency
Do

Manrope for headings + body

Don't

Arial headings + Verdana body

How to apply it

  1. 1

    Default to one typeface for everything, like Inter, across headings and body.

  2. 2

    If pairing, use exactly one serif for headings and one sans for body.

  3. 3

    Never combine two sans-serifs such as Roboto and Open Sans.

  4. 4

    Limit any project to two typefaces total, no exceptions.

Why it works

Each typeface carries its own rhythm of stroke contrast, x-height, and spacing; mixing two sans-serifs like Roboto and Open Sans puts two similar-but-different rhythms side by side, which reads as a mismatch rather than a deliberate contrast. A serif-plus-sans pairing signals hierarchy through genuine structural difference, or one typeface removes the risk entirely.

What breaks

Two similar sans-serifs next to each other look like a font-loading bug rather than a design choice, especially at similar weights and sizes, and teams end up debating which one is off with no clear answer.

Review questions

  1. 1

    Does the page use one typeface, or a clear serif-plus-sans pair?

  2. 2

    Are there two different sans-serif fonts appearing anywhere?

  3. 3

    Would a viewer describe the pairing as intentional contrast, not a mismatch?

Related rules