# Monospace fonts for code

A font for code has to keep columns aligned, keep similar characters distinct and stay readable for hours. These are the free and paid monospace fonts people compare for code.

## What to look for

- Every character has the same width, so code and tables line up.
- Zero and capital O are drawn apart, and so are one, lowercase l and capital I.
- Ligatures can be turned off, so `!=` and `->` show as the characters you typed.
- Several weights give emphasis in editors and terminals.
- Box-drawing characters join across lines in terminal interfaces.

## Katagami Mono

> const cells = [0O0, 1lI]; // -> => !=

Katagami Mono has 3,283 characters in a 0.625 em cell and weights from 100 to 700. Its code ligatures stay off until you turn on `dlig`, and it has 160 box-drawing and block characters. It is free under the SIL Open Font License. The [Katagami Mono page](https://katagami.kevinliu.studio/katagami-mono) has the full specifications.

## Comparison

| Font | License | Weights | Variable axes | Notable features |
|---|---|---|---|---|
| Katagami Mono | SIL Open Font License 1.1 | 100 to 700 | wght | Code ligatures in dlig that are off by default, disambiguated 0 O 1 l I, box drawing |
| JetBrains Mono | SIL Open Font License 1.1 | 100 to 800 | wght 100 to 800 | Programming ligatures on by default (a no-ligature build exists), cv01 to cv20, taller lowercase |
| Fira Code | SIL Open Font License 1.1 | 300 to 700 | wght 300 to 700 | Programming ligatures, character variants, stylistic sets, box drawing |
| IBM Plex Mono | SIL Open Font License 1.1 | 100 to 700 | wght 100 to 700 (variable release, 2026) | Dotted zero with a slashed alternate, an italic after the IBM Selectric |
| Geist Mono | SIL Open Font License 1.1 | 100 to 900 | wght 100 to 900 | Programming ligatures opt-in through ss11 (since 1.7.0), box drawing |
| Berkeley Mono | U.S. Graphics license (paid; the Developer tier is personal use only) | Thin to Black (12 weights) in 5 widths | wdth, wght, slnt | Programming ligatures, stylistic sets for zero and seven, box drawing, Powerline glyphs |

- [Katagami Mono vs Geist Mono](https://katagami.kevinliu.studio/compare/katagami-mono-vs-geist-mono): Katagami Mono and Geist Mono are free monospace fonts under the SIL Open Font License. Each one has a sans in the same family to pair with.
- [Katagami Mono vs JetBrains Mono](https://katagami.kevinliu.studio/compare/katagami-mono-vs-jetbrains-mono): Both are free monospace fonts for code under the SIL Open Font License. JetBrains Mono turns its code ligatures on by default. Katagami Mono keeps them off until you turn on dlig.
- [Katagami Mono vs Fira Code](https://katagami.kevinliu.studio/compare/katagami-mono-vs-fira-code): Fira Code is a monospace font built around programming ligatures. Katagami Mono has a small set of code ligatures that stay off by default.
- [Katagami Mono vs IBM Plex Mono](https://katagami.kevinliu.studio/compare/katagami-mono-vs-ibm-plex-mono): Both are free monospace fonts under the SIL Open Font License, and each is part of a larger family.
- [Katagami Mono vs Berkeley Mono](https://katagami.kevinliu.studio/compare/katagami-mono-vs-berkeley-mono): Berkeley Mono is a commercial monospace font. Katagami Mono was measured against it for its cell and arms, contains none of its outlines, and is free under the SIL Open Font License.

---

Source: https://katagami.kevinliu.studio/fonts-for/coding
