One thing I really appreciate about fonts is the low-stakes nature of trying them out.
Installing is easy, and doesn't take much space, you set your editor and try it out.
There's no lock-in, switching back takes zero effort.
So I'm always keen to give them a go, some stick, some don't.
For what it's worth I'm in the no-ligature group. I want to see => not some ligature. But again that's subjective and there's room for all at the table.
The absolute worst is when a monospace font puts fi into a ligature with a width of 1 character, entirely defeating the purpose of being a monospaced font.
Can you provide an example of the font doing this? Substitution of individual characters with ligatures is in my experience a feature of the typesetting/display engine (which decides how to represent the "bytes" as glyphs), not the font itself. Indeed, this ligature substation is often something you can toggle in whatever application you're using if it's capable of doing the substitution at all.
I suspect is just a bug: the ligature tables were copied from the regular variant, and perhaps no one noticed for some reason. Maybe the assumption was that the renderer would turn of ligature processing in monospace mode at the time, and the reference renderer did that?
I can't find any examples now, but I'm positive that there have been "coding" fonts which do this that have hit the front page of HN. Highlighted as a feature in the screenshots, even.
Another example of form over function, to the utter detriment of function, IMHO.
OpenType fonts can define ligation pairs. If the editor implements OpenType ligatures, it will read the instructions from the font and implement them. There will probably be a setting to enable or disable ligatures entirely, and there may be another one for which ligatures to include.
I don't use ligatures at all, but I have seen it on websites. So perhaps it's the CSS of the website that has decided to do this. I don't have any specific examples off hand, but my mental picture puts it on sites that also use this style of font: https://rubjo.github.io/victor-mono/ (although typing fi into the sandbox on the site doesn't exhibit the behavior).
Yup. It's the browser that's choosing to display this. As 'gdwatson pointed out, the font can indicate which ligatures are available, but whether or not the substation occurs also depends on the typesetting engine.
So then it is the responsibility of the font to make sure that when a ligature that it made available is used that is displayed as two characters wide instead of one?
If that's the shape the font designer wants for the ligature glyph, yes. IIRC, Tonsky's Fira code is designed with this in mind (https://github.com/tonsky/FiraCode) (Butterick uses Fira Code as his example.)
But maybe it's the intent of the designer to have each glyph have the same width, not each "character", so the glyph LESS-THAN OR EQUAL TO (≤, https://www.compart.com/en/unicode/U+2264) would be the same width as < or =: it's ultimately up to the application/typesetting engine to decide whether or to substitute the character string "<=" as "≤", and to see if the font _has_ that character and how to render it to the screen.
I suppose you could have the typesetting engine choose to somehow read the two characters, note that there's a ligature substitution, and "fit" the ligature glyph into a two-character space (say, padding the glyph or horizontally stretching it), but I doubt that would be very pleasing.
But ultimately what gets displayed is up to the typesetting engine: it can choose to use or not use ligatures; it can choose the spacing between glyphs; whether to "fake" certain styles (such as italics), text justification — all sorts of behavior. Good typesetting is available in many more applications today than it was, say, 25 years ago. There was all kinds of janky behavior going on, both from the engines not using information in the fonts when it was available, and faking it or overriding it as well.
And your example about CSS and browsers is exactly this. There can be information added to indicate how things should be displayed, but it’s ultimately up to the renderer. All the tricks used to adapt to various ways browsers render the same data, and sometimes the same (font and CSS) data in different contexts (say, as part of a <p> vs part of an <input>) in the same browser.
I'd love one, honestly. Fonts do get updates, especially fonts patched with the Nerd Fonts extensions... would love to be able to update mine in one go.
> To this day I haven't seen a monospaced font superior to Courier New.
Liberation Mono. Metrics that match Courier New, very legible at all font sizes, easy on the eyes and consistent, wide character support, free, none of that ligatures stuff (personal preference). https://en.m.wikipedia.org/wiki/Liberation_fonts
Liberation Mono is not bad. Sadly, Liberation Sans is a no-go because it lacks crossbars on the capital "i". Such an annoying failing of so many sans fonts.
Some fonts like Arial are bad at this, capital "I" and lowercase "L" look the same. Calibri and Liberation sans both have slight differences, but not enough to not be confusing. Some fonts like Open Sans have crossbars on capital "I", which solves this problem. But that's not the only solution, fonts like PT Sans have a different looking lowercase "L" which is different enough not to cause confusion. Then again, technically you could also run into issues with the vertical line symbol "|".
Also, PT Mono is a nice font, but has issues with a small full stop symbol at smaller sizes (not as pronounced as Liberation Mono, annoying): https://en.wikipedia.org/wiki/PT_Fonts
Thanks! I compiled a list of sans-serif fonts with acceptable capital "i" and zero/O distinction a while back... but don't have it on hand. But it's a lot faster to go to fonts.google.com, select sans-serif, and change the example text to "Does this have a proper I and O and 0" and start scrolling!
There's a vectorized version of Monaco with pixel-perfect hinting when anti-aliasing is disabled that I've been using for years now. I don't remember where I got it from though. It's beautifully legible at any size.
If you want to go fishing on this, one hole is Apple's old low-end printer line. The printer disks had expanded versions of the 'city' fonts which never shipped with the OS.
I was trying to remember the Apple font I used to download for use with IDEs in Linux back in the day because it was by far the best for programming I'd ever seen. Monaco must have been the one.
It's slightly thicker to more closely match what Courier from a typewriter actually looked like on a page with the ink bleed -- Courier New was modeled after the typewriter forms, not the result on the page, which to me has always been a massive error.
Probably not the font itself but the environment around it when you see it?
You usually sees it as the default monospace typeface in an old windows environment, probably with no anti-aliasing and with low resolution screen. That combination is an eyesore.
Courier New in an modern environment, with modern text rendering and anti-aliasing on high res screen is actually not bad at all.
The only issue I have is with the 'weight' of Courier New. It's too thin for me to be able to read. If it were just a hair thicker and had proper ligatures, I might use it.
I don't love the aggressive curly braces. Does anyone else? I feel like the whole typeface here is consistently bland, and then there's the angry curly braces that pop out of nowhere.
It’s a bit unusual, but I wouldn’t say either “wibbly wobbly” or “neurotic”. On first impression, I like it: it’s clear and distinct while managing to be light and open without having a light stroke.
I was prepared to just tolerate them, but I do find it easier to identify them at a glance, and distinguish between [ and (. Just switched my IDE to this font.
That IBM website promoting it is the most ridiculously overengineered yet totally unusable website I've used in quite some time on desktop. It's really quite something. Also disappointing that the Github README doesn't include alphanumeric sample text.
If you go to https://www.ibm.com/plex/gallery/ and scroll down to "Plex will be mega-international.", you can replace that text with your own, for testing. But I agree that it's ridiculously overengineered and it took way too much time to find this.
I think I just found my new favorite font. I'm absolutely addicted to grotesque sans-serif, I used to use Roboto everywhere, but now I'm currently using Cantarell (GNOME's default font, a humanist typeface) as my desktop font and as an overwrite font for every single website I open, but I might just start using Plex Sans and Plex Mono now. Thank god it's OFL.
I still find it fascinating that there are so many different typefaces with such subtle differences in them, but since I'm looking at characters in the screen the entire day, these characters better be beautiful and pleasing.
I'm not gonna lie, every time I swap fonts on my desktop I keep remembering that one scene from American Psycho [0]. Maybe I should touch some grass.
If you love neo-grotesques, you can't do much better than Neue Haas Grotesk or Atlas Grotesk [2]. Both are by CommercialType, both cost a pretty penny, but both are absolutely amazing.
I fully agree with you about wanting beautiful and pleasing characters though. It's my gift to myself for being paperfree. If I'm going to read on screen instead of printed, I want the best possible experience. 32" 4K display, professional fonts, nice software for writing in etc.
Amen. It's a shame dell released that one 8K monitor and peaced out. It's still available but it's expensive as hell, and I could not for the life of me justify needing dual DP cables. But I'm constantly tempted...
Each time they release something like this it's got to require two inputs, is clunky, may have tearing problems under some platforms, and is discontinued not very long after due to lackluster sales. Remember they had a 5K monitor plagued with the same kind of trouble?
Given that most of the gear in the business world is laptop-shaped, requiring two DisplayPort cables is just not going to fly. What do you mean, "get that expensive USB-C to dual DisplayPort dongle from Sonnet"? I thought DP1.4 was perfectly capable of driving an 8K monitor over a single cable, heck, that's what my old Dell Precision 7520 laptop is supposed to be able to do.
The proportions of this font seem really surprising to me — I don’t know why, but monospace letterforms are rarely so “square”. It really puts me in mind of old 5x5 and 5x7 bitmap fonts, where the resolution constraint meant that you had no choice but to “squash” your ascenders and descenders, moving your baseline toward the middle of the glyph for glyphs with sticky-outy bits.
I like how they make a point of consulting people with different legibility needs!
That's a very important point of difference!
People that aren't blind, but don't have perfect eyesight often fall into a forgotten middle ground!
Glasses don't cure everything!
Source: Have a son with eyesight issues who complains that even with the best glasses money can buy, struggles to read information posters in his classroom and so on!
Why do you end each sentence with exclamations? Your past comments suggest you do this often. It's hard to read, as the reader wonders if it's a joke or sarcasm they haven't figured out, detracting from simply reading your comment.
they even list a source, having a child with vision issues.
your complaint may feel well-intentioned, but taken at face value you have told a parent that their enthusiasm over things like companies caring about groups of people that often get lost, that their child falls into, that has led to their child struggling, after all that, that their way of communicating, of expressing themselves, is so burdensome that it drove you to check into their previous comments to make sure it wasn’t a troll, and then offer your “constructive criticism.” without acknowledging anything about their comment beyond the punctuation.
My intention was in supporting them and their voice reach the audience with less hinderance. I didn't mention "enthusiasm", only pointing out the frequent and unusual use of punctuation can misread or be distracting. Hopefully it's of use to them.
"A panel of low-vision and legally blind developers provided feedback at each stage of design"
I used the medium style for two hours at pretty small font-size (8pt) on a light background. And i must say i kind of liked it so far. The greater line height and letter spacing looks good on smaller sizes. On greater font-sizes the letters getting to much "personality" and the font start to feel out of bounds. It is as easy to read as my preferred font but in smaller sizes. Which is appreciated. Not sure if really want to switch, though.
As someone who's spent a fair amount of time doing math and coding on a whiteboard, the curly braces resonate with me. That's what mine look like when I'm trying to get an idea down before I forget it or my audience gets distracted!
It is the best monospace font ever. I've tried a whole host of programming fonts, but nothing is hinted as well for Windows as Jetbrains Mono. It made me move off of Consolas, despite a decade of having gotten used to it.
I tried all of these out, still prefer Lucida Console for the command prompt. It seems to be the most compact despite staying readable. All the rest require a bigger font for some reason, otherwise they are hard to read. Was that different from your experience?
First, the font that we are used to has an outsize impact on what we prefer. So, if neither of these 'sit right', don't worry.
Digital font designers have to start out by choosing something called the em-height. This is a nonsense holdover from print days, and is especially infuriating because no one agrees on a standard em-height. Therefore, fonts look different despite being set to the same size. Here is a great rant on this: [1]
Lucida Console has a large x-height, which is generally considered helpful in small-size legibility. But it has that in common with both Consolas and Jetbrains Mono.
For me, I can use Consolas, Lucida Console and Jetbrains Mono all down to Size 10 in Git Bash on a shitty 13" 1080p laptop screen. Hence my comment that the ClearType hinting is glorious.
One factor is that licensing fonts can be extremely expensive. So, make one: pay a higher upfront cost, create something unique to represent your brand, and never pay another cent.
"He just highlighted Avatar, he clicked the drop down menu, and then he randomly selected Papyrus, like a thoughtless child just wandering by a garden yanking leaves along the way." [1]
As iconic a moment as the creation of the first sans serif font [2].
[2] "The earliest printing typefaces which omitted serifs were not intended to render contemporary texts, but to represent inscriptions in Ancient Greek and Etruscan. Thus, Thomas Dempster's De Etruria regali libri VII (1723), used special types intended for the representation of Etruscan epigraphy, and in c. 1745, the Caslon foundry made Etruscan types for pamphlets written by Etruscan scholar John Swinton." https://en.wikipedia.org/wiki/Sans-serif#:~:text=The%20earli....
Not what your point is, but I'm all for it. I love Cascadia Code, Jetbrains Mono, JuliaMono. I love IBM Plex Sans, I love Source Serif and Source Sans. I love Cooper Hewitt. We live in truly the golden age of reading text on screen.
I guess the best coding font is one you are used to. My first font was MS Fixedsys but then on a friend advice I've tried terminus [1] and liked it. Since then I've tried many other fonts but none of them stuck with me like terminus did. The only downside probably is that while bitmap fonts looks pixel-perfect 3rd party TTF versions are not so good (and some terminals support only TTF/OTF).
After years of using Ubuntu Mono, I've switched to IBM Plex Mono six years ago and I just can't find a better one now. That one feels weird, especially the curly braces.
Very glad to see more “low x height” monospace fonts (x height is the height of lowercase letters relative to capital letters; I haven’t checked to be sure but my eyes tell me this is on the lower side). Source Code Pro has been my go-to for a very long time, and it has always bothered me that Apple opted for higher x-heights in their San Francisco re-design of Helvetica (which already has a high x height to begin with).
It’s interesting that they had high-powered readability consultation and a lot of real-world tests with visually impaired developers and still ended up with low x heights. I had heard higher x heights were preferred for readability.
You nailed it - the reason I've stuck with this font for so long is that I really appreciate the beauty of a proper x-height more than I prefer the supposed readability advantages of tall coding fonts. As long a font gets the basic features right (tails on Iilt etc characters, dot in the 0) I've never struggled with reading in monospace for hours on end.
I thought the point of narrower fonts isn't readability but being able to squeeze longer lines into the same screen area. I find it helpful on 14" laptops as it can make the difference necessary to have two files side by side in a readable font size.
High x heights were considered more legible for low-resolution displays (though I'm not sure if the evidence was there or if it was just something that sounded sensible) but have not been considered good with high resolution ever I think.
Think something like Verdana (invented for low-res computer displays) vs Garamond (staple for a long time and not just because it looks pretty.)
Personally I'm skeptical of their consultation. My vision is not terrible but just on my initial scan the lowercase vwxyz look too similar to their uppercase variants and I have difficulty with the lowercase l and 1. Without my glasses I wouldn't be able to tell those apart at all.
I have no idea about readability really; I have my preferences but I assume the experts know stuff I don’t, or at least know what works for a wide variety of people while I only know what works for me. The fact that IBM also validated their font with actual tests on people who need readability does lend some support to the consultants (assuming the focus group results and the consultant advice were in agreement).
the lowercase vwxyz look too similar to their uppercase variants
Is that likely to cause problems, do you think? You don’t generally need to read one of those characters on their own, they’ll be in context next to other characters. As long as you easily distinguish, say:
v0 V0
"v" "V"
If those are clear then I think it’ll be fine. And the relatively low x-height should help.
I like it a lot! Definitely in the camp of “comic sans is over-hated for poor reasons, and might even have legibility benefits for dyslexia”, and I considered a few comic sans inspired monospaced fonts before settling on Source Code Pro. The leaders were Fantasque (https://github.com/belluzj/fantasque-sans/) and Comic Code (https://tosche.net/fonts/comic-code). (Comic Code’s creator actually links to the font you linked, Comic Mono, as an example of a free font with the same spirit!)
Ultimately I found that anything descended from or inspired by comic sans ended up a little too busy for my eyes.
I appreciate how Comic Sans was used by educators to find something that helped people with dyslexia, while also breaking down the serious barrier. SPJ[1] from Haskell would use Comic Sans in his slides, which seems oddly humorous to me.
Below are fonts are designed to minimize the effects of dyslexia.
That’s about the only thing I find immediately appealing. I wish more mono fonts made the various brackets this strikingly different. They don’t need to look good necessarily, just distinct.
The semicolon and all the brackets look to have a lot more emphasis than they do in many common monospace fonts, which makes a lot of sense if you're designing your font for developers. Same with the 1Il distinction they show off in their graphic, or O0.
It's unusual, but I'd bet it feels nice to work with after getting used to it.
You should install the font and check it out.
2 - what you see in screenshot is not period, 3 - backtick exists, not in that screenshot, 4 - lowercase l is curved and totally different from 1
Zero interest in trying it out, especially now that someone has pointed out that the - and + are not vertically aligned. I cannot unsee that. In any case it just looks way worse than my lovely Berkely Mono. For the braces and the shape of the 6 alone I couldn't possibly use such a font.
> 2) What kind of person thinks that making the fullstop massive and putting it in the middle of the line like a dot product sign is good?
A lawyer.
Scanning dense legalese and/or contract language becomes quite a bit easier if you have an easy visual cue where the current (tortured) sentence will end. It provides a decent estimate for the upper bound for how much context and/or state you need to keep in your head to process a given statement.
I get to review technical and security parts of contracts at work and can see the value for such a font in that particular case.
Not just that, why is the backtick unconditionally combining with the previous letter? If you type "a`" it will always print "à" for me, even combining with letters like "t", seems like a ligature table bug or something.
Just randomly saw that when looking at a markdown file
With their lake naming convention, they totally missed calling the typeface "Mono Lake" or maybe more appropriately Lake Mono, if there were other fonts to the typeface.
Yes, the vast majority of blind people are not the stereotypical “whole world is black”. Even among the profoundly blind there is often some vague perception of light vs dark.
I love them and wish I'd had this font to give to my intro students—mistyping a curly for a paren is annoying enough when you're experienced, but when you're new to programming and the error messages are not yet super helpful to you and you can't quickly spot the difference between curlies and parens, it can be a really rough ride.
The rest of the font looks good too! I love a good coding monospace that fully distinguishes all the characters.
You make an excellent point, but I can't help but think there are ways to make curlies visually distinctive without also making them look like poorly-done graffiti tags. There's no accounting for taste, but to me those are just plain ugly.
Why is it combining back-tick with the previous letter in a ligature with almost all letters? Into a single character wide element it seems.
So looking at a Markdown file with "a`" will print it as "à" always even with letters like "t" or "Y".
> Introducing Intel One Mono, an expressive monospaced font family that’s built with clarity, legibility, and the needs of developers in mind.
This font has the worst clarity and legibility I've ever experienced. If you try to read code using this font, you'll break your eyes. You have to make a conscious effort to read every word. It gets tiresome really quickly.
I love trying out new fonts, but this one seems too squashed. I'm still chasing the perfect font after all these years, but there's always a slight problem.
I like both of those a lot but I'm all about the Berkeley Mono which I picked up after it appeared on HN. It feels like a modern version of an ancient old terminal font. https://berkeleygraphics.com/typefaces/berkeley-mono/
Note they have different versions of the zero to cater to different tastes. The dot, the slash, the negative slash and the just figure it out it's slightly less round than a capital O are all available. They also have a ligatured version for people who are into that.
I tried it, and I didn't see enough advantage over other monospaced fonts routinely available to me on a Mac.
It was quite line-width dense, almost like boldening (but not: I checked and the boldface was quite distinct) which I like: some people go for thin lines and they look great but they don't always aide comprehension.
I’m such a sucker for monospace fonts. It’ll be hard to beat the comfort with the custom build of Iosevka I created painstakingly over the course of about a month trying different combinations of the available characters to find what felt the most pleasant to my eyes but I’m looking forward to trying it out.
The curly braces, i, and l all remind me of how I would handwrite those symbols doing math so it's a little strange to me that they didn't cross their z's as well in keeping with that style. I suppose that might get too dense at small font sizes though. I'll have to try this out!
I avoid it like the plague because of ligatures, although I must admit other than that I enjoyed in my (admittedly short) experience with JetBrains IDEs. Have never tested them elsewhere.
I wasn't aware that you could disable them, I thought this was handled entirely by the font and not by the editor. Living and learning. Might try JetBrains Mono again without ligatures this time, after I finish my trial of IBM Plex.
Ah, no, I phrased that in a rather callous way. I'm sorry – my apologies.
If you do decide to give it a try, I hope your editor makes it easy to configure (since they really run the gamut) and that you have another typeface to enjoy!
I am still looking for a proportional font where I can clearly distinguish to single quotes from a double quote, and distinguish a single quote followed by a double quote from the double followed by a single. Do you have some suggestions?
Am I the only one who's a fan of what you might call the "default" monospace fonts on Apple and Google platforms? I very slightly prefer SF Mono (the Apple one) and use it on my Macs, but since it's not free I'll use Roboto Sans Mono (the Google one) in my Unix envs. I find this also helps give my brain a little visual cue as to which environment I'm working in.
Honestly, I think the default fonts (monospaced and proportional) on all major platforms are pretty good these days, though IBM Plex Mono and Sans have really grown on me, to the point where I use them as my default terminal (Mono) and text editor (Mono and Sans) on Mac, Windows, and Linux.
On Mac (my primary desktop), I use San Francisco ("system-ui") with a couple alt stylistic sets ("High legibility" and "One storey a") as the default browser font, overriding both browser defaults and most other common "default" faces (serif and sans) via an extensive collection of @font-face directives.
Looks very readable, but for me personally, ligatures for things like ->, =>, <=, >= and those weird JavaScriptisms like == vs === has really become table stakes for me.
Didn't care about that at all until about 2020, but can't imagine using a coding font without those features today.
For sure, especially for fonts geared towards programmers and technical uses where numbers and symbols matter a great deal. A person could probably figure out that he110 is "hello" but as identifiers, he110 and hello are not interchangeable.
yeah, that's where all those huge font cataloging websites could shine (and also allow you to filter fonts based on this, eg, all zeroes should have some mark in the middle not be confused with the letter O), yet they settle on some bland pangram
Do you really need font support for that, though? I've found editor support for it much cleaner -- it knows when it's best to expand then and when they should be ligatured.
Yes! Someone has to make the glyphs and someone has to write the rules that say "unconditionally replace this sequence of glyphs with this glyph" or "in this context, replace this glyph with that one" and so on. The only thing the editor has to do is decide to use them.
They're usually grouped into features: standard ligatures (liga), discretionary ligatures (dlig), historical ligatures (hlig), contextual ligatures (clig), and so on. OpenType fonts can also provide stylistic sets, which might swap out some glyphs with alternatives.
My understanding is that both font and editor must support it; the editor must know when/how to render the ligatures, but the font must define what the glyphs look like, or else they won’t look any different that the regular sequence of characters.
I’m far from an expert, though; I’ve just gotten so used to having ligatures over the past few years that I now find it uncomfortable not to have them.
I bought Comic Code (https://tosche.net/fonts/comic-code) a few years ago and have installed it in many of my editors and consoles and even as the monotype font in some browsers. I giggle every time I see it!
I don't understand how a hardware company who just reported its largest quarterly loss in history with revenue down 36% year-over-year [1] is working on fonts. Or maybe this explains that.
Companies compromise of multiple people. Different people can work on different projects. The design team may wish to improve the company image by releasing a font named after them that people may like, improving their public relations.
Installing is easy, and doesn't take much space, you set your editor and try it out.
There's no lock-in, switching back takes zero effort.
So I'm always keen to give them a go, some stick, some don't.
For what it's worth I'm in the no-ligature group. I want to see => not some ligature. But again that's subjective and there's room for all at the table.