This is the first time I've seen TODO as a ligature, and I am really into the idea. Is this something you can add to existing fonts? Does anyone have any recommendation for a good programming font that does this?
Fira Code supports stylistic sets, so you can actually configure whether == and === (and != and !==) do that, and leave weirder ligatures out of the defaults. In VS Code, for example, you would change editor.fontLigatures from true to "'ss08'" to make them still ligate together, but with breaks between the = signs. I use ss06 to make backslashes faded when they're used to escape other characters.
Glad you like it, I've never seen it in a font before so I am unsure if there are any others that add it in. I've definitely appreciated the ligature as I use the font, but I did wonder if others would find it annoying
Judging from the one screenshot example, I actually like Monocraft better. It really has that nice Minecraft/retro look, and I think this could actually help get kids who are into Minecraft into coding. That being said, I actually still like Miracode better than most typical IDE monospace fonts (at least as a novelty). That's really cool, where did you learn to make such designs?
Yes, this font reminds me of the "Faithful" texture packs (which makes sense, it's basically the same principle: still pixelated, but "zoomed out", more dense) and I don't like those. It's as if the 16x look has something magical, while everything above it looks "low res".
That being said, I sadly do not find this to be particularly "readable". The choice to introduce octagonal-style 45° segments rather than normal rounding makes it quite difficult for me to read. The worst glyphs for legibility for me are "r" and "p" -- you've actually increased the size of the diagonal segment that connects to the stem, compared to diagonals on letters like "o", which really throws off the forms for me, and doesn't seem to be inspired by anything in the original font. If anything, rounded connections to stems in fonts tend to be reduced rather than exaggerated. (As in the font used by HN, Verdana.)
I wonder what this would look like if you used curves rather than introducing octagonal corners, and didn't exaggerate the connections to stems? Keeping in mind that curves usually do things like extending slightly beyond the baseline or at the top.
Thanks for the in-depth comment, it's definitely been a balancing act trying to determine how to handle things like the diagonals/curves. I originally made things more "curvy", but it made the font look similar to comic sans or other handwriting fonts for some reason. Perhaps a sharper curve algorithm would avoid this, though the "angular" look does make this font into something a bit more unique than the other programming fonts available.
Happy to help! Font design isn't easy, but it's very rewarding. You might look at the famous Eurostile font which does a kind of "rounded rectangle" style of curves which might work well here.
One more note -- I think this font actually works great as a display typeface. The octagonal angles and exaggerated stem connection give it a ton of personality, and display typefaces used for headings, titles, packaging, etc. are where personality is more important than readability.
So I think you've produced something really cool -- just not necessarily as a coding font!
Love the font but wish you'd share your custom algorithm. I've designed a number of pixel fonts in the past I'd love to convert to strokes in this way. Any chance you'd release a little conversion kit?
Don't worry, it's completely open source! Miracode is a fork of my other font "Monocraft" which is under the GPL. As such, Miracode is also GPL, and the font files themselves are under the OFL.
Since it's a fork, there are a few extra files that are not actually executed which may be why you aren't seeing the algorithm. Check miracode.py for the script that generates the font! No promises that it'd work on other fonts though, the "algorithm" was made over a weekend and as such could definitely use some optimization. On the bright side, I did include a unit testing system which might help others convert fonts in the future.
Awesome, thanks. I'm only versed in JS and Lua and all of my pixel fonts are basically glyphs on a big sprite sheet of 32x32 pixel grid cells. How difficult would it be for me to simply patch what you've started to work off something simple like bitmap data to export a TTF of converted vector data?
I've done so in the past and I believe it's not much different from usual pixel-art scaling algorithms. At some point though you would want more control over which corner should be sharp or not, and that resulted in my own semi-bitmap font with a subpixel handling .
No promises that it is actually a good algorithm, I definitely had to handle a lot of edge cases and I am sure there are more out there! The best decision I made was to make a unit testing system for the font, so hopefully that'll make things easier for people in the future.
While I understand the reaction, it’s not exactly constructive and a bit below the standard here. The font/tooling is fully open source, so feel free to remove the ligature table and recompile it yourself.
I personally find the TODO and NOTE ligatures to be a great idea, however I know you’re talking about the common programming ligatures instead.
Then don't use it? People do things for fun sometimes.
I used to program turtles with ComputerCraft a while ago, so I had to write Lua in Minecraft using the Minecraft font, so this is pretty funny to see. I won't use it, but it'll be in the back of my mind if I ever give a programming presentation to Minecraft players.