vercel / geist-font

https://vercel.com/font
SIL Open Font License 1.1
2.13k stars 54 forks source link

Dotted zeros instead of slashed zeros. #81

Open dumol opened 5 months ago

dumol commented 5 months ago

Font Name (Geist Sans/Geist Mono):

Description of the Issue: Slashed zeros are too similar to Scandinavian letter Ø.

Steps to Reproduce:

  1. Compare 0 with Ø in Geist Mono.
  2. Activate slash zero in Geist Sans with ss09.
  3. Compare the slashed zero with Ø in Geist Sans.

Expected Behavior: For Geist Mono, use a dot inside the zero to have it easy distinguishable from both Ø and O. For Geist Sans, add a zero with a dot inside, and use that for the zero stylistic set.

Screenshots: 20240116_13h50m02s_grim

Environment (please complete the following information):

Additional Context: Dotted zero is a common solution to this problem, as implemented in JetBrains Mono, IBM Plex Mono, Source Code Pro, etc.

luciascarlet commented 2 months ago

This is just my opinion, but I don't like the look of dotted zeroes at all and tend to change them to slashed zeroes whenever it's allowed by a font. It's also not a good idea for low-DPI rendering as it often ends up being off-centre. Nonetheless, I think it would be a great addition as a stylistic set, just so that the option is there for those who want it.

However, I really like how Atkinson Hyperlegible went about solving this same problem of distinguishing Ø and 0, where the slashed 0 is simply flipped. This will render well on any screen, looks nicer (IMO), and is legible.

image
dumol commented 1 month ago

I agree with the above suggestion of using an inverted slashed zero.

On a tangent, I'm currently using a low-dpi device where I use a collection of fonts and FontConfig rules to improve legibility: https://github.com/dumol/PixelPerfect/. The ui-monospace font that I'm setting through those rules is Luculent, which actually has an inverted slashed zero. GitHub uses ui-monospace for monospaced texts here, that's how I noticed…

(For the record, my personal preference is for a dotted zero, but given the attention Geist is getting for rendering on low-dpi devices, I guess the inverted slashed zero would be a better default, as argued above by @luciascarlet.)

Thanks!