What makes a good coding font
In code, every character has to be unambiguous: zero and capital O, one, lowercase l and capital I, and the many brackets and operators. A monospace font gives every character the same width so columns line up. Beyond that, the fonts here differ in three ways you can check on their own pages:
| Feature | What it means | Fonts in this list |
|---|---|---|
| Code ligatures | Character pairs like != or => drawn as one symbol; the file still contains the plain characters | JetBrains Mono, Fira Code, Cascadia Code, Iosevka, Commit Mono (off by default), Monaspace |
| True italics | A separately drawn italic, often used for comments and keywords | JetBrains Mono, Cascadia Code (with a cursive set), IBM Plex Mono, Hack |
| Symbol variants | Powerline or Nerd Font glyphs for fancy terminal prompts | Cascadia Code PL and NF, Hack (Powerline included), Monaspace NF |
Fira Code says the ligatures are only a rendering feature and the code stays ASCII-compatible, so a colleague without the font sees the same file.
Ligatures on or off
Ligatures are a matter of taste. If they confuse you, most of these fonts offer a way out:
- JetBrains Mono has a JetBrains Mono NL version without ligatures, and ligatures can be toggled in the editor settings.
- Cascadia comes as Cascadia Code with ligatures and Cascadia Mono without.
- Commit Mono ships its ligatures off by default, and only functional ones such as
!=turning into ≠. - Iosevka puts its default set in the calt feature; turning calt off removes them, and picking ligature groups needs a custom build.
- Monaspace splits its code ligatures into ten groups, ss01 to ss10, that you switch on one by one.
In VS Code the setting is "editor.fontLigatures": true or false. Source Code Pro, IBM Plex Mono, Geist Mono and Hack do not mention ligatures on their pages.
The licenses in plain words
All fonts here except Hack are under the SIL Open Font License 1.1. Its preamble says the fonts can be used, studied, modified and redistributed freely as long as they are not sold by themselves, and can be bundled, embedded and sold with any software. A few name a Reserved Font Name, which a modified version may not use: Cascadia Code reserves Cascadia Code, Source Code Pro reserves Source and IBM Plex reserves Plex.
Hack is under the MIT License, with the Bitstream Vera Sans Mono parts under the Bitstream Vera License. Our guide on font licenses explains the OFL and other licenses in more detail, and the free fonts list covers text and display fonts.
Try a font on your own code
Font specimens show perfect sample code. Your own files look different, so test with them: paste a messy JSON response into the JSON formatter, a chunk of markup into the HTML formatter, or notes into the Markdown editor, then set the font in your editor and compare at your usual size. Check zero against O, one against l and I, and how braces and quotes look at 13 or 14 pixels.
Commit Mono lets you pick weight, letter spacing, line height and alternate characters on its website before you download. For the editor itself, see the free code editors list.
Frequently asked questions
Can I use these coding fonts at work?
Yes. All of them except Hack are under the SIL Open Font License 1.1, which allows use and redistribution and bundling with any software, as long as the font is not sold by itself. Hack is under the MIT License, with Bitstream Vera parts under the Bitstream Vera License, and its page says it permits unlimited print, desktop, web and software embedding use.
Which coding fonts have no ligatures?
JetBrains Mono NL is the version of JetBrains Mono without ligatures, and Cascadia Mono is Cascadia without them. Commit Mono ships its ligatures off by default. Source Code Pro, IBM Plex Mono, Geist Mono and Hack do not mention ligatures on their pages.
Do ligatures change my code?
No. Fira Code describes ligatures as only a rendering feature, and the underlying code stays ASCII-compatible. Someone who opens the file with another font sees the plain characters.
Is JetBrains Mono free for commercial use?
Yes. JetBrains Mono is under the SIL Open Font License 1.1, and its repository says it can be used free of charge for both commercial and non-commercial purposes, without attribution to JetBrains.
Which coding fonts include Nerd Font or Powerline symbols?
Cascadia comes in PL versions with embedded Powerline symbols and NF versions with Nerd Font symbols. Hack includes Powerline support by default, and Monaspace ships Nerd Fonts builds.