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?
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
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 do
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.)
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.
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.
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.
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"
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.
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.
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.
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"
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?
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.
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
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.
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.
> 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.
I've tried so many fonts in my coding life, but I think I've finally found my forever font: JetBrains Mono. Crisp, all characters distinguishable, slightly larger lowercase for better reading ...
I recently compared it once more to others – https://www.programmingfonts.org/ makes it easy to narrow down to your favourites one by one ... JetBrains Mono still wins. :)
I hear you: I don't like how skinny the letterforms are. There's an "extended" variant that I find much more pleasing. I put together a customization you can see here: https://codeberg.org/ashton314/iosevka-output (there's a nice screenshot on that page).
You can probably get the proportions you want if you find a way to tweak the line spacing (also possible by adjusting the `leading` option in `private-build-plans.toml` and rebuilding).
From another point of view, the font is just as tall as other fonts, just less wide. So I suspect you are (maybe unconsciously) making an unfair comparison by scaling one font more than the other.
I also prefer JetBrains Mono, after using a very large number of other programming typefaces in the past.
While there are a few other programming fonts with a very similar quality, for myself JetBrains Mono has a distinctive advantage: it includes a much greater character set than any other good programming font that I have ever tested (DejaVu Sans Mono also has a big character set, but it is definitely uglier), for instance it has a lot of mathematical symbols that I need.
I like using silly fonts, e.g. Comic Sans Mono has been my daily driver for the past year or so, and it's really fun to see the Minecraft fonts and old DOS and VT323 fonts. If anyone's into retro computing, it's worth checking those out, particularly the website link for the IBM VGA 9x16, which has loads and loads more old fonts.
I think I'll try using Monocraft in the shell for a while and see if it works well for me, though I might stick to Comic Sans for actual coding :)
heh, Im using this font in my game. Picking fonts is hard, and I feel like I've just dipped my toe in the water so far. Im not 100% satisfied with the non-monospace font I use (Adobe Source Sans), but I have more important things to focus on right now
I don't love this new font as others have already pointed out, there's not enough distinction between some letters[1].
However, the general movement toward redistributable and license-friendly fonts is wonderful and I'm very happy to see it continue. As someone who has had to deal with font licensing hell in the past, having these available is a huge improvement. Even just setting up my personal linux systems and having actually usable fonts available is a massive improvement, before even getting into trying to build apps/websites/etc. Many thanks to Google and any others who are releasing these!
I agree with you, but this font is less notable for its glyph design than for the fact that you can obtain many variations of it by choosing suitable parameter values (hence the "Flex" name).
This is a feature that few, if any, open source typefaces possess.
Being open source, the same techniques can be reused in the design of another parametrized font, with less ambiguous glyphs.
Letters with rounded terminals are especially popular for public signage in a few Asian countries, e.g. Japan and Korea.
That is why Microsoft Windows has included such a rounded font for the Korean script: Gulim. On Windows, if you want to render a text with Latin letters with rounded ends, you can use Gulim for the normal text, coupled with Arial Round for the bold text.
On MacOS, there was a Hiragino Maru Gothic rounded font for Japanese (where also the Latin letters are rounded). I no longer use Apple computers, so I do not know whether the Hiragino fonts have remained the fonts provided for Japanese.
Oh man, I already spend way too much time stressing about size & weight. This is enough toggles to let you really spend hours trying to get it perfect!
Thin weights are eyecandy, but don't forget to also decontrast the color! Nothing screams "made by a designer" like thin grey prose that, if you're lucky and they hired a professional, sits precisely at the minimum of the WCAG contrast legibility standard
IMO Ubuntu Mono and Ubuntu Sans Mono are two of the best fonts ever made, comparable to Consolas, which I think it's still the best monospace font... talking about monospace fonts.
I'm very confused. This is the font that matches the Google branding, and that they started using as a UX font in Gmail, Docs, etc.
I hate it in UX because it's so "geometric" -- works well for a logo, but not body text, so it's just a bizarre choice for UX. Unlike Roboto which continues to be great for that. (Google Sans is fine as display text though -- headings, logo, etc.)
But my understanding was that Google wanted to differentiate its first-party apps from other Android apps with a proprietary Google font.
But now they're opening that font up for everyone to use, so Google's apps will no longer look uniquely Google-branded.
I'm so confused what the heck is going on over there in Mountain View.
No really, I'm not trying to be edgy. Does the font we're using to read a document matters??
Last time I checked, scientist agreed that the best for an average user is the font you're used to. Serif, sans serif,.. didn't matter. Just keep using the one you always used.
So I don't get why every so often, Google work on a new font. Pick one and stick to it, user don't care.
Or am I missing something ?
BTW, personnel opinion but the only fonts i found to really look better than anything else were apple fonts. They don't make things easier to read but they just look so nice whereas Google always feel meh.
It makes a big difference for legibility which font you pick. But I see what you mean in that, if the font is "just fine" (not trying to be fancy or, say, in futuristic style for a game or something), then why bother making yet another "just fine" font as Google has done here? There's already so many sans-serif fonts that no person could tell apart if they don't see them directly side-by-side and are asked to spot the difference. For this reason, I also wonder why this release matters at all
Yes, it matters, and big companies can do fantastic things by designing extremely expansive fonts which make it easy to include users speaking plenty of languages that we developers don't even know about.
I am very fond of Merriweather (which I recently saw on a list of over-used fonts, for those who believe that you should use a different obscure and, hopefully, hard to read font in every document). It pairs nicely with Merriweather Sans, Cascadia Code, and for math Libertinus Modern, though I do have to tweak ex-heights to match.
I don't really like serif fonts, but the two that immediately come to mind are Noto Serif and IBM Plex Serif. Both are open source. I know Noto Serif is variable, but not sure about IBM Plex.
Lots! Start with the Google Fonts browser. This link should take you directly to a variable + serif list, and from there you can drill down into sub-styles, focus more on those with more axis, more styles, etc.: https://fonts.google.com/?categoryFilters=Technology:%2FTech...
seems like a good step towards making a variable font that allows all forms of text b/c Apple already has SF (fka San Francisco) which has many variants.
yep. specially since Apple font license is quite restrictive:
> Apple restricts the usage of the typeface by others. It is licensed to registered third-party developers only for the design and development of applications for Apple's platforms. Only SF Pro, SF Compact, SF Mono, SF Arabic, SF Hebrew and New York variants are available for download on Developer website and they are the only SF variants allowed to be used by developers.
I understand that there are many good reasons not to want to use fonts where the lowercase L and uppercase I are indistinguishable.
But am I the only one who actually prefers both to be relatively identical? Or at least the lowercase L must not have any quiggles or crooks? I like em both north-south. 12:30.
I think typically the I will be a little thicker than the i for regular (text? roman?) weights and below.
Now we all have high density screens serifs are going to make a comeback, if for no other reason than that new sans-serif fonts have developed this distinctly childish aura. This is not in the same league as Frutiger or Univers.
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)
And of course in cursive I and l look nothing alike, no matter which cursive you write
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.)
https://fonts.google.com/specimen/Atkinson+Hyperlegible
Google Flex Sans supports font-feature-settings: "zero" - but doesn't seem to support lower-case l, upper-case I disambiguation.
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.
Serif fonts solved this problem generations ago.
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.
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.
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.
I really can't imagine this is the thinking
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.
It's hyperlegible!
> 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
Therefore having non-ambiguous characters has been an explicit design requirement for them, at least since the Apple Monaco font.
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?
I recently compared it once more to others – https://www.programmingfonts.org/ makes it easy to narrow down to your favourites one by one ... JetBrains Mono still wins. :)
https://github.com/be5invis/Iosevka
It takes a day or so to get used to the condensed form factor, but after that you can enjoy much more horizontal space in your terminal windows.
There is one downside: all the other fonts will look bulky :)
You can probably get the proportions you want if you find a way to tweak the line spacing (also possible by adjusting the `leading` option in `private-build-plans.toml` and rebuilding).
Ubuntu Mono remains undefeated for now for me though.
You can see an apples-to-apples comparison here:
https://www.programmingfonts.org/#iosevka
(and then put and hold your finger on the last line of text and select another font)
But you are inspiring me to give it another go. Thanks.
They are beautiful fonts and are often updated, too. Clearly a lot care goes into their crafting.
While there are a few other programming fonts with a very similar quality, for myself JetBrains Mono has a distinctive advantage: it includes a much greater character set than any other good programming font that I have ever tested (DejaVu Sans Mono also has a big character set, but it is definitely uglier), for instance it has a lot of mathematical symbols that I need.
https://www.codingfont.com/
I like using silly fonts, e.g. Comic Sans Mono has been my daily driver for the past year or so, and it's really fun to see the Minecraft fonts and old DOS and VT323 fonts. If anyone's into retro computing, it's worth checking those out, particularly the website link for the IBM VGA 9x16, which has loads and loads more old fonts.
I think I'll try using Monocraft in the shell for a while and see if it works well for me, though I might stick to Comic Sans for actual coding :)
However, the general movement toward redistributable and license-friendly fonts is wonderful and I'm very happy to see it continue. As someone who has had to deal with font licensing hell in the past, having these available is a huge improvement. Even just setting up my personal linux systems and having actually usable fonts available is a massive improvement, before even getting into trying to build apps/websites/etc. Many thanks to Google and any others who are releasing these!
[1]: https://news.ycombinator.com/item?id=46247559 [2]: https://news.ycombinator.com/item?id=46247693
This is a feature that few, if any, open source typefaces possess.
Being open source, the same techniques can be reused in the design of another parametrized font, with less ambiguous glyphs.
Now I want to see a rounded terminal (as in command-line apps, not terminals in letters.) Would I type in a circle? Sounds cool.
That is why Microsoft Windows has included such a rounded font for the Korean script: Gulim. On Windows, if you want to render a text with Latin letters with rounded ends, you can use Gulim for the normal text, coupled with Arial Round for the bold text.
On MacOS, there was a Hiragino Maru Gothic rounded font for Japanese (where also the Latin letters are rounded). I no longer use Apple computers, so I do not know whether the Hiragino fonts have remained the fonts provided for Japanese.
This font fails hard.
IMO Ubuntu Mono and Ubuntu Sans Mono are two of the best fonts ever made, comparable to Consolas, which I think it's still the best monospace font... talking about monospace fonts.
Funny enough I think Reddit Mono is a very good monospace font too https://fonts.google.com/specimen/Reddit+Mono?preview.text=i...
And Hack: https://dafont.com/hack.font?text=i1IlL0Oo
For monospace fonts only:
https://fonts.google.com/?preview.text=i1IlL0Oo&categoryFilt...
https://dafont.com/theme.php?cat=503&text=i1IlL0Oo
https://coldtype.goodhertz.com/introduction.html
I hate it in UX because it's so "geometric" -- works well for a logo, but not body text, so it's just a bizarre choice for UX. Unlike Roboto which continues to be great for that. (Google Sans is fine as display text though -- headings, logo, etc.)
But my understanding was that Google wanted to differentiate its first-party apps from other Android apps with a proprietary Google font.
But now they're opening that font up for everyone to use, so Google's apps will no longer look uniquely Google-branded.
I'm so confused what the heck is going on over there in Mountain View.
No really, I'm not trying to be edgy. Does the font we're using to read a document matters??
Last time I checked, scientist agreed that the best for an average user is the font you're used to. Serif, sans serif,.. didn't matter. Just keep using the one you always used.
So I don't get why every so often, Google work on a new font. Pick one and stick to it, user don't care.
Or am I missing something ?
BTW, personnel opinion but the only fonts i found to really look better than anything else were apple fonts. They don't make things easier to read but they just look so nice whereas Google always feel meh.
Has 12-axis of variables (whereas most only have 1 or 2)
https://fonts.google.com/specimen/Roboto+Flex/tester
> Apple restricts the usage of the typeface by others. It is licensed to registered third-party developers only for the design and development of applications for Apple's platforms. Only SF Pro, SF Compact, SF Mono, SF Arabic, SF Hebrew and New York variants are available for download on Developer website and they are the only SF variants allowed to be used by developers.
https://en.wikipedia.org/wiki/San_Francisco_(sans-serif_type...
But am I the only one who actually prefers both to be relatively identical? Or at least the lowercase L must not have any quiggles or crooks? I like em both north-south. 12:30.
I think typically the I will be a little thicker than the i for regular (text? roman?) weights and below.
I know I've seen Mozilla proudly pat themselves on the back in their announcement of anti-racist Firefox themes
-- Secretary of War ~~Pete Hegseth~~ Colin Jost.