githubnext / monaspace

An innovative superfamily of fonts for code
https://monaspace.githubnext.com
SIL Open Font License 1.1
13.12k stars 219 forks source link

Spacing issues with number and large character combinations #212

Closed sebmenard closed 1 month ago

sebmenard commented 1 month ago

When using Monaspace version 1.100 (Neon family) with texture healing in Windows Terminal, I’ve noticed an inconsistent spacing effect while running a CLI tool that dynamically updates text. This issue is particularly evident with the 1M, 1%, 7M, and 7% combinations in fixed formats like 1.50MiB/s and 57%, which causes the text to visually jump.

To better illustrate this spacing issue, I used Visual Studio Code to place 1M through 9M on separate lines and added a red line to emphasize the irregularities.

mib

This spacing issue could also likely affect the presentation of tabular data in static files, such as columns of percentages. The difference might be subtle, but it can make the data look off and potentially distracting.

It may be beneficial to re-evaluate the texture healing approach for combinations of numbers and large characters to prevent such visual disruptions.

heathercran commented 1 month ago

The texture healing feature aims to make characters that are often compromised in monospace fonts easier to read. M and % are some of the most condensed characters in monospaced fonts, while 1 and 7 are stretched to fill the full width. So, texture healing intervenes in these cases to create a more optimal reading experience, by redistributing the width between those two characters. The total width of a texture healed pair is always equal to the original characters, so what you're seeing is not a "spacing issue" per se, but I understand that the visual effect can be distracting when the text is updating quickly.

It’s hard to anticipate all potential use cases when designing anything, of course. Texture healing on a pair like 1% or 7M would benefit someone in another context, so this seems to be an acceptable effect of the feature. If your program allows, you can optionally turn off texture healing altogether by removing calt from your feature settings.