---
title: "Too many font families (design/too-many-font-families)"
description: "design/too-many-font-families: More than a display face, a text face and a mono face reads as unconsidered and costs extra font downloads."
canonical: https://void-design.vercel.app/rules/design/too-many-font-families
lastModified: 2026-09-16
---

# Too many font families

`design/too-many-font-families` · severity **warn** · category Design · detected by `void design` and `void audit`

## Why it matters

More than a display face, a text face and a mono face reads as unconsidered and costs extra font downloads.

## How to fix it

Pick one direction: a sans (or serif) for text, optionally a display face for headings, and a mono. Map them to --font-sans / --font-display / --font-mono.

## Example

```
:root { --font-sans: 'Inter Variable', system-ui, sans-serif; --font-mono: 'JetBrains Mono', ui-monospace, monospace; }
```

## More design rules

`void design` reports 19 rules in this category. Measured design heuristics from computed styles: font families, type scale, line length, palette and accent sprawl, spacing grid, radius sprawl, dark mode and the tells of generated UI.

- `no-type-scale` Too many distinct font sizes (no type scale) — [design/no-type-scale](https://void-design.vercel.app/rules/design/no-type-scale)
- `line-length-long` Body text lines are too long — [design/line-length-long](https://void-design.vercel.app/rules/design/line-length-long)
- `line-length-short` Body text lines are very short on desktop — [design/line-length-short](https://void-design.vercel.app/rules/design/line-length-short)
- `body-text-small` Body text is smaller than 15px on mobile — [design/body-text-small](https://void-design.vercel.app/rules/design/body-text-small)
- `body-line-height-tight` Body line-height is too tight — [design/body-line-height-tight](https://void-design.vercel.app/rules/design/body-line-height-tight)
- `heading-tracking` Large headings use default letter-spacing — [design/heading-tracking](https://void-design.vercel.app/rules/design/heading-tracking)
- `heading-no-balance` Headings do not use text-wrap: balance — [design/heading-no-balance](https://void-design.vercel.app/rules/design/heading-no-balance)
- `palette-sprawl` Too many distinct colors — [design/palette-sprawl](https://void-design.vercel.app/rules/design/palette-sprawl)

Detected by `void design` and `void audit`. Explain it in a terminal: `void rules design/too-many-font-families`
