arrowtype / recursive

Recursive Mono & Sans is a variable font family for code & UI
https://recursive.design
SIL Open Font License 1.1
3.15k stars 51 forks source link

some ligatures for minus glyph does not vertical aligned #514

Open zhimoe opened 1 year ago

zhimoe commented 1 year ago

Problem description some ligature for minus glyph does not vertical align with minus, including: -> <!-- <- --> >-- -<< . ligas for = + are all aligned.

Expected behavior these ligature need move 5 shift down for align with the minus symbol.

Screenshots image

Environment (please complete the following information):

arrowtype commented 6 months ago

Hey @zhimoe, thanks for taking the time to file this issue! Sorry it’s taken me so long to respond. 😬 This project is mostly done on a volunteer basis at this stage, so I don’t usually get time to dedicate to it.

If you are still open to chatting about it... Can I ask which programming language / context you were in to run into this issue? Probably Haskell, I assume?

I can definitely see how this could feel like a bug, but it’s actually just a result of the overall arrow alignment. The normal arrows vertically align with the uppercase and numeral heights, which is useful in many typographic cases such as bulleted lists that use arrows for markers or UI labels that include arrows.

So, this alignment is as expected / intended:

image

But, it’s possible it should change in the code ligatures, as they function as operators, and are probably adjacent to lowercase much of the time. 🤔 I’ll keep it in mind.

zhimoe commented 5 months ago

For a programming font when I type - first and then type >, the two glyphs are replaced by the ligature glyph ->. I can observe a positional shift on - since the -> glyph is higher than the - glyph (also, the - on the left is shorter than ->). It`s a bit annoying.

Only -> <!-- <- --> >-- -<< are higher; all other ligatures like =, + are aligned.

I really like Fira Code's ligatures but recursive casual looks much fun.

equals-liga-is-ok minus-arrow-liga minus-arrow