Wow, I didn't really expect to see my project there this morning! I'm normally a simple lurker, but I wanted to say thanks for the kind words about the project.
I know some people might want to modify or tweak the project to their liking. The project is meant to provide a Python sandbox more than just font files, so feel free to fork it or submit a PR if you feel like some glyphs need tweaking! You don't need any external tools to draw/visualize the glyphs.
Unfortunately no, ligatures/nerd fonts/powerline is not in my concerns list. It doesn't support all the characters all my alphabet. This is the showstopper.
Normally, I use Berkeley, but I have a couple of terminal profiles with different fonts which I use if I open 5+ terminals sometimes, to group things. I wondered whether I can use this one of the alternate fonts when things get complicated and crowded.
Yea the m is quite off, I know nothing about fonts but the middle tinge is too long, or it’s too symmetric, the right corner is too sharp or something. And it is repeated so much in the example text that works against it.
Seeing as your font is OFL, you might like to submit it to Google Fonts. That would make it so much easier for devs to include on their webpages and other media.
Google Fonts is no longer best practice due to worse performance and privacy (and the questionable ethics of giving stuff to Google for free) compared to self-hosted fonts. So, OP should take this suggestion with a grain of salt.
When you design a glyph inside any vector graphics software, you are essentially asking a library to execute some commands (eg. place a point there, then place the bézier curve handles there and go to next point etc.). Instead of relying on a software with a UI, I directly called the underlying commands from python for every glyph.
Thanks - got this part but did you actually design all letters one by one, or did you just feed it with all the fonts you mentioned as inspiration and YOLO? Can’t imagine how to give feedback to the curves when they live in the code and are not visualised…
If the designed used an LLM, it’s easy to say “no, make the dot on the i slightly elliptical, and round the bottom left corner of the B a tiny bit more”, etc.
I’m doing lots of CAD work this way, where previously I’d be drawing in rhino but not operating from durable product briefs.
Im going to give this a go. Im using berkeley mono, so this is up my alley. What colorscheme are you using in the examples? I tend to find that font + colorscheme goes hand in hand.
Hand-hinted by Fabrizio:
”More than 9000 characters optimized from 9pt to 48pt to guarantee the best possible readability.”
It is the ultimate “programmer’s font” and well worth the money for something you stare at every day and the next best thing to a bitmap font in today’s “Retina resolution” world.
Below phone-level PPI values, font AA still just looks blurry to me. As I like 'em large though, there are not too many bitmap options (terminus, for example, looks quite brittle at large sizes). I seem to have settled on lode 1.5 from here on a ~110 PPI display: https://github.com/B2HDPI/B2HDPI
I don’t prefer bitmap fonts (anymore) because I find subpixel antialiasing beneficial. But I’m with you regarding low-DPI monitors, and the lack of pixel-grid hinting in modern fonts is a pity.
It’s similar to vector icons versus hand-drawn bitmap color icons.
Setting aside the other ways AI is upending society, I absolutely love how we can all share and build on simple artifacts and micro-apps now that can be built entirely from our brain's vision expressed in plain English.
It's not just a little different. it's VERY different. it's much more boxy, and letters are closer in height, especially noticeable in uppercase next to lowercase. I would say it's less readable than Jetbrains Mono.
Lower case 'l' even extends above upper case 'G'. it missed with my brain xD
Overall it's really pretty but not a daily driver.
Eg the `m` is much different: it has the wonderful short middle descender, taken from Ubuntu Mono.
Your comparison says the `m` is 28% different. It's completely different. I don't know what the 28% is supposed to represent (yes, the difference in the area taken, but that's meaningless).
It's not completely different. Look at other fonts (e.g. comic sans) to see what "completely" means. Norwand is a little wider and the middle line is shorter. 28% seems a fairly accurate measurement. It's almost one third different for just the middle descender.
I prefer the JetBrains Mono choice for "3", where JetBrains Mono uses the shape that is recommended for writing a "3" that cannot be easily morphed into another digit, like "8".
It's a bit like the paid font Berkeley Mono which I've been using for a while now. But I think Nordwand feels softer and nicer, it embodies a message in the font (thus the fluency effect is more potent).
The message may be subjective but it strikes me as: "I, the font, contain important data [due to the sharp curvatures and uniform size of letter elements]. Not sure if others think about fonts in this way.
Berkeley Mono's message to me feels like "I'm just doing my job, don't mind me, focus on your thing".
> Berkeley Mono's message to me feels like "I'm just doing my job, don't mind me, focus on your thing".
It's a font inspired by older terminals and "no nonsense" hardware of that era. I put its design philosophy as "it's so good that it's invisible". Using it for years now, and it feels natural and neutral.
With Gruvbox dark, it really feels like I'm using an old terminal. Like how I like it.
A lot of things were better in that era. Keyboards for instance. All keyboards were nice, and some companies are charging a lot of money just to give us back what we once had!
The same goes for milk, cheese, fish cans, cars, chocolate, movies, and clothes. And books.
That's true. However, I got some nice keyboard(s) for myself, and I don't look back much now. Not all are mechanical, but most are.
I'm happy to report that there is still good milk and cheese out there. Fish is a hit and miss. Belgians still make incredible chocolate, but cars, movies and books have gone downhill.
However, while I'm a pen and paper guy heavily, I love my e-reader.
P.S.: Also, trackballs are much better for many tasks than mice. I'm happy they still make them, and make them well.
I have been going back and forth between Luxi Mono (serif monospace fonts are rare but look great on high-resolution monitors) and Hack (like Helvetica, it has virtually no personality and thus fits well everywhere). Everything else I've seen has looked... weird or off somehow. But this is one of the first alternatives I'm entertaining the idea of trying.
My main concern is that the tall glyphs for less than < and greater than > will disambiguate badly with actual Unicode left 〈 and right angle brackets 〉.
Edit: I also realised just now the ASCII hyphen-minus - is quite long with this typeface, which makes it ambiguous with the longer dashes. (It looks freakin' great in pure ASCII environments, though!)
The hyphen is as wide as the em dash (it's one pixel higher than the em-dash—the only visible difference to my eyes). And the $ symbol doesn't have a line that goes through all the way through. It doesn't work for me for daily use, but looks quite clean and nice overall.
I will never understand people who expect fonts for free. They don't grow on trees. Font development is extremely involved, and I am happy to die on this particular elitist hill: the overwhelming majority of free fonts are absolutely rubbish, including the Liberation family, which is available by default on most Linux distros.
Any font that is free and is still reasonably good is almost certainly designed by a type foundry for a megacorp's branding and user interface (so, things like SF Pro, Segoe UI, Open/Noto Sans, Roboto, JetBrains Mono, IBM Plex, Source Sans, Fira Sans, Inter, etc), or are historic properties of the type foundries themselves, like Garamond, Helvetica, Didot, Minion, etc.
ASCII isn't the only set of characters. Just the LGK (Latin, Greek, Cyrillic) set of glyphs alone including combining marks, diacritics, contextual alternates and ligatures alone amount to several thousand glyphs, each of which has to be individually tuned for different weights, hinted for different display resolutions, hinted for RGB/BGR subpixel rendering, and more.
I think it's an investment in ergonomics, like a good chair or a good table. If your job involves staring at text 8 hours a day, $50 for a good font that relaxes your eyes and your brain is pennies well-spent.
This goes double for any contractor who can just write it down as business expense.
Most likely. People are throwing LLMs at everything and seeing what sticks.
As one YouTuber said: it's the first time we can create (somewhat) coherent, context dependent and new content using something else than other humans.
I can't say I'm too keen on wading through piles of crap, I'm also not keen on the AI bubble and its popping nor on AI's impact on employment, but if we survive all of this, we might end up with a lot of new stuff that could actually be good. 1% of this garbage will be good, but since the entire pile will be so large, that 1% might double or more our options in various fields.
I’m not sure I’ll use this (I’m an MD IO Trial user) but I will say that finding a font you can read without thinking is one of the greatest productivity boosts as a developer.
It gives me the vibes of output from 1970's typewriters that my dad used.
Having aging eyes, I wish monospace fonts made 8 and 0 (zero) more different from each other. I notice that I have started to confuse those two glyphs when in small sizes.
Nice work. I unfortunately wouldn't be able to use it for programming because I find the parenthesis and square bracket look too similar, and it would definitely increase extraneous cognitive load.
Funny, I found this font last week on the programming fonts website before it blew up. Was using IoskeleyMono before, and think this is my endgame for now! Amazing readable font.
`Only two minimal ligatures are exposed with "->" and "=>".`
I like that, I usually have ligatures turned off, because I don't like all of them, especially the ones for == or ===. (Otoh I do like != ligatures...) but I do like the arrows.
This is probably were somebody tells me how easy it is to configure singular ligatures on a font and I'll facepalm in embarrassment for never finding out.
I hate all of them with a passion, because they look like a glyph (i.e. "something you can erase with a single backspace") but aren't. This confuses me first, and annoys me second. "Just because we could" doesn't mean that we should.
Imagine having to use Backspace twice to erase e.g. Ö or Ñ, or being able to place your cursor halfway inside Æ.
Brilliant project. The face looks good. The code looks good. It’s nice to see it in Python too. I don’t especially love the language but I have a great fondness for seeing life things codified with a standard API in a typed (or at least, type-able) language. Needing to draw an “A” in something without having to pull in font libraries (that is to say passing a compatible draw context to this project’s LowercaseAGlyph.draw) sounds nice.
Y'know, I didn't think anything was gonna pull me away from Iosevka but... here we are. Gonna give this a real go. Helping its case is that it looks a bit like Berkeley Mono.
Thanks for mentioning it! First time I heard about Commit Mono. The first paragraph already had me wondering how a monospace font can read this well.
Turns out it has smart kerning, ie. character positions are subtly adjusted to compensate for different character widths. For example, i is narrow and m is wide. That causes words like "commit" to look bad in standard monospace fonts. The m's in the middle are very densely spaced and there are wide gaps around the i.
I'll be testing Commit Mono in my editors. Maybe it will even make me switch SilverBullet back to a monospace config.
I don't know if there is some sarcasm here. I was intrigued by the "smart kerning" feature mentioned but with both that very low contrast ratio and the small text size, I can't really see a thing on that website.
I know some people might want to modify or tweak the project to their liking. The project is meant to provide a Python sandbox more than just font files, so feel free to fork it or submit a PR if you feel like some glyphs need tweaking! You don't need any external tools to draw/visualize the glyphs.
However, it doesn't support all the characters I need, so I can't use it as a terminal font. However, I starred your repo, and will watch it.
Thanks again for the effort, it looks really nice.
Normally, I use Berkeley, but I have a couple of terminal profiles with different fonts which I use if I open 5+ terminals sometimes, to group things. I wondered whether I can use this one of the alternate fonts when things get complicated and crowded.
Looks really nice though. :)
Edit: I'm quite fond of the 'k'.
I’m doing lots of CAD work this way, where previously I’d be drawing in rhino but not operating from durable product briefs.
I know I'm a bit weird, but the internet is full of weird people. It seems strange to me that nobody is interested in bitmap fonts these days.
What I really want is a hand anti-aliased bitmap font which prioritizes sharpness.
Hand-hinted by Fabrizio: ”More than 9000 characters optimized from 9pt to 48pt to guarantee the best possible readability.”
It is the ultimate “programmer’s font” and well worth the money for something you stare at every day and the next best thing to a bitmap font in today’s “Retina resolution” world.
Accept no imitations.
⁽¹⁾ https://fsd.it/shop/fonts/pragmatapro/
You can preview working with it with Blink.app for iOS; I’m unaffiliated but satisfied. Comes with PragmataPro preinstalled.
I really like using Cozette - it has great glyph support and a hi-dpi version
https://github.com/the-moonwitch/Cozette
I just wish more editors had support for true bitmap fonts! Turning off anti-aliasing on a bitmap->vector converted font is OK but not quite the same.
It’s similar to vector icons versus hand-drawn bitmap color icons.
* https://jdebp.uk/Softwares/nosh/guide/terminal-resources.htm...
As I got higher DPI monitors, I found it less hassle to use outline fonts, but I still find them preferable - given the option.
Has 7 sizes ranging from 6x10 pixels to 16x30. The larger ones are a bit rubbish. Only covers Latin-1.
LE: Ok, so it's a little more different that JetBrains Mono as this comparison shows https://claude.ai/artifact/HPiALZ7AZ2f5FxSZtcTdNa
That's a really fun tool.
Lower case 'l' even extends above upper case 'G'. it missed with my brain xD
Overall it's really pretty but not a daily driver.
Your comparison says the `m` is 28% different. It's completely different. I don't know what the 28% is supposed to represent (yes, the difference in the area taken, but that's meaningless).
I will not voluntarily look at Comic Sans, but thank you for the recommendation!
The message may be subjective but it strikes me as: "I, the font, contain important data [due to the sharp curvatures and uniform size of letter elements]. Not sure if others think about fonts in this way.
Berkeley Mono's message to me feels like "I'm just doing my job, don't mind me, focus on your thing".
It's a font inspired by older terminals and "no nonsense" hardware of that era. I put its design philosophy as "it's so good that it's invisible". Using it for years now, and it feels natural and neutral.
With Gruvbox dark, it really feels like I'm using an old terminal. Like how I like it.
The same goes for milk, cheese, fish cans, cars, chocolate, movies, and clothes. And books.
I'm happy to report that there is still good milk and cheese out there. Fish is a hit and miss. Belgians still make incredible chocolate, but cars, movies and books have gone downhill.
However, while I'm a pen and paper guy heavily, I love my e-reader.
P.S.: Also, trackballs are much better for many tasks than mice. I'm happy they still make them, and make them well.
https://github.com/shytikov/pragmasevka
And who isn't?
Squints - m is too weird - tab closed :)
Bitch please… https://github.com/rbanffy/3270font.
https://github.com/tywr/Nordwand-Mono/blob/main/src/glyphs/n...
My main concern is that the tall glyphs for less than < and greater than > will disambiguate badly with actual Unicode left 〈 and right angle brackets 〉.
Edit: I also realised just now the ASCII hyphen-minus - is quite long with this typeface, which makes it ambiguous with the longer dashes. (It looks freakin' great in pure ASCII environments, though!)
[1]: https://usgraphics.com/products/berkeley-mono
I will never understand people who expect fonts for free. They don't grow on trees. Font development is extremely involved, and I am happy to die on this particular elitist hill: the overwhelming majority of free fonts are absolutely rubbish, including the Liberation family, which is available by default on most Linux distros.
Any font that is free and is still reasonably good is almost certainly designed by a type foundry for a megacorp's branding and user interface (so, things like SF Pro, Segoe UI, Open/Noto Sans, Roboto, JetBrains Mono, IBM Plex, Source Sans, Fira Sans, Inter, etc), or are historic properties of the type foundries themselves, like Garamond, Helvetica, Didot, Minion, etc.
ASCII isn't the only set of characters. Just the LGK (Latin, Greek, Cyrillic) set of glyphs alone including combining marks, diacritics, contextual alternates and ligatures alone amount to several thousand glyphs, each of which has to be individually tuned for different weights, hinted for different display resolutions, hinted for RGB/BGR subpixel rendering, and more.
This goes double for any contractor who can just write it down as business expense.
https://github.com/ahatem/IoskeleyMono
As one YouTuber said: it's the first time we can create (somewhat) coherent, context dependent and new content using something else than other humans.
I can't say I'm too keen on wading through piles of crap, I'm also not keen on the AI bubble and its popping nor on AI's impact on employment, but if we survive all of this, we might end up with a lot of new stuff that could actually be good. 1% of this garbage will be good, but since the entire pile will be so large, that 1% might double or more our options in various fields.
(although I'll keep using Fira)
Having aging eyes, I wish monospace fonts made 8 and 0 (zero) more different from each other. I notice that I have started to confuse those two glyphs when in small sizes.
https://www.typography.com/blog/introducing-operator
Pdf preview doesn't work on GitHub.
I like that, I usually have ligatures turned off, because I don't like all of them, especially the ones for == or ===. (Otoh I do like != ligatures...) but I do like the arrows.
This is probably were somebody tells me how easy it is to configure singular ligatures on a font and I'll facepalm in embarrassment for never finding out.
[1] https://github.com/fontforge/fontforge
I hate all of them with a passion, because they look like a glyph (i.e. "something you can erase with a single backspace") but aren't. This confuses me first, and annoys me second. "Just because we could" doesn't mean that we should.
Imagine having to use Backspace twice to erase e.g. Ö or Ñ, or being able to place your cursor halfway inside Æ.
I see repeated posts on various fonts these days and I would like to try them.
Is manual installation the only option?
Turns out it has smart kerning, ie. character positions are subtly adjusted to compensate for different character widths. For example, i is narrow and m is wide. That causes words like "commit" to look bad in standard monospace fonts. The m's in the middle are very densely spaced and there are wide gaps around the i.
I'll be testing Commit Mono in my editors. Maybe it will even make me switch SilverBullet back to a monospace config.
(Elle Cordova is incredibly talented)