

Discover more from hrbrmstr's Daily Drop
Drop #371 (2023-11-14): Typography Tuesday
Featured Font: Monaspace; webfont; The Monks Are Still Safe (For Now)
Apologies in advance for the length of, and rant in, the first section.
TL;DR
This is an AI-generated summary of today's Drop.
The blog post introduces a new monospaced type superfamily called Monaspace, developed by GitHub Next. The post discusses the unique features of Monaspace, including its compatibility across different typefaces, its use of code ligatures, and its potential to revolutionize coding environments. The author also addresses common criticisms of using ligatures in programming and provides counterarguments.
The post then highlights Webfont, a tool that generates fonts from SVG icons. It supports various font formats and allows the use of custom templates. The author suggests that Webfont can simplify application deployments and is a valuable addition to a web developer's toolkit.
Lastly, the author discusses the recent enhancements to ChatGPT+, particularly its improved image generation capabilities. The author uses this AI to generate a stylized text image and concludes that while the technology is impressive, it is not yet a threat to professional designers or typographers.
Monaspace
Based upon my timelines in various social circles, I suspect y'all know about these new, froody fonts. BUT — just in case — let's take a look at this new, diverse, family of monospaced fonts.
Monaspace is a monospaced type superfamily that's been introduced by GitHub Next, and it may just revolutionize the way we see our code. This innovative type system consists of five variable axis typefaces, each with a distinct voice, yet all metrics-compatible with one another. This compatibility allows you to mix and match them, creating a more expressive typographical palette for your coding environment.
Monospaced fonts, like Monaspace, are unique in that all characters occupy the same amount of horizontal space. This uniformity makes them particularly suitable for coding, where the readability of individual symbols is crucial. However, Monaspace takes this a step further by introducing modern tricks that enhance the coding experience.
One of the standout features of Monaspace is its inclusion of code ligatures for a broad variety of languages.
OK. I NEED TO STOP/RANT HERE FOR A MOMENT.
There are vast numbers of proponents and detractors for the use of “programming” ligatures in various contexts. You're/we're all wrong, to certain extents. Sorry to burst any purity bubbles out there.
Let's go through five detractions with some counterpoints
The first area of contention is what I'll call “misrepresentation of code meaning”.
The argument usually goes something like “ligatures can potentially misrepresent the meaning of the code, leading to confusion among readers”. For example, a ligature that combines two characters might make it difficult to distinguish between the original characters and the combined form.
While it's true that ligatures can potentially misrepresent the meaning of the code, this largely depends on the specific ligatures used and the context in which they're applied. Some developers find that certain ligatures can actually enhance the readability of their code by making commonly used character combinations more distinctive and clear.
A second area tends to circle around what I'll call “readability issues”
Some developers may find ligatures distracting and believe they can negatively impact code readability. This is because ligatures do merge distinct characters, which might make it harder for some developers to recognize individual symbols.
While some developers find ligatures distracting, others believe they can improve code readability. This is largely a matter of personal preference, and what one developer finds distracting, another might find helpful. (And, if your environment is not configured to show ligatures, um, who cares?).
A third area suggests ligatures may cause “compatibility problems”.
The argument goes that not all terminals and text editors support ligatures, which can lead to inconsistent rendering of code across different environments. Thus, this inconsistency may cause confusion and make it difficult to collaborate with others who use different tools.
While not all terminals and text editors support ligatures, there are many that do, and the number is growing. For example, the xterm.js
terminal emulator (used in many Electron and web IDEs) has resolved most issues with ligatures, and there are several open-source fonts targeting programmers that support ligatures.
Again, if an environment doesn't support them, you get the original characters.
Finally, (for this Drop), another argument is that ligatures enhance the “potential for errors”. Despite the chance of errors occurring due to ligatures being relatively low, some developers argue that the risk is not worth the potential benefits.
While the risk of errors due to ligatures may be a concern, others in the developer ranks argue that the use of ligatures can actually reduce bugs by improving code readability.
I like, use, display, and teach folks how to enable ligatures. I've been in a university teaching context for this, so I don't buy the “it hurts learning” argument.
Proudly do or do not display ligatures as you see fit. If you do sport them, be prepared to help gracefully inform the uninitiated, and take no offense if others choose a more bland existence.
NOW BACK TO OUR REGULARLY SCHEDULED PROGRAMMING [FONT]
Monaspace ligatures are organized into stylistic sets that you can enable or disable according to your preferences. For instance, ss01
includes ligatures for character sequences commonly seen in JavaScript, while ss05
provides ligatures for operators in F#. This feature allows you to customize your coding environment to better suit the language you're working with.
Monaspace also introduces a feature called “texture healing,” which is a clever idea to improve the visual presentation of font glyphs. This feature adjusts the space between pairs of characters, improving text comprehension and the overall visual balance of the font.
But, Monaspace isn't just about functionality; it's also about style.(“Radon 4EVA!”) Monospaced fonts have a unique aesthetic that can bring a fresh look to your coding environment. While they may not have the creative flair of some other font styles, they have a practical, visually effective, and stylish appeal of their own.
The Monaspace project was born out of a passion for improving software and the coding experience for all developers. It's a marriage of form and function that opens the door to new developer experiences.
Perhaps 2023 isn't so bad after all?
webfont
Webfont, is a generator of fonts from SVG icons, and offers a range of features that make it a must-have in any web developer's toolkit.
This utility supports various font formats including WOFF2, WOFF, EOT, TTF, and SVG. It also supports configuration files, enabling us to use a JavaScript, JSON, or (ugh) YAML file to specify configuration information for an entire directory and all of its subdirectories.
Webfont also allows the use of custom templates, such as CSS or SCSS, giving us the flexibility to tailor our fonts to our specific design needs.
There's no giant dependency tree, and works both as a CLI tool and a Webpack plugin.
A primary use-case for it (as noted in the first sentence) is turning a directory of SVG icons into a font. This can make it easier to use those SVGs in contexts that might otherwise require some gnarly CSS and/or JavaScript code. Kinda how FontAwesome/FortAwesome works.
You may never need it, but it may help simplify application deployments.
The Monks Are Still Safe (For Now)
ChatGPT+ was recently re-unleashed with enhanced capabilities. One of said capabilities is enhanced image generation, with the ability to more accurately represent stylized text.
Thanks to work, I can use ChatGPT+ (I already pay one personal AI-tax to Perplexity), and gave it two prompts (you can figure out why after reading both):
Write the words "Daily Drop" in old-timey calligraphic script on a piece of parchment paper. The look should be realistic, not "plastic".
there are two
i
s and twol
s. There should only be onei
and onel
inDaily
It generated the section header.
I think the monks, and professional design/typography folks are still safe, for the moment.
FIN
Democracy is on life support in the U.S., and innocent civilians are losing their homes and lives in far too many war-wrought areas of the globe, and here we are deep in the throes of “Ligature Wars”. Sigh. ☮️