Best free programming fonts
This is not just a simple list of monospaced fonts for formatting code snippets. It’s a very selective set of typefaces that are designed and optimized for programming and contain ligatures for common programming multi-character combinations.
Fira Code
Fira Code is an extension of Fira Mono, that adds a lot of ligatures. For preview images, details, and pull requests visit the Fira Code Github repo.
Projects that use Fira Code: All JetBrains products, CodePen, Blink Shell, Klipse, IlyaBirman.net, EvilMartians.com, Web Maker, FromScratch.
Fira Code works in more than 50 editors.
- Language support: Latin Extended, Cyrillic Extended, Greek Extended
- Format: desktop (.OTF, .TTF), webfonts (.WOFF, .WOFF2, .EOT)
- License: SIL Open Font License v1.1 → Licenses explained
- Includes 5 styles: Light, Regular, Medium, Bold, Retina
Iosevka
Iosevka is a slender monospace sans-serif and slab-serif typeface inspired by Pragmata Pro, M+ and PF DIN Mono.
For preview images, details, and pull requests visit the Iosevka Github repo.
View specimen (all characters and styles)
- Language support: 2000 glyphs (Latin Extended, Greek, Cyrillic, phonetic, PowerLine glyphs). IosevkaCC variant is also provided to be compatible with most CJK typefaces
- Format: desktop (.TTF), webfonts (.WOFF, .WOFF2)
- License: SIL Open Font License v1.1 → Licenses explained
- Includes 54 styles:
- Iosevka Sans: 9 weights (Thin, Extralight, Light, Regular, Medium, Semibold, Bold, Extrabold, Heavy) plus matching italics and obliques
- Iosevka Slab: 9 weights (Thin, Extralight, Light, Regular, Medium, Semibold, Bold, Extrabold, Heavy) plus matching italics and obliques
- Has OpenType features like multiple Stylistic Alternates Sets
Hasklig
Hasklig is a fork of Source Code Pro that adds ligatures for code.
Composite glyphs are problematic in languages such as Haskell that use operators like =>, -< or >>= extensively. The readability of complex code improves with ligatures.
Some Haskell programmers use Unicode symbols (⇒, ← etc.), which are valid in the GHC. However, the symbols are one character wide and eye-straining. And when displayed as substitutes to the underlying multi-character representation, the characters go out of alignment.
- Language support: Latin Extended
- Format: desktop (.OTF)
- License: SIL Open Font License v1.1 → Licenses explained
- Includes 14 styles: 7 weights (ExtraLight, Light, Regular, Medium, SemiBold, Bold, Black) plus matching italics
Hack
Hack is designed to be a workhorse typeface for source code. It has great legibility at commonly used source code text sizes, with a sweet spot that runs in the 8 – 14 range.
View specimen
- Language support: ASCII, Latin-1, Latin Extended A, Greek, Cyrillic
- Format: desktop (.OTF)
- License: MIT License → See license text
- Includes 4 styles: 2 weights (Regular, Bold) plus matching italics
- Powerline Support: Yes, included by default
You can also check out Alt Hack, a stylistic alternate glyph library. It provides alternate glyph design source files (*.glif) to support drag + drop + overwrite existing source Unicode code point customization.