Font Comparison: Atkinson Hyperlegible Mono vs. JetBrains Mono and Fira Code

maybebyte | 198 points

After redesigning my website to use Atkinson Hyperlegible fonts, I switched my terminal and code editor to the monospace variant to properly test it. After a month of testing and positive experiences, I felt motivated to investigate further and write an article comparing Atkinson Hyperlegible Mono to JetBrains Mono and Fira Code.

The visual comparisons use examples from an accessibility paper on homoglyphs and mirror glyphs. I chose JetBrains Mono and Fira Code as a baseline, since many developers use these fonts and find them familiar.

While Atkinson Hyperlegible Mono excels at character distinction, nothing is perfect. I detail trade-offs in the "Caveats" section, below the installation instructions.

I'm curious to hear others' experiences and thoughts. I'm fascinated by what role font choice plays in legibility and accessibility, but the research is relatively sparse in this area.

maybebyte | 16 hours ago

The difficulty I have with many so-called legible fonts is that they’re often not very readable.

Legibility refers to how easily individual characters can be identified. But good readability depends on how easily your brain can recognize whole words—through pattern recognition of word shapes.

When characters are too similar in shape and size, it becomes harder to distinguish the unique shape of each word, which reduces readability (which often happens with these highly legible fonts) — even if each individual letter is technically more clear.

tiffanyh | 13 hours ago

Why don't we embrace proportional (i.e. not monospace) fonts more for coding? IMHO, they are a big step up when it comes to legibility. I personally switched after I noticed reading stuff in the sidebar (which is usually in a proportional font) felt more comfortable than reading code.

You can't use it for a terminal of course, and occasionally I find comments relying on monospace alignment. Other than that I see no downside to proportional fonts.

I use Input, which gives more room to special characters and is pretty nice overall: https://input.djr.com/

evertheylen | 15 hours ago

My current favorite code font is Berkeley Mono https://usgraphics.com/products/berkeley-mono

It's not free, but I love it. You can customize some variations too (like how zeroes look; I use the "invisible slash" look) and it has some support for terminal symbols and programming ligatures used by terminal tweaks like Powerline, etc.

pmarreck | 15 hours ago

I tried many fonts over the years but nothing comes close to https://usgraphics.com/products/berkeley-mono

nitinreddy88 | 3 hours ago

I moved to "Atkinson Hyperlegible" for all of my Note-taking/Reading, Markdown Editing, etc. And recently upgraded to "Atkinson Hyperlegible Next" beating my choices of iA Writer’s Fonts. We are spoiled for choice and they are all beautiful and super readable and comfortable.

Unfortunately, I found "Atkinson Hyperlegible Mono" (IDE/Terminal) to be a tad stunted for my liking. I wear glasses but not that bad and I like to use my computer without glasses. I personally like "Monaco" with a tad larger font-size. The other reason I try to stick to more common fonts and pick one of the better of them is to be able to use any IDE (helping/discussing with team members) and not feeling uncomfortable without "my favorite font."

Again, very personal, but I tried "Atkinson Hyperlegible" for the website for about a month or so and I found it to be neither modern, nor professional nor vintage/classic but more like the website warming up to the reader/visiter, “Hey, are you OK? Finding it hard to read, I'm going to make some scientific fixes to help you read!”

Brajeshwar | 14 hours ago

I moved on from these fonts quite some time ago and just use https://github.com/be5invis/Iosevka everywhere.

It's ideal for 'wordy' languages such as C++ where a typical line length can often go over 150 characters, and then you don't have to scroll sideways.

DrBazza | 15 hours ago

Over my embarrassingly long time of coding, I've gone through all of these fonts and more (VT100 anyone?) and eventually traded the sans-serif fixed-width fonts for ones with serifs, as it feels less tiring at the end of long days. For the last few years, I've used Monaspace [1] variants, especially Xenon, and enjoyed them immensely.

1. https://monaspace.githubnext.com/

queuebert | 14 hours ago

> Atkinson Hyperlegible Mono lacks programming ligature support.

Good. That's a feature, not a bug. I want -> to render as a dash and a greater than sign. Not an arrow. I can't even articulate why, other than a deep seated distrust of magic.

elric | 13 hours ago

Fira Code uses the empty set character (∅) for zero. This mistake cost me a correct answer on a math test in 12th grade because I made the wrong slash.

Either that, or I made the correct slash and my teacher interpreted it incorrectly!

jkmcf | 15 hours ago

Maybe an acquired taste, but I'm fond of Intel One Mono ... https://github.com/intel/intel-one-mono

designed for low-vision developers.

bonthron | 15 hours ago

I’ve been loving MonoLisa. I previously used Fira Mono and then JetBrains Mono, each for a few years. All good fonts!

https://www.monolisa.dev/

sevg | 15 hours ago

Coming from Commit Mono, Atkinson looks a bit unusual. But I think I can get used to it. I think the comparison to Fira Code is valid, because in the terminal Atkinson looks almost like Fira Mono, but better. Since I usually sit a meter away from the screen, I can appreciate the extra legibility of this font.

Also, it's great that it's available as a Nerd variant. It makes it super easy to install on Linux with Embellish.

alexeiz | 13 hours ago

For the monospace font I still revert back to DejaVu Sans Mono/Menlo. Somehow other fonts just doesn't click and feels a bit off

gantengx | 4 hours ago

My favorite of these programmer fonts is PragmataPro, which I bought around 5 years ago. I like how it’s denser while still being easy to read.

Only problem is that it doesn’t have all the nerd font glyphs so it can’t handle the nice oh-my-zsh themes well, like the powerline-10k theme. I still use it despite that though.

eigenvalue | 14 hours ago

For those who just want to have one nice reliable monospace font and move onto other concerns in life, there is Hack: https://sourcefoundry.org/hack/

bityard | 12 hours ago

What I have found with these fonts (and I have tried them all) is that one isn't really much better than an another, but instead I have to switch between them (and others) because eventually I get sick of every single one of them.

vouaobrasil | 12 hours ago

"Mirror image glyphs occur when flipping one character creates another"

About a half of the article is about these "mirror image glyphs". Why would they be a problem for the proclaimed purpose of character distinction? Has anyone ever mixed up "b" and "q"?

AndriyKunitsyn | 15 hours ago

Sans serifs...except when the serifs help distinguish 1 from l and from I, etc.

Why not use a monospaced serif font in the first place? I get that they don't seem to be common, but maybe they should be.

mcswell | 13 hours ago

Since we're sharing our monospace fonts of choice, I use mononoki. My vision isn't great, and this is the font I've found that allows me to pack the most on my screen while still remaining readable.

https://github.com/madmalik/mononoki

That said, the differences between 0 and 8, while better than my previous favorites, still aren't as stark as I'd like them to be.

LexiMax | 13 hours ago

This font was just added to codingfont a few minutes ago! https://www.codingfont.com/AtkinsonHyperlegibleMono you can compare it side by side to your other favorite coding font to see which one is better looking in a code editor! You may also play the blindfold game to see if it will TRULY wins against all others in a blind test on codingfont.com

wentin | 14 hours ago

I wonder how it compares to Monolisa. https://www.monolisa.dev/

lcnmrn | 14 hours ago

Thing is Atkinson Hyperlegible is "what if we made a non-monospace font with monospace like, distinct characters?" so the Mono version doesn't have much of a point. For text or code, it looks worse to me than the alternatives.

KTibow | 12 hours ago

You can pry PragmataPro from my cold dead hands.

earksiinni | 9 hours ago

Fira fonts, another Mozilla contribution to the world. We had these designed for Firefox OS (in concert with Telefónica.) Nice to see some of that effort endures, even if only in type.

asadotzler | 11 hours ago

I use Atkinson Hyperlegible for my blog[1]. Really happy to see the new version adds variable weight. That was the main thing I didn't like about the original version.

[1] https://adamhl.dev

genshii | 15 hours ago

any iosevka lovers out there? keep coming back to it even after trying Atkinson, Berkeley Mono, Jetbrains Mono...

outlore | 10 hours ago

This is of course subjective, but I still find JetBrains Mono to be much more pleasant to read (when it comes to code) than any other mono font out there.

khaledh | 15 hours ago

To me it seems that Atkinson Hyperlegible Mono has really bad kerning. I think I'll stick to JetBrains Mono for the time being.

bronlund | 13 hours ago

Alternative title: A long winded technical deep dive into how I make my personal font preference appear to be an objective decision.

spiralcoaster | 15 hours ago

Heads up all the images are squished on mobile.

c-hendricks | 9 hours ago

Website is down so I can’t tell what it’s actually about.

But in any case, the correct font for coding is Cascadia Code. I don’t know why more Linux people don’t use it. Just because it’s from Microsoft?

https://github.com/microsoft/cascadia-code

forrestthewoods | 15 hours ago

Well, now I'm confused.

> Fira Code uses uniform length for +, =, and -. - and _ share similar length. The /\ characters join together and render smaller compared to the other fonts.

This "joining" is a ligatures thing, I'm almost certain, at least for `<>`. I can't for the life of me get anything on macOS to render `/\` as joined, though. Stumped. I've no preference either way, it's just weird to see a familiar font rendered so strangely. Maybe it's a Windows font rendering thing ?

A very fair comparison, though I'd argue legibility isn't always worthwhile; the MICR (?) fonts on checks are quite legible (perhaps machine-legible) but too weird to use.

also, TIL IntelliJ bundles Fira Code for quite some time now

arh68 | 11 hours ago

Would love to see iosevka join this comparison

paradox460 | 11 hours ago

It seems I'm the only person who likes fonts that deliberately exaggerate their edges to better align with a pixel grid. All of these font comparisons always compare pretty smooth and round fonts to each other. Apart from minor details, the comparisons look the same. But I actually like this design most: https://hajo.me/images/HajoCode16px_hr.png On a 9x16 pixel grid, that'll have really sharp contrasts, just like good old Windows 98 before subpixel antialiasing.

fxtentacle | 12 hours ago

It just occurred to me that if HN supported, say, 4-bit mono PNG images with transparency in comments, that would help here without impacting bandwidth too much and might add a classy element

pmarreck | 15 hours ago