githubnext / githubnext/monaspace
For variable fonts; cv13 only changes б into Serbian Cyrillic form; but г, д, и, п, and т don't get changed into Serbian Cyrillic forms.
- Dominant language
- Shell
- Stars
- 19.6k
- Forks
- 322
- PR merge metrics
- No merged PRs in 30d
Description
Disclaimer: I don't speak languages that use Cyrillic characters so my knowledge of the script is fairly limited.
I was reading about the difference of Cyrillic characters between those in Russia, Bulgaria (available within the opentype feature `cv12` in Monaspace fonts) and Serbia (available within the opentype feature `cv13` in Monaspace fonts).
See also: https://en.wikipedia.org/wiki/Cyrillic_alphabets#/media/File:Cyrillic_alternates.svg
Afterwards I looked into implementation of this on other fonts, it seems that [Cascadia Code/Cascadia Mono](https://github.com/microsoft/cascadia-code/) implement both Bulgarian and Serbian Cyrillic glyphs.
* Bulgarian Cyrillic is available within the opentype feature `locl`. (which is harder to utilize than `cvxx` / `ssxx` so I think that Monaspace's implementation is better than that of Cascadia in this regard)
* Serbian Cyrillic is available for the character б, г, п and т тwithin the opentype feature `ss03`, but only for the italic font files. (No upright Serbian Cyrillic glyphs)
Back to Monaspace fonts, after I inspect some Monaspace font files with [Fontdrop](https://fontdrop.info/#/?darkmode=true), it appears that `cv13` is supposed to be able to alter up to six characters: б, г, д, и, п, and т. Where only the first character (б) would be changed into in the Serbian Cyrillic glyph in the upright fonts, and all of these 6 characters would be changed into in the Serbian Cyrillic glyph in the italic fonts. Although all fonts have no problem changing the first character (б) into the Serbian Cyrillic glyph. I couldn't get the variable font files to change the remaining 5 characters into the Serbian Cyrillic glyph at all. Which is strange since all italic static font files I've tested can change all 6 characters into the Serbian Cyrillic glyph with no problem.
Gallery:
Image 1, viewing `Monaspace Argon Var.ttf` with Fontdrop with `slant`=0 (upright) and `cv13` disabled
Image 2, viewing `Monaspace Argon Var.ttf` with Fontdrop with `slant`=-11 (italic) and `cv13` disabled
Image 3, viewing `Monaspace Argon Var.ttf` with Fontdrop with `slant`=0 (upright) and `cv13` enabled
Image 4, viewing `Monaspace Argon Var.ttf` with Fontdrop with `slant`=-11 (italic) and `cv13` enabled
Image 5, viewing `MonaspaceArgon-ExtraLight.otf` with Fontdrop with `cv13` disabled
Image 6, viewing `MonaspaceArgon-ExtraLightItalic.otf` with Fontdrop with `cv13` disabled
Image 7, viewing `MonaspaceArgon-ExtraLight.otf` with Fontdrop with `cv13` enabled
Image 8, viewing `MonaspaceArgon-ExtraLightItalic.otf` with Fontdrop with `cv13` enabled
As it can be seen here, behavior of variable fonts in image 4 is incorrect and, to the best of my understanding, should be like in image 8.
Closing notes:
1. I haven't checked every font files as there are 1485 Monaspace font files in total. (As of current version: 1.4)
2. I haven't seriously checked on the Bulgarian Cyrillic glyphs. Though everything about them seems normal for the time being.
3. The text shown in the above screenshots is:
> ШИРОКАЯ ЭЛЕКТРИФИКАЦИЯ ЮЖНЫХ ГУБЕРНИЙ ДАСТ МОЩНЫЙ ТОЛЧОК ПОДЪЁМУ СЕЛЬСКОГО ХОЗЯЙСТВА.
> Б Г Д И П Т
> широкая электрификация южных губерний даст мощный толчок подъёму сельского хозяйства.
> б г д и п т
Contributor guide
No contributing guide indexed for this repository
Research direction
Reproduce the issue with Monaspace Argon Var.ttf in Fontdrop using slant 0 and -11, with cv13 enabled, and compare it with MonaspaceArgon-ExtraLightItalic.otf. Inspect how the variable font handles the six Serbian Cyrillic characters б, г, д, и, п, and т; done means cv13 produces the expected glyph changes in the variable font, matching the italic static font behavior.
Written by the indexing model from the issue text.
Assessment
- Domain
- design
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 44/100