Were fonts always able to do "texture healing"? Has no one tried this before?
fontain•Mar 31, 2026
“Texture healing works by finding each pair of adjacent characters where one wants more space, and one has too much. Narrow characters are swapped for ones that cede some of their whitespace, and wider characters are swapped for ones that extend to the very edge of their box. This swapping is powered by an OpenType feature called “contextual alternates,” which is widely supported by both operating systems and browser engines.
Contextual alternates are normally used for certain scripts, like Arabic, where the shape of each glyph depends on the surrounding glyphs. And they are also used for cursive handwriting fonts where the stroke of the “pen” might have different connection points across letters. Texture healing is a novel application of this technology to code.”
dhosek•Mar 31, 2026
Always able to do it? Yes. Even before OpenType alternates, the extended ligature support in TeX 3.x would have also allowed for this sort of thing.
Why has no one tried it before? Because (a) nobody thought of it and (2) OpenType alternates, while they’ve been around for a while, have not always been supported in the sorts of programs that use monospace fonts (code editors and terminals)
micampe•Mar 31, 2026
There have been other attempts; Commit Mono uses a slightly different approach: https://commitmono.com/ (don’t know which came first)
layer8•Mar 31, 2026
It really only makes sense on high-DPI displays (or large font sizes), which didn’t used to be that wide-spread.
Conversely, nobody seems to be doing pixel-based hinting anymore, which is why all newer fonts tend to look terrible at small font sizes on lower-DPI displays.
keeganpoppen•Mar 31, 2026
i do think that the type designers did incredible work with monaspace… i used to be an Operator-exclusive kind of guy (rip hoefler x frere-jones), but i genuinely think they did enough to completely displace it from my font lexicon, which is no mean feat.
keeganpoppen•Mar 31, 2026
i do prefer neon and argon to the rest, though i see the place for all of them to exist
satvikpendem•Mar 31, 2026
I usually stick with Apple's SF Pro Mono but I'll have to try out this font.
Unfortunately until editors start supporting this (and I’m not sure what would motivate them to), these remain great ideas only.
sheiyei•Mar 31, 2026
Input's method seems to be fundamentally very different to this. Monaspace keeps the grid intact and only changes the characters visually (situationally overlaps wide letters to neighbouring narrow characters' spaces). Input just pretends to be monospace in its aesthetics, I don't really understand what's supposed to be special with that.
endunless•Mar 31, 2026
Fair points on the technical implementation.
I more meant the idea of using different fonts in the same buffer to represent different kinds of text.
actionfromafar•Mar 31, 2026
Which editors?
endunless•Mar 31, 2026
Given GitHub is owned by Microsoft, I think VS Code supporting mixing fonts in a buffer would be a good start!
asibahi•Mar 31, 2026
Input is a proportional font.
Monaspace is a monospace font that uses contextual alternatives: it changes how letters look depending on surrounding letters.
They are nothing alike in their approach to this problem.
(Also this is a marketing piece. Contextual alternatives is not a new tech.)
naikrovek•Mar 31, 2026
> Input is a proportional font.
it is also a monospaced font
pfortuny•Mar 31, 2026
Honest question: does emacs (GUI) not support this?
exceptione•Mar 31, 2026
Very useful to mix and match various fonts based on semantics. I have a problem with Radon's l though, to me it reads like chumiZy and xenoZith. I don't understand how this could have slipped through, I can't be the only one being constantly confused.
sheiyei•Mar 31, 2026
I feel like that font is a real bad apple. The other ones are decent and I like the "texture healing" (but not its name)
kyle-rb•Mar 31, 2026
Yeah, I think the italics compounds the problem in their comment example: // Notify aZZ Zisteners
ben_pfaff•Mar 31, 2026
I decided to try using proportional fonts for coding starting a year or two back. It worked out well and I stuck with it, because proportional text is easier for me to read on the whole, and because it allowed more characters to fit comfortably on each line on average. I did find after a while that occasionally the lack of alignment between characters on two subsequent lines was a problem, but then I configured my editor so that it showed comments and text strings in a monospace font and that fixed the problem for me.
CharlesW•Mar 31, 2026
This seems a great solution, and I'll definitely be trying it. I feel like monospace fonts are the Roman roads → horse ruts → rail gauge of our industry.
sombragris•Mar 31, 2026
When I saw the Monaspace family linked in a HN frontpage some time ago, I installed the whole family, and now my terminal font is Monaspace Neon. I also type my LaTeX code in Monaspace Argon. They won me over Iosevka.
ferd•Mar 31, 2026
I really like Monaspace Argon, but even the narrower option looks too wide on my terminal (kitty on macos)
8 Comments
Contextual alternates are normally used for certain scripts, like Arabic, where the shape of each glyph depends on the surrounding glyphs. And they are also used for cursive handwriting fonts where the stroke of the “pen” might have different connection points across letters. Texture healing is a novel application of this technology to code.”
Why has no one tried it before? Because (a) nobody thought of it and (2) OpenType alternates, while they’ve been around for a while, have not always been supported in the sorts of programs that use monospace fonts (code editors and terminals)
Conversely, nobody seems to be doing pixel-based hinting anymore, which is why all newer fonts tend to look terrible at small font sizes on lower-DPI displays.
It's what I landed on after completing the Coding Font game submitted to HN yesterday: https://news.ycombinator.com/item?id=47575403
https://input.djr.com/
A bit weird to not mention that.
Unfortunately until editors start supporting this (and I’m not sure what would motivate them to), these remain great ideas only.
I more meant the idea of using different fonts in the same buffer to represent different kinds of text.
Monaspace is a monospace font that uses contextual alternatives: it changes how letters look depending on surrounding letters.
They are nothing alike in their approach to this problem.
(Also this is a marketing piece. Contextual alternatives is not a new tech.)
it is also a monospaced font