11 Best Free Programming Fonts in 2020

Find your new favorite programming font

Mateusz Hadryś
5 min readAug 5, 2020

You stare at your code a lot. You should like what you see.

If you’re using the default font in your code editor, you’re missing out.

Programming fonts make it easy to distinguish between similiar characters like: o0O and iIlL1 and can include special coding-related ligatures to for example make operators stand out.

A few example ligatures from Fira Code

This list includes basic information and screenshots for all of the fonts, along with additional comments and download links.

Fira Code

Ligatures ✔️ • Open Source ✔️

One of the most popular coding fonts. Comes with ligatures for many programming languages, console UI (including Powerline symbols) and more. It also comes with a few alternate glyph variants, so you can tune the font to your liking.

The project is under active development and is frequently updated with fixes and new features. The Github page contains detailed installation instructions for many environments.

Download: Github

JetBrains Mono

Ligatures ✔️ • Open Source ✔️

JetBrains Mono is the default font bundled with all JetBrains IDEs. It is however free & open-source, so you can download it and use in whatever code editor / IDE you want. If you don’t like the ligatures, you can use the “No ligatures variant”.

Download: JetBrainsGithub

Cascadia Code

Ligatures ✔️ • Open Source ✔️

Cascadia Code is Microsoft’s new terminal & coding font. It is the default font in the new Windows Terminal but you can download it and use it in you coding environment of choice.

Download: Github

Iosevka

Ligatures ✔️ • Open Source ✔️

One of the most customizable coding fonts I’ve every seen. Includes ligatures for multiple programming languages.

It also comes with over 15 prebuilt variants that replace some glyphs to look more like other coding fonts, like: Fira Code, Consolas, Monaco.Check out the Github page for all customization options.

Download: Github

Monoid

Ligatures ✔️ • Open Source ✔️

A customisable open source font with a bitmap look. Inlcudes basic coding ligatures. Has a few variants allowing you to adjust the tracking, line height, alternate glyphs or turn off the ligatures.

Its creator also wrote some articles about the font’s design, which you might find interesting:

Download: Website

Victor Mono

Ligatures ✔️ • Open Source ✔️

Image using a different theme to showcase the cursive italics

A free alternative to the much to the much-loved & super-expensive Operator Mono. It comes with coding ligatures and semi-connected cursive italics that make your code pop, but also require a theme that supports them. Usually looking for Operator versions of a theme will return compatible results.

Download: Website

IBM Plex Mono

Ligatures ❌ • Open Source ✔️

Part of the IBM Plex family. Features very crisp and easily-readable glyphs but sadly doesn’t include programming ligatures.

Download: Github

Hack

Ligatures ⚠️ • Open Source ✔️

A good-looking font that sadly doesn’t come with coding ligatures by default. There is however a fork of the project that adds ligatures to it.

Download: GithubWebsite

Fantasque Sans Mono

Ligatures ✔️ • Open Source ✔️

A coding font with more fancy-looking glyphs and a few variants. I would recommend a bigger font size with this one.

Download: Github

Inconsolata (Ligconsolata)

Ligatures 🚧 • Open Source ✔️

Using the Ligconsolata variant for Ligature support

An oldie but a goodie, and still actively developed. It has some of the most unique-looking ligatures. The ligatures are only available in the Ligconsolata variant.

Download: Github

Input Mono

Ligatures ❌ • Open Source

As far as I can say this one is not open source but it’s still a great-looking font. It also doesn’t have coding ligatures but it’s highly customizable, allowing you to configure the width, line height and alternative glyphs.

Download: Website

Honorable Mentions

--

--

Mateusz Hadryś

I write about web development tips & news. Follow me on twitter for more: twitter.com/HadrysMateusz