12/12/2025 at 7:10:33 PM
Where possible, I've stopped picking fonts that don't distinguish lowercase l and uppercase I. Words virtually always have redundancy (or context in the sentence) and it's fine in 98% of cases, but too often someone sends a token, password, name, or other string where you need to copy it out to another application to see it and just... why? Why bother?I/O test for Sans Flex: https://snipboard.io/wXCQq5.jpg
It passes the O0 distinction but not the Il one
Example of a font that passes, Ubuntu: https://fonts.google.com/specimen/Ubuntu?preview.text=10%20I... (custom license but looks similar to GPL in that you can do what you want besides relicensing it as proprietary or removing credits)
Another one, Nunito Sans, using the Open Font License: https://fonts.google.com/specimen/Nunito+Sans?preview.text=1...
IBM Plex Sans is another Open Font License option: https://fonts.google.com/specimen/IBM+Plex+Sans?preview.text... (it has an unusual capital Q style though)
by lucb1e
12/13/2025 at 3:43:12 AM
This is an Interface font, most suited for User Interfaces (Websites, Apps, etc). Almost all fonts that I have seen that distinguish the “O0 & Il” properly do not look good when used as an Interface font, but look good as an editor or something you do with it (Notes).For instance, I set Inter[1] as my UI font in Obsidian, but I have set “Atkinson Hyperlegible Next”[2] as my Editor Font. I would gladly use such clean sans-serif fonts (Inter, Flex Sans, Geist, etc.)[3] because they are easy for the human eye to read quickly, even if there is a spelling error, and hence the distinction between the “O0 & Il” would not matter.
So, It Depends on the use case. “Atkinson Hyperlegible Next” is a fantastic, highly readable/recognizable font, but it will look pretty ugly when using it to design interfaces.
by Brajeshwar
12/13/2025 at 12:34:57 PM
Atkinson Hyperlegible is great, shame that there is no monospaced version. And the slash on the 0 is backwards :)by BrandoElFollito
12/13/2025 at 12:41:13 PM
Monohttps://www.brailleinstitute.org/freefont/
https://github.com/googlefonts/atkinson-hyperlegible-next-mo...
by Brajeshwar
12/13/2025 at 8:39:24 PM
https://fonts.google.com/specimen/Atkinson+Hyperlegiblehttps://fonts.google.com/specimen/Atkinson+Hyperlegible+Mono
by nektro
12/12/2025 at 8:49:45 PM
One would think that this would be a fundamental principle in font design, distinguishing letters from each other.by apt-apt-apt-apt
12/12/2025 at 9:10:09 PM
It’s just not a common enough feature of handwriting, I assume.by samoyy
12/12/2025 at 10:42:20 PM
Is it not? The style of block letters I learned (in 90s Germany) has the capital I as a straight line, the digit 1 as a straight line with an angular downward hook at the top, and the lowercase l as a line with a smooth 45-90° right hook at the bottom. I always perceived that style as quite common in handwriting, just uncommon in print (just like close to nobody does the fancy a in handwriting but it's common in print)And of course in cursive I and l look nothing alike, no matter which cursive you write
by wongarsu
12/12/2025 at 9:31:27 PM
Yes, but even with my worst handwriting, in situations where I and l matters, I can always choose to do an especially I I or particularly l l even if most are indistinguishable which a font can not doby amoshebb
12/13/2025 at 12:27:32 AM
I can see how you'd do an especially I I. You just need to include the serifs, which I always do in handwriting anyway.But how do you emphasize a lowercase 'l'? The only method I know is to make it cursive, which looks terrible.
(I don't really need to distinguish l from I, because I put serifs on I. But I do sometimes need to distinguish it from 1; in natural writing, 1 and l are identical.)
by thaumasiotes
12/13/2025 at 12:32:25 AM
You can generally just add a little rightward hook at the base. (Which is what the Ubuntu font above does)by mjmas
12/12/2025 at 8:29:05 PM
Almost no fonts do this by default and instead offer it as context alternate, but I feel a font should always use a dashed or preferably dotted zero. Zero being slightly skinnier than capital O is not enough for rapid visual clarity.by jorvi
12/12/2025 at 10:07:13 PM
I believe this font doesby chiefalchemist
12/12/2025 at 10:50:57 PM
As does their recently published: Atkinson Hyperlegible Next. https://fonts.google.com/specimen/Atkinson+Hyperlegible+Nextby davoneus
12/12/2025 at 11:58:55 PM
I don't understand why we moved away from this. Is it simply aesthetics, or was there something else at play here?by TheCraiggers
12/12/2025 at 8:37:42 PM
Many fonts have a disambiguation option. Inter by default doesn't pass the I test - but it can be enabled.Google Flex Sans supports font-feature-settings: "zero" - but doesn't seem to support lower-case l, upper-case I disambiguation.
by parkersweb
12/12/2025 at 10:06:30 PM
Lately I’ve become a fan of:https://fonts.google.com/specimen/Atkinson+Hyperlegible
Mainly for its attention to detail. It’s careful to make it obvious when it matters. For example, O and 0, lower case L and 1, and others.
by chiefalchemist
12/13/2025 at 1:19:41 AM
I mean, how can you not like it?It's hyperlegible!
by dogmatism
12/12/2025 at 10:37:07 PM
Hello fellow Ubuntu font lover.I have this set as my OS default and also forced for all webpages, I just find it so clear and easy to read. On the occasion that I have to browse the web without it, I don't struggle per-say, but I definitely find that I have to read slower, and find myself rereading words more often.
by worble
12/12/2025 at 7:34:01 PM
That’s a lowercase “L” vs. uppercase “I” for those of you as confused as I was.by munchler
12/12/2025 at 8:26:35 PM
Why would someone spend years developing a front where you can't tell the difference between Il or 0O? Doesn't it hurt their ego at personal level?by cloudflare728
12/12/2025 at 9:12:54 PM
they probably deem it as not important. "Context is all you need to tell the difference, keep the font clean"by virtue3
12/12/2025 at 9:28:59 PM
Context solves this ambiguity in texts recording a human language, but in computer or smartphone applications it is extremely frequent to not have a context that allows disambiguation.Ambiguous characters may have been acceptable in typefaces designed before 1990, but they are certainly not acceptable for any more recent design, unless the typeface is designed for a very specific and limited purpose, e.g. for a single advertising poster, and they will never be used for rendering arbitrary texts.
by adrian_b
12/12/2025 at 10:07:27 PM
To be fair the designer who created the font would probably agree that for use cases like passwords or serial numbers etc. you should use a different font. That's the nice thing about having different fonts around. You can choose which one you want to use.by Hupriene
12/12/2025 at 10:39:22 PM
That is a solution applicable for a document or GUI created by yourself, where you can define various styles with associated fonts and use them appropriately.However, I see the worst offenders on various Web pages (frequently for various URLs) where I do not control the typeface, unless I instruct the browser to ignore the style sheet of the rendered Web page and use my own fonts instead, which can be tedious or create other problems in the rendered page.
by adrian_b
12/13/2025 at 12:38:34 AM
I have a few CSS overrides for some websites to turn all input boxes into monospace fonts. It is far easier to use them then.by mjmas
12/13/2025 at 12:11:04 AM
Then they can also coalesce the digit 1 into uppercase i and lowercase L because who cares right it gotta look clean. And why bother deviating from the perfect circle? The future is lowercase o, also for zeroes. Heck, why do we have the letter J anyway? Couldn't we merge that with I? It's so rarely used, it sounds iust about the same, let's iust "keep it clean"I really can't imagine this is the thinking
by lucb1e
12/13/2025 at 8:29:17 PM
It's funny I thought out a post, wrote it in my head and then scrolled a bit further and read (where you wrote it). The only difference was I choose upper-case "G" and making it a "C" instead of "J" to "I". We can also make it match open paren as well.But yeah this whole thing seems absurd of removing the distinguishing marks on things whose only purpose is to allow us to distinguish them.
While were at it N can become \ and M as well. D can become close paren. Q can become O.
And entire font of just vertical bar, horizontal bar, open paren, close paren, forward slash, backslash and a circle. Just think of how clean it would look...
by BoiledCabbage
12/13/2025 at 7:46:31 AM
Except they're not keeping the font clean, just less legibleby eviks
12/12/2025 at 7:40:43 PM
He inspired me to uninstall Bitstream-Vera-Sans fonts from my system so that his post was no longer a prime example of the problem.by quantummagic
12/12/2025 at 7:54:03 PM
Thanks, the "1" does look different. The font does have font-variant-numeric: slashed-zeroby tln
12/12/2025 at 8:51:47 PM
> I've stopped picking fonts that don't distinguish lowercase l and uppercase I.Serif fonts solved this problem generations ago.
by GaryBluto
12/12/2025 at 9:17:53 PM
Yes, but the way in which they have solved this is partially the reason why many sans-serif fonts suck from this point of view.Serifs have appeared as a feature of the Latin letters of the inscriptions in stone of the Roman Empire, which are the model for the present capital letters.
On the other hand, the model for the present small letters are the letters of the manuscripts of the Carolingian Empire, written with pen (i.e. goose feather) on parchment.
The small letters originally did not have serifs. The small "l" letter had a right hook at its lower end, which distinguished it easily from an "I".
Serifs were added to the small letters, in imitation of the capital letters, only in the first books that were printed with "Antiqua" letters, in Italy, after the invention of printing.
The addition of a serif at the low end of "l" has lead to the removal of the right hook that it had previously. When sans-serif fonts were created in the 19th century, they have removed the serifs from the letters, so by removing the differently-shaped serifs from "I" and "l" they have become hard or impossible to distinguish.
The wiser typeface designers have realized that this is wrong and they have restored to small "l" the low right hook that it had at its origin in the Caroline script, distinguishing it from capital "I" even in a sans-serif font.
Unfortunately, too many sans-serif fonts have continued to perpetuate the mistake of removing the serifs from small "l" without restoring its original low right hook.
by adrian_b
12/12/2025 at 9:30:49 PM
It’s comments like these that make me love HN. Thank you.by JumpCrisscross
12/12/2025 at 11:41:17 PM
When I was in Italy, it took me far too long to realize on Google Maps that all the restaurants I was visiting started with "Il" and not the roman numeral two "II"by snug
12/12/2025 at 9:21:53 PM
Not only must the il1 O0 series be distinguishable, but they need to stand on their own. If I only see one in isolation, can I know if that it must be a capital O and not a zero?by 3eb7988a1663
12/13/2025 at 12:31:35 AM
> Words virtually always have redundancy (or context in the sentence) and it's fine in 98% of cases, but too often someone sends a token, password, name, or other string where you need to copy it out to another application to see it and just... why?I think the right answer here is to avoid including 1/I/l/O/0 in your tokens. For example, I'm pretty sure that Nintendo gift card codes can't contain those characters?
by thaumasiotes
12/13/2025 at 3:45:51 AM
> stopped picking fonts that don't distinguish lowercase l and uppercase IStrongly agree on this, Bitwarden previously used a font that made passwords that contains i (or was it I?) and l difficult to distinguish.
It seems they changed the fonts since the recent UI refresh.
by 8cvor6j844qw_d6
12/13/2025 at 12:40:20 PM
To be honest, the key purpose of Bitwarden is to make your password as little readable as possible :)(Yes, yes, I know about passphrases or multi-word passwords)
I think I needed ince to spell my password, and a chose a letters-only (small case) shorter one, or multi-word
by BrandoElFollito
12/12/2025 at 10:45:27 PM
I wonder why the Ubuntu and the IBM Plex Sans fonts use a different style "a" for italic vs non-italic. I like the Ubuntu font and have used it in the past.by mytdi
12/13/2025 at 9:46:36 AM
It seems like such poor design to make those letters indistinguishable from each other.For me it comes up often as names of people or places, because those are more likely to be in a font that doesn’t distinguish and also there is no additional redundancy
by left-struck
12/13/2025 at 7:42:22 AM
Indeed, and you'd think that over many decades of font design some basic fails like this would not happen as they'd be against the fundamental rules "that every single font designer knows by heart"by eviks
12/12/2025 at 9:53:16 PM
monofur - my monospaced programming font of choice for decades now has an almost psychotic dedication to glyph disambiguation, every character is exceedingly distinct.by Marazan
12/13/2025 at 12:45:09 PM
It's really nice, but unfortunately no ligatures.I use Fira Code (like many) and it is very readable as well. But yours is indeed perfect
by BrandoElFollito
12/13/2025 at 6:54:11 PM
Yeah, there are a bunch of caveats about monofur and ligatures is one of them. For me I don't care for ligatures so it doesn't affect me but would obviously be a show stopper for others.by Marazan
12/12/2025 at 8:53:20 PM
I had a manager who preferred monospaced font, it definitely made it easier in a lot of cases. I also notice a number of them make i l and I and 1 distinct enough.by giancarlostoro
12/12/2025 at 10:45:13 PM
Except for ancient typefaces like Courier, which predate their use in computers, most monospaced fonts that have been created during the last 40 years have been intended for use by programmers or in command-line interfaces.Therefore having non-ambiguous characters has been an explicit design requirement for them, at least since the Apple Monaco font.
by adrian_b
12/13/2025 at 4:36:08 PM
We used it especially for user input fields if I remember correctly.by giancarlostoro
12/12/2025 at 11:10:56 PM
One of the few unqualified improvements that “X” (aka Twitter) made was rendering the usernames in a font that has wings for the lowercase Lby danso
12/12/2025 at 11:13:34 PM
I had always wondered if that happened because of a proliferation in folks named EionMusk.by DHowett
12/12/2025 at 10:43:57 PM
I also agree with you on the O0 I'll distinctions importance. So as google open-source it, someone can improved it freely.by dialogbox
12/13/2025 at 12:14:24 AM
It's not that level of open. You can't just do a pull request, not only because there's no infrastructure for it but because you also need to change the name. It becomes a different product.> No Modified Version of the Font Software may use the Reserved Font Name
And if you are fine changing the name and releasing it as a separate font, you might as well just type "Ubuntu" and discover that this font already does what you want!
I really don't see the point of designing a font that is worse than what's already out there. What is Google trying to achieve here? Just another headline, giving something openly to the world, good brand publicity? Seems like an expensive way to do it so probably not, but then why
by lucb1e
12/12/2025 at 9:30:07 PM
If the font doesn't support ligatures, it might as well be generated by AI.by radley