What are the best programming fonts?

As much as choice of a font is subjective there are important criteria to consider when choosing a programming font. The characters should be clear, easy to read, in cases of clashing ones such as 1, l, i or O, o, 0 easily distinguishable, differences between different kinds of brackets, quotes and parentheses should be clear, punctuation should be emphasized and they shouldn't break up words or sentences due to uneven character widths.

There are two ways fonts are drawn - as bitmaps or as vectors. Vector fonts allow more efficient scaling, but for screens with resolution below 720p it might be worth considering bitmap fonts as they are generally more legible at smaller sizes on low-resolution screens.

This question can be improved. You can help by:

  • Adding sources to pros and cons.


Why do you recommend Source Code Pro?

Why do you not recommend Source Code Pro?

An open source programming font released by Adobe, made with the intent of maximizing usability and avoiding common design flaws in monospaced fonts.

Easy on eyes

Characters are easily readable. They have consistent widths across all weights as to not break up words, commonly used programming symbols such as va...

Legible on all displays

The characters have been made to be easily discernible and usable regardless of font size, weight and display.

Missing support for Cyrillic and Greek letters

While there's no support for Cyrillic and Greek characters yet, work on them has already begun.


Why do you recommend Consolas?

Why do you not recommend Consolas?

Available for Windows and OS X

The font is available on machines running Windows Vista, Windows 7, Windows 8 and Windows 8.1 as well as part of Microsoft Office 2007 and Microsoft...

Includes a large number of unicode ranges

Consolas supports 30+ unicode ranges including Greek, Cyrillic and Thai for a total of 2735 glyphs.

Poor legibility with small font-sizes on non-hidpi screens

Consolas in the 9 to 13pt range is hard on the eyes with any monitor that's 1080p or below.


Why do you recommend Monaco?

Why do you not recommend Monaco?

Easy on eyes

Monaco's rendering is similar to that of Consolas but slightly more playful. Each character seems to be a tiny bit larger when compared to Conso...

Good differentiation between clashing characters

The curly braces are easily distinguishable from parentheses, 0 from O, 1 from l, etc.

Only comes with Mac OS X

There is no legal way to install Monaco on other platforms.

Why do you recommend Ubuntu Mono?

Why do you not recommend Ubuntu Mono?

Excellent readability

Line thickness, shape, and spacing help recognize characters and words correctly the first time through without eyes having to skip back and re-read.

Easily distinguishable characters

Dotted zeros to distinguish from capital O and lower case letter l is very different from the number one.

Lowercase 'm' is weird and stands out

The lowercase 'm' in Ubuntu Mono really stands out because of its unusual shape, which disrupts attention when reading.


Why do you recommend Inconsolata-g?

Why do you not recommend Inconsolata-g?

Free and open source

Released under the Open Font License of SIL

Fixes clashing character similarity of inconsolata

Inconsolata-g is a variant of the popular Inconsolata that fixes the similarity between"1" [one] and the "l" [lower-case ell].

Renders lines as dashes in TUI interfaces

Lines in things like midnight commander, the treeview in htop, tmux panes, the tree command, et al, have ugly dashed lines instead of straight lines...

Why do you recommend DejaVu Sans Mono?

Why do you not recommend DejaVu Sans Mono?

This nice open source font family is derived from the Bitstream Vera family, itself close to the Microsoft core Web fonts (see Andale Mono).

Excellent unicode support

DejaVu Sans Mono has one of the most complete Unicode fonts available. This means you have access to a wide range of special symbols including mathem...

Nice uniform spacing

The font is well spaced as to not break up words.

No cons added yet


Why do you recommend Anonymous Pro?

Why do you not recommend Anonymous Pro?

Anonymous Pro (2009) is a family of four fixed-width fonts designed especially with coding in mind.

The best rendering character for DIGIT ONE


Easily legible at small sizes as a bitmap font

Exaggerated italics

The italicised version of the font is too slanted, meaning that italicised comments in code look really unbalanced.

Why do you recommend Envy Code R?

Why do you not recommend Envy Code R?

Bold font is the same width than the regular weight font

The bold version has the same width as the normal version which is useful for syntax highlighting.

Fills out the space well

Envy Code R also fits more into a given width when compared to Source Code Pro.

Lower Case "w"

The lower case "w" is a bit distinct and distracting, due to the narrow nature of the font. Could cause a distraction.

Why do you recommend Menlo?

Why do you not recommend Menlo?

Menlo is a monospaced sans-serif typeface designed by Jim Lyles. The face first shipped with OS X Snow Leopard. Menlo is based upon the Open Source font Bitstream Vera and the public domain font Deja Vu.

menlo sample enter image description here

No pros added yet

Doesn't work at size 10

Menlo displays as expected for size 11 and bigger, but doesn't seem to work very well at size 10. I've noticed the following problems:Zero...


Why do you recommend Droid Sans Mono?

Why do you not recommend Droid Sans Mono?

No pros added yet

Zero is not slashed or dotted


Why do you recommend Liberation Mono?

Why do you not recommend Liberation Mono?

Liberation Mono is styled closer to Liberation Sans than Monotype's Courier New, though its metrics match with Courier New. The Liberation fonts are intended as free, open-source replacements of the aforementioned closed source fonts.

enter image description here

Compact line height

Just like Courier New, metrics of which this font emulates, its line height isn't too big, which results in more lines on the screen, compared to...

Has Bold typeface

No cons added yet

Why do you recommend Pragmata Pro?

Why do you not recommend Pragmata Pro?

A very narrow, highly legible programming font. Noteworthy for having quite a bit of Unicode implemented, including the APL codepoints.

ideal font for coding no interline spacing Hand hinted


Very clear and legible

The font has been hand-hinted with legibility in mind.

Narrow width saves a lot of space compared

The compact design of the fonts allows effective editing in 2-3 windows side-to-side, even on a laptop screen.

Can be expensive

The most basic version is less than $3 USD but the cost jumps to $20 for bold and can get as high as $225.


Why do you recommend Monofur?

Why do you not recommend Monofur?


(Click the image for a bigger image and here for a massive image)


Letterforms are highly distinct

It's simple, beautiful, stylish

No cons added yet


Why do you recommend Terminus?

Why do you not recommend Terminus?

(Click the image for a bigger image and here for a massive image)

Note: The small size of this font makes it hard to compare at 11pt, please leave a comment if you think I should up the size for the screenshots.

Better rendering in code editor: And in the console/terminal:

The images are actually PNG files, although the url says jpg.


Terminus is the closest thing to 6x13 fixed that comes pre-packaged on modern Linux distributions. Remember to turn off aliasing. Bitmap fonts ftw.

Terminus is not going fat

In my system there is just one font which is not fatty when it's relatively big. And now it works with IDEA. Terminus is just awesome font.


Italicized Terminus TTF doesn't appear as aesthetically pleasing as it was intended.

Why do you recommend Meslo LG?

Why do you not recommend Meslo LG?

Meslo LG is a customized version of Apple’s Menlo-Regular font. Screenshots are from the M variant.

(Click the image for a bigger image and here for a massive image)


Patched Powerline version exists

A patched version with additional glyphs for Vim Powerline is easily downloadable

No cons added yet

Why do you recommend Andale Mono?

Why do you not recommend Andale Mono?

Was offered by Microsoft as their core Web fonts, and freely redistributable, MS no longer offers it free on their site. However, the original license allowed free redistribution, so other places make them available.

(Click the image for a bigger image and here for a massive image)

This fixed-width font is very nicely designed, and took care of distinguishing some easily confused characters like 0O or 1lI. Unlike Source Code Pro, the boldface font is not too heavy nor is the italic font too spindly.

Excellent legibility.

Easy to distinguish 0 from O, a from o, and I from l from 1.

Good font variants

Boldface variant is not too heavy; italic face is not too spindly. (Contrast with Source Code Pro, which is very similar in the regular font face.)

No cons added yet


Why do you recommend M+ 1m?

Why do you not recommend M+ 1m?

M+ M emphasize the balance of natural letterform and high legibility. while M+ MN is aimed at a new distinctive design for a terminal font specialized to programming.

The M+ fonts actually have two different monospace forms in five weights each and both are very nice for programming. One of the major advantages for both is that the light and thin weights do a good job of compensating for OS X's overly-heavy rendering of light text on dark backgrounds.

M+ 1m

High legibility

No cons added yet

Why do you recommend Proggy Clean?

Why do you not recommend Proggy Clean?

(Click the image for a bigger image and here for a massive image)


Hipster among hipsters

Even hipster will marvel at this font, praising you are the new hipster lord. It is best suited at around 19px (tested on mac). Overall, better reada...


This is, of course, intentional; but can be hard to look at compared to other smooth monospace fonts.

Why do you recommend Lucida Console?

Why do you not recommend Lucida Console?

Mono-Space - Curlies, square brackets, comas, and periods are distinguishable even at 8 pt font, and comes with every windows box.

One of the original monospaced fonts available for X11R6.

(Click the image for a bigger image and here for a massive image)


No pros added yet

No cons added yet

Why do you recommend PT Mono?

Why do you not recommend PT Mono?

(Click the image for a bigger image and here for a massive image)


No pros added yet

No cons added yet

Why do you recommend Dina?

Why do you not recommend Dina?

Dina is a monospace bitmap font, primarily aimed at programmers. It is relatively compact to allow a lot of code on screen, while (hopefully) clear enough to remain readable even at high resolutions.

In designing a programming font the following guidelines were followed:

  • Needs to be monospaced
  • It has to be easy to see the difference between i, l, 1, I
  • It has to be easy to see the difference between o, O, 0
  • The symbols used in programming languages have to look 'right'
  • Braces should line up nicely
  • Still has to be pleasant to read passages of text

enter image description here

Download link: http://www.donationcoder.com/Software/Jibz/Dina/

No pros added yet

No cons added yet


Why do you recommend GohuFont?

Why do you not recommend GohuFont?

Gohu Gohufont is a monospace bitmap font well suited for programming and terminal use.

It is intended to be very legible and offers very discernable glyphs for all characters, including signs and symbols. Here is what it looks like

(Click the image for a bigger image and here for a massive image)


Unique glyphs

Easy to distinguish characters at small sizes.

Bitmap only

Certain cairo powered apps fail to render them (e.g. sublime text on certain Linux distros).


Why do you recommend TheSans Mono?

Why do you not recommend TheSans Mono?

enter image description here

TheSans Monospace has been derived from TheSans, the sans serif part of Luc(as)'s Thesis family. This new variation started as a kind turn to Thomas Merz, probably the most expertised PostScript programmer in the world. In his book "The PostScript and PDF Bible" TheMono is being used for all PostScript code. The idea is simple, give all characters equal widths. However, it turned out to be a very interesting and time consuming job. It took another 9 months to grow to its final state.

The MonoSpace appears to function very well for correspondence. A written letter in ThesisMono immediately has a personal communicative touch, and doesn't look like a detouched "print type".

A considerable amount of time has been invested in achieving an optimal screen display. For often used sizes (9, 10, 11, 12 and 14 point) the bitmaps have been hand-pixeled. (These work on mac only.) Because of extensive hand editing of hint-instructions, TheSans Mono is optimally readable in other sizes as well as on PCs with Adobe Type Manager. A delta hinted TrueType package for the office environment is on its way.

TheSans Mono is used by O'Reilly for printing code in most of its tech publications.

No pros added yet

No cons added yet

Why do you recommend 6x13 fixed?

Why do you not recommend 6x13 fixed?

6x13 fixed 6x13 code

6x13 is the classic fixed monospace bitmap font that is expected to be available on every X server. It is part of the misc-fixed family. These fonts were handcrafted for readability in a terminal.

Why bitmap fonts? At a small text size each character has a limited resolution. A character size of 6x13 pixels means only 78 pixels per character. Modern fonts are designed to be scalable, and are less legible at these small sizes. Using bitmap fonts increases legibility by eliminating scaling and sub-pixel aliasing artifacts. Some scalable fonts include "ppems" embedded bitmaps for this reason.

With a fixed 6x13 font, the number of characters in a terminal is easy to compute. Every character is 6x13 pixels, so a 1440x900 pixel display will render 240x69 characters. 6x13 is semi-condensed, meaning the characters are slightly thinner than usual so that more can be printed on a line.

The disadvantage of misc-fixed fonts is that they don't scale, which can cause problems with displays that vary wildly from traditional pixel density. Although 6x13 is the traditional fixed font, there are numerous other sizes ranging from 5x7 to 10x20.

Fixed typeface article on Wikipedia

How to enable fixed fonts in Ubuntu


The apex of bitmap fonts. Great proportions for quantity of text onscreen and readability. Nice, defined character set. Aesthetically pleasing for a...

No cons added yet

Why do you recommend Segoe UI Mono?

Why do you not recommend Segoe UI Mono?

(Click the image for a bigger image and here for a massive image)

Comes with Windows. Need some magic to make it work with Mac (need to have Office installed, otherwise must use @font-face) - see this StackOverflow for more.

Very readable

This is a very readable font.

The zero is not slashed

The zero is not slashed, which causes some problems when scanning source code. This is not an issue when the IDE supports colouring (like all major m...


Why do you recommend Nanum Gothic Coding?

Why do you not recommend Nanum Gothic Coding?

small sample enter image description here

I have no idea how this font appeared on my computer but it is beautiful.

You can get it from Developer Site of Korean Search Engine(Naver) by clicking the link in the right side bar.

Anyone else trying to replicate the style of the images, I pastebined the text here and here. Hopefully there are no typos.


Korean, Japanese, English

No cons added yet

Why do you recommend Latin Modern Mono?

Why do you not recommend Latin Modern Mono?

A set of free fonts based on Computer Modern, the default font for TeX. One of the main extensions is the addition of an extensive set of diacritical characters, covering many scripts based on the Latin character set, mainly european.

Latin Modern Mono

Latin Modern Mono Sample

Available as Type 1 PostScript or OpenType, you can get them from the official Ubuntu repositories as lmodern.

There are also small-caps, condensed, and proportional variants.

Download from FontSquirrel

No pros added yet

No cons added yet

Why do you recommend Linux Libertine Mono?

Why do you not recommend Linux Libertine Mono?

Linux Libertine Mono preview Linux Libertine Mono code sample

Linux Libertine Mono available since version 5.3.0: http://www.linuxlibertine.org/index.php?id=1&L=1

No pros added yet

No cons added yet

Why do you recommend ProFont?

Why do you not recommend ProFont?

ProFont is a small bitmap font which is absolutely great for programming. It was made for Macintosh computers, but now it's also available for Windows and Linux/UNIX X Windows.

screenshot screenshot screenshot

Looks good anti-aliased

Very legible at small sized

No cons added yet


Why do you recommend Espresso Mono?

Why do you not recommend Espresso Mono?

Espresso Mono is included in the Espresso text editor by MacRabbit. The metadata indicates it was designed by the DejaVu fonts team. Characters Code

No pros added yet


Why do you recommend Panic Sans?

Why do you not recommend Panic Sans?

Panic, Inc. which makes Coda, distributes Panic Sans.

Panic Sans

Clearly distinguishes clashing characters

It has added uniqueness for easily confusing characters like 0 and O, l and 1.

Great line spacing and italics

No cons added yet

Why do you recommend  Anka/Coder?

Why do you not recommend  Anka/Coder?

The Anka/Coder family is a monospaced, courier-width (60% of height; em size 2048x1229) font that contains characters from 437, 866, 1251, 1252 and some other code pages and can be used for source code, terminal windows etc. Anka/Coder - PHP code There are 3 font sets (regular. italic, bold, bold-italic each): 1. Anka/Coder (em size 2048x1229) 2. Anka/Coder Condensed (condensed by 12.5%; em size 2048x1075) 3. Anka/Coder Narrow (condensed by 25%; em size 2048x922)

The last, "Anka/Coder Narrow" was developed for printing of source code; it is too tight for screen resolution. The middle, "Anka/Coder Condensed" can be used for both printing and screen viewing of source code, also as for displaying terminal windows. The first, full-width "Anka/Coder" simply supplements the family.

No pros added yet

No cons added yet

Why do you recommend Cruft?

Why do you not recommend Cruft?

Cruft is a variable-width font designed for programming. It was designed to ensure all characters are easily distinguishable and all punctuation is prominent enough to not be overlooked, while still being easier on the eyes than fixed-width fonts.

Sample of Cruft

Download Cruft and sister fonts

No pros added yet

No cons added yet

Why do you recommend Print Char 21?

Why do you not recommend Print Char 21?

The Ultimate Apple II Font

Download the world's most complete Apple II text font, in TrueType format. Works on Mac OS X, Windows, or any operating system that supports TrueType.

No pros added yet

No cons added yet

Why do you recommend Fantasque Sans Mono?

Why do you not recommend Fantasque Sans Mono?

A programming font, designed with functionality in mind, and with some wibbly-wobbly handwriting-like fuzziness that makes it unassumingly cool.

Open source

OS X, Linux, Windows support (otf, ttf)

No cons added yet


Why do you recommend Creep?

Why do you not recommend Creep?

Creep is a very small (4x9px) pixel font that's great for smaller sceens. It has a crisp appearance and emphasises on readability as well as beauty.

All similar characters are easily distinguishable.

It has pretty good symbol support for programming languages by providing clean versions of language symbols such as ->. This works especially well for 'mathematical' languages such as Haskell:

Very small

This font is nice and small - ideal for small screens.

Specifically designed for programming

Really small

this font is so small it might be hard to read

Why do you recommend Input?

Why do you not recommend Input?

Input is a flexible system of fonts designed specifically for code by David Jonathan Ross. It offers both monospaced and proportional fonts, all with a large range of widths, weights, and styles for richer code formatting.

Highly configurable

Can be configured online with preview: width, weight, line height, alternate letterforms.

No cons added yet

Why do you recommend Courier New?

Why do you not recommend Courier New?

No pros added yet

No cons added yet

Why do you recommend Courier?

Why do you not recommend Courier?

Courier is a monospaced slab serif typeface designed to resemble the output from a strike-on typewriter. The typeface was designed by Howard "Bud" Kettler in 1955, and it was later redrawn by Adrian Frutiger for the IBM Selectric Composer series of electric typewriters.

Simple yet effective

Comes pre-installed on almost any operating system

No cons added yet

Why do you recommend UW ttyp0?

Why do you not recommend UW ttyp0?

UW ttyp0 is a family of monospaced bdf (X11 bitmap) fonts.


  • Clean, easily distinguishable characters; typographically informed.
  • Large x-height for better legibility, narrow letters for better readability.
  • Sizes from 6x11 to 11x22 px.
  • Regular and bold for all sizes, (somewhat experimental) italics for some.
  • About 3000 Unicode characters: Latin, Cyrillic, Greek, Armenian, Georgian, Hebrew, Thai, most of IPA, standard punctuation, common symbols, some mathematics, line graphics, a few dingbats.
  • Configurable: Stylistic variants for many characters can be selected at installation time, e.g., plain, dotted or slashed zero, straight or curly quotes, centered or raised tilde and asterisk, visible or invisible NBSP, etc.
  • Open source.

If the image above is scaled down, click it for an unscaled version.

Click here for a program code sample.

Download Link: http://people.mpi-inf.mpg.de/~uwe/misc/uw-ttyp0/

No pros added yet

No cons added yet

Why do you recommend Raize?

Why do you not recommend Raize?

The Raize Font is a clean, crisp, fixed-pitched sans serif screen font that is much easier to read than the fixed pitched fonts that come with Windows. Ideally suited for programming, scripting, html writing, etc., the Raize Font can be used in any IDE or text editor.



No pros added yet

No cons added yet


Why do you recommend VGA Font?

Why do you not recommend VGA Font?

This guy made the original VGA font with Unicode support.

Personally I converted it to TrueType and use it on Visual Studio with the classic blue background like old Turbo Pascal.

My programming environment

VGA Font

No pros added yet

No cons added yet

Why do you recommend Hermit?

Why do you not recommend Hermit?

a font for programmers, by a programmer

Looks good

clear and legible

No cons added yet

Why do you recommend FreshBold?

Why do you not recommend FreshBold?

The full screenshot.

FreshBold font has been created especially for assembly programming, where it is very important to have high legibility of the source, combined with maximal possible density of the source lines.

The FreshBold is inspired by FixedSys font, but has even higher density with better readability. FreshBold is very readable and will not cause eye weariness even after many hours of work.

The project page of the font

No pros added yet

No cons added yet

Why do you recommend Happy Monkey?

Why do you not recommend Happy Monkey?

Happy Monkey is a display sans serif typeface family, with thin and rounded strokes. Suitable for informal headlines and all your fun typography!

No pros added yet

No cons added yet

Why do you recommend Cosmic Sans Neue Mono?

Why do you not recommend Cosmic Sans Neue Mono?

A programming font, designed with functionality in mind, and with some wibbly-wobbly handwriting-like fuzziness that makes it unassumingly cool.

View on GitHub

No pros added yet

No cons added yet

Why do you recommend Triskweline?

Why do you not recommend Triskweline?

Triskweline is a fixed-width font especially suited for text editors and programming environments. It was designed for maximum legibility and tidiness and supports all important symbols and Latin-1 characters.

enter image description here

No pros added yet

No cons added yet

Why do you recommend Envy Code B?

Why do you not recommend Envy Code B?

Envy Code B

No pros added yet

No cons added yet

Why do you recommend Eco Coding?

Why do you not recommend Eco Coding?

No pros added yet

No cons added yet

Why do you recommend Cousine?

Why do you not recommend Cousine?

Default programming font on Chrome OS; Liberation Mono derivative

Nice horizontal & vertical spacing


No cons added yet

Why do you recommend Fira Mono?

Why do you not recommend Fira Mono?

No pros added yet

No cons added yet

Why do you recommend GNU Unifont?

Why do you not recommend GNU Unifont?

Unifont is a Unicode font with a glyph for every visible Unicode Basic Multilingual Plane code point and more, with supporting utilities to modify the font. The Unicode Basic Multilingual Plane covers the first 65,536 (or 2^16) Unicode code points.

Get it from unifoundry here. The GNU Unifont project homepage also has download links and information.

Unicode support

This font covers the entire BMP and work is still being done to expand it beyond.

No cons added yet

Why do you recommend Sudo?

Why do you not recommend Sudo?

No pros added yet

No cons added yet

Why do you recommend Camingo Code?

Why do you not recommend Camingo Code?

Compact and legible at a variety of sizes

No cons added yet

Why do you recommend Lucida Sans Typewriter?

Why do you not recommend Lucida Sans Typewriter?

An ancestor of Lucida Console

No pros added yet

No cons added yet

Why do you recommend Luxi Mono?

Why do you not recommend Luxi Mono?

A slab-serif monospaced font with a distinctive look.

No pros added yet

No cons added yet

Why do you recommend Vera Sans Mono?

Why do you not recommend Vera Sans Mono?


Licensed under GNU.

Clearly distinguishes clashing characters

Characters such as 1, I and l as well as 0 and O are differentiated enough as to not be confusing.

No cons added yet

Why do you recommend KaiTi?

Why do you not recommend KaiTi?

Great font, even at small sizes

Very clear even at small sizes

This font is included in windows by default and is really easy to read at small sizes, allowing me to keep more code on the screen. It was originally...

No cons added yet

Why do you recommend OCR A Extended?

Why do you not recommend OCR A Extended?

You can clearly tell the difference between those troublesome characters like apostrophes and quotes.

Each character is clearly (there's that word again) different from each other to make machine reading easier and works for humans as well.

No pros added yet

No cons added yet

Are we missing something?

Help make this question more complete.