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)
One would think that this would be a fundamental principle in font design, distinguishing letters from each other.
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.
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.
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.
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"
> I've stopped picking fonts that don't distinguish lowercase l and uppercase I.
Serif fonts solved this problem generations ago.
That’s a lowercase “L” vs. uppercase “I” for those of you as confused as I was.
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?
> stopped picking fonts that don't distinguish lowercase l and uppercase I
Strongly 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.
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.
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.
One of the few unqualified improvements that “X” (aka Twitter) made was rendering the usernames in a font that has wings for the lowercase L
I also agree with you on the O0 I'll distinctions importance. So as google open-source it, someone can improved it freely.
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.
If the font doesn't support ligatures, it might as well be generated by AI.
> 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?
monofur - my monospaced programming font of choice for decades now has an almost psychotic dedication to glyph disambiguation, every character is exceedingly distinct.
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.
1. https://rsms.me/inter/
2. https://en.wikipedia.org/wiki/Atkinson_Hyperlegible
3. https://vercel.com/font