Skip to main content

Search rules

Search all UI Guides rules by name, category, or source

designRAMS

Mixed Font Families, Weights, and Sizes

SHOULD

SHOULD: Use consistent font families, weights, and sizes throughout the interface. Limit to 2-3 font families maximum; take sizes from one typographic scale, with body text >= 16px on web and nothing below 12px.

Hold the whole type system to one decision: a small set of families, a named weight per role, and a single scale for sizes

Bad

Good

Why it matters

That six-word bullet under "Typography" is the entire upstream rule, and it names all three axes at once — families, weights, sizes — so this principle does too. (It was previously split across two entries; the split invented a distinction the source never made.) The explanation is ours. FAMILIES: every extra family is a new voice in the room, and readers do not hear "variety", they hear "assembled from parts".

Two is a system — one display, one text; a third needs a reason, usually a mono for code. WEIGHTS: give each weight a job (regular for body, medium for labels, semibold for headings) instead of nudging one paragraph to 500 because it looked thin. SIZES: a type scale is the index of the page — a reader who meets 15px, 16px, and 17px body copy on one screen cannot tell whether the difference means anything, so they stop trusting size as a signal at all.

Pick the scale (Tailwind's xs → 2xl is one), give each step a job, and never introduce a size to solve a one-off fitting problem; fix the layout instead. The common thread across all three: reach for weight and size WITHIN one family before you reach for a second family, and take every value from a named token rather than from a style attribute.

Built by Gleb Stroganov, design engineer at Evil Martians.

The rules come from other people's skills and guidelines — Vercel, Rauno Freiberg, @Ibelick, impeccable, Emil Kowalski, Tailwind, RAMS — each one credited on the Sources page. The work here is extraction and wiring: every rule is pulled into one corpus, given a good and a bad example you can operate, a MUST/SHOULD/NEVER rule an agent can paste, and a link back to where it came from.