Reduce serifs of turned m and Cyrillic Sha/Scha under monospace. (#2331)

* Reduce serifed variants of turnm under monospace.

* Fix {super|sub|over}script.
This commit is contained in:
John McWilliams 2024-05-14 20:31:21 -04:00 committed by GitHub
parent d7c0f6ab04
commit abc27124ca
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 138 additions and 61 deletions

View file

@ -1,3 +1,4 @@
* Reduce fully-serifed variants of turned m (`U+019C`, `U+026F`, `U+0270`) and Cyrillic Italic Lower {Sha|Scha} (`U+0448`, `U+0449`) under monospace.
* Add characters:
- LATIN SMALL LETTER DEZH DIGRAPH WITH PALATAL HOOK (`U+1DF12`).
- LATIN SMALL LETTER TESH DIGRAPH WITH PALATAL HOOK (`U+1DF17`).

View file

@ -173,7 +173,7 @@ glyph-block Autobuild-Transformed : begin
list 0x1D57 't'
list 0x1D58 'u'
list 0x1D59 'uSideways'
list 0x1D5A 'turnm'
list 0x1D5A 'turnm/reduced'
list 0x1D5B 'v'
list 0x1D5C 'latinAyin'
list 0x1D5D 'grek/beta'
@ -200,7 +200,7 @@ glyph-block Autobuild-Transformed : begin
list 0x1DAA 'lPalatalHook'
list 0x1DAB 'smcpL'
list 0x1DAC 'meng'
list 0x1DAD 'turnmLeg'
list 0x1DAD 'turnmLeg/reduced'
list 0x1DAE 'nLTail'
list 0x1DAF 'nHookBottom'
list 0x1DB0 'smcpN'
@ -312,13 +312,13 @@ glyph-block Autobuild-Transformed : begin
list 0x1E03D 'cyrl/pe'
list 0x1E03E 'cyrl/er'
list 0x1E03F 'cyrl/es'
list 0x1E040 'cyrl/te'
list 0x1E040 'cyrl/te/reduced'
list 0x1E041 'cyrl/u'
list 0x1E042 'cyrl/ef'
list 0x1E043 'cyrl/kha'
list 0x1E044 'cyrl/tse'
list 0x1E045 'cyrl/che'
list 0x1E046 'cyrl/sha'
list 0x1E046 'cyrl/sha/reduced'
list 0x1E047 'cyrl/yery'
list 0x1E048 'cyrl/e'
list 0x1E049 'cyrl/yu'
@ -435,7 +435,7 @@ glyph-block Autobuild-Transformed : begin
list 0x1E061 'cyrl/kha'
list 0x1E062 'cyrl/tse'
list 0x1E063 'cyrl/che'
list 0x1E064 'cyrl/sha'
list 0x1E064 'cyrl/sha/reduced'
list 0x1E065 'cyrl/yer'
list 0x1E066 'cyrl/yery'
list 0x1E067 'cyrl/ge'
@ -528,12 +528,12 @@ glyph-block Autobuild-Transformed : begin
list 0x2DEA 'cyrl/o'
list 0x2DEB 'cyrl/pe'
list 0x2DED 'cyrl/es'
list 0x2DEE 'cyrl/te'
list 0x2DEE 'cyrl/te/reduced'
list 0x2DEF 'cyrl/kha'
list 0x2DF0 'cyrl/tse'
list 0x2DF1 'cyrl/che'
list 0x2DF2 'cyrl/sha'
list 0x2DF3 'cyrl/shcha'
list 0x2DF2 'cyrl/sha/reduced'
list 0x2DF3 'cyrl/shcha/reduced'
list 0x2DF4 'cyrl/fita'
list 0x2DF5 'cyrl/este'
list 0x2DF6 'cyrl/a'

View file

@ -14,9 +14,12 @@ glyph-block Letter-Cyrillic-Orthography : begin
orthographic-italic 'cyrl/i' 0x438
orthographic-italic 'cyrl/pe' 0x43F
orthographic-italic 'cyrl/te' 0x442
orthographic-italic 'cyrl/te/reduced' null
orthographic-italic 'cyrl/tse' 0x446
orthographic-italic 'cyrl/sha' 0x448
orthographic-italic 'cyrl/sha/reduced' null
orthographic-italic 'cyrl/shcha' 0x449
orthographic-italic 'cyrl/shcha/reduced' null
orthographic-italic 'cyrl/dzhe' 0x45F
orthographic-italic 'cyrl/yat' 0x463
orthographic-italic 'cyrl/iShortTail' 0x48B
@ -43,36 +46,40 @@ glyph-block Letter-Cyrillic-Orthography : begin
CreateAccentedComposition 'cyrl/igrave' 0x45D 'cyrl/i' 'graveAbove'
# Link localization forms
link-gr LocalizedForm.SRB.Upright 'cyrl/be' 'cyrl/be.SRB'
link-gr LocalizedForm.SRB.Upright 'cyrl/be' 'cyrl/be.SRB'
link-gr LocalizedForm.SRB.Italic 'cyrl/be' 'cyrl/be.SRB'
link-gr LocalizedForm.SRB.Italic 'cyrl/ghe' 'cyrl/ghe.SRB'
link-gr LocalizedForm.SRB.Italic 'cyrl/de' 'cyrl/de.SRB'
link-gr LocalizedForm.SRB.Italic 'cyrl/gje' 'cyrl/gje.SRB'
link-gr LocalizedForm.SRB.Italic 'cyrl/pe' 'cyrl/pe.SRB'
link-gr LocalizedForm.SRB.Italic 'cyrl/te' 'cyrl/te.SRB'
link-gr LocalizedForm.SRB.Italic 'cyrl/be' 'cyrl/be.SRB'
link-gr LocalizedForm.SRB.Italic 'cyrl/ghe' 'cyrl/ghe.SRB'
link-gr LocalizedForm.SRB.Italic 'cyrl/de' 'cyrl/de.SRB'
link-gr LocalizedForm.SRB.Italic 'cyrl/gje' 'cyrl/gje.SRB'
link-gr LocalizedForm.SRB.Italic 'cyrl/pe' 'cyrl/pe.SRB'
link-gr LocalizedForm.SRB.Italic 'cyrl/te' 'cyrl/te.SRB'
link-gr LocalizedForm.SRB.Italic 'cyrl/te/reduced' 'cyrl/te/reduced.SRB'
link-gr LocalizedForm.BGR 'cyrl/ve' 'cyrl/ve.BGR'
link-gr LocalizedForm.BGR 'cyrl/ghe' 'cyrl/ghe.italic'
link-gr LocalizedForm.BGR 'cyrl/De' 'cyrl/De.BGR'
link-gr LocalizedForm.BGR 'cyrl/de' 'cyrl/de.BGR'
link-gr LocalizedForm.BGR 'cyrl/zhe' 'cyrl/zhe.BGR'
link-gr LocalizedForm.BGR 'cyrl/ze' 'cyrl/ze.BGR'
link-gr LocalizedForm.BGR 'cyrl/i' 'cyrl/i.BGR'
link-gr LocalizedForm.BGR 'cyrl/ibreve' 'cyrl/ibreve.BGR'
link-gr LocalizedForm.BGR 'cyrl/igrave' 'cyrl/igrave.BGR'
link-gr LocalizedForm.BGR 'cyrl/ka' 'cyrl/ka.BGR'
link-gr LocalizedForm.BGR 'cyrl/El' 'cyrl/El.BGR'
link-gr LocalizedForm.BGR 'cyrl/el' 'cyrl/el.BGR'
link-gr LocalizedForm.BGR 'cyrl/en' 'cyrl/en.BGR'
link-gr LocalizedForm.BGR 'cyrl/pe' 'cyrl/pe.BGR'
link-gr LocalizedForm.BGR 'cyrl/te' 'cyrl/te.BGR'
link-gr LocalizedForm.BGR 'cyrl/Ef' 'cyrl/Ef.BGR'
link-gr LocalizedForm.BGR 'cyrl/ef' 'cyrl/ef.BGR'
link-gr LocalizedForm.BGR 'cyrl/che' 'cyrl/che.BGR'
link-gr LocalizedForm.BGR 'cyrl/sha' 'cyrl/sha.BGR'
link-gr LocalizedForm.BGR 'cyrl/shcha' 'cyrl/shcha.BGR'
link-gr LocalizedForm.BGR 'cyrl/yu' 'cyrl/yu.BGR'
link-gr LocalizedForm.BGR 'cyrl/tse' 'cyrl/tse.BGR'
link-gr LocalizedForm.BGR 'cyrl/yer' 'cyrl/yer.BGR'
link-gr LocalizedForm.BGR 'cyrl/yeri' 'cyrl/yeri.BGR'
link-gr LocalizedForm.BGR 'cyrl/ve' 'cyrl/ve.BGR'
link-gr LocalizedForm.BGR 'cyrl/ghe' 'cyrl/ghe.italic'
link-gr LocalizedForm.BGR 'cyrl/De' 'cyrl/De.BGR'
link-gr LocalizedForm.BGR 'cyrl/de' 'cyrl/de.BGR'
link-gr LocalizedForm.BGR 'cyrl/zhe' 'cyrl/zhe.BGR'
link-gr LocalizedForm.BGR 'cyrl/ze' 'cyrl/ze.BGR'
link-gr LocalizedForm.BGR 'cyrl/i' 'cyrl/i.BGR'
link-gr LocalizedForm.BGR 'cyrl/ibreve' 'cyrl/ibreve.BGR'
link-gr LocalizedForm.BGR 'cyrl/igrave' 'cyrl/igrave.BGR'
link-gr LocalizedForm.BGR 'cyrl/ka' 'cyrl/ka.BGR'
link-gr LocalizedForm.BGR 'cyrl/El' 'cyrl/El.BGR'
link-gr LocalizedForm.BGR 'cyrl/el' 'cyrl/el.BGR'
link-gr LocalizedForm.BGR 'cyrl/en' 'cyrl/en.BGR'
link-gr LocalizedForm.BGR 'cyrl/pe' 'cyrl/pe.BGR'
link-gr LocalizedForm.BGR 'cyrl/te' 'cyrl/te.BGR'
link-gr LocalizedForm.BGR 'cyrl/te/reduced' 'cyrl/te/reduced.BGR'
link-gr LocalizedForm.BGR 'cyrl/Ef' 'cyrl/Ef.BGR'
link-gr LocalizedForm.BGR 'cyrl/ef' 'cyrl/ef.BGR'
link-gr LocalizedForm.BGR 'cyrl/che' 'cyrl/che.BGR'
link-gr LocalizedForm.BGR 'cyrl/sha' 'cyrl/sha.BGR'
link-gr LocalizedForm.BGR 'cyrl/sha/reduced' 'cyrl/sha/reduced.BGR'
link-gr LocalizedForm.BGR 'cyrl/shcha' 'cyrl/shcha.BGR'
link-gr LocalizedForm.BGR 'cyrl/shcha/reduced' 'cyrl/shcha/reduced.BGR'
link-gr LocalizedForm.BGR 'cyrl/yu' 'cyrl/yu.BGR'
link-gr LocalizedForm.BGR 'cyrl/tse' 'cyrl/tse.BGR'
link-gr LocalizedForm.BGR 'cyrl/yer' 'cyrl/yer.BGR'
link-gr LocalizedForm.BGR 'cyrl/yeri' 'cyrl/yeri.BGR'

View file

@ -42,6 +42,8 @@ glyph-block Letter-Cyrillic-Sha : begin
include : df.markSet.e
include : CyrShaShape df XH 0 (doSerif -- SLAB)
alias 'cyrl/sha/reduced.upright' null 'cyrl/sha.upright'
create-glyph 'cyrl/teThreeLeg.upright' : glyph-proc
local df : include : DivFrame para.diversityM 3
include : df.markSet.e
@ -64,3 +66,5 @@ glyph-block Letter-Cyrillic-Sha : begin
local df : include : DivFrame para.diversityM 3
include : df.markSet.e
include : CyrShchaShape df XH 0 (doSerif -- SLAB)
alias 'cyrl/shcha/reduced.upright' null 'cyrl/shcha.upright'

View file

@ -11,6 +11,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin
glyph-block-import Mark-Adjustment : LeaningAnchor
glyph-block-import Letter-Shared : CreateTurnedLetter
glyph-block-import Letter-Shared-Shapes : nShoulder OBarLeft
glyph-block-import Letter-Latin-Lower-M : MEnoughSpaceForFullSerifs dfM
glyph-block-export SubDfAndShift
define [SubDfAndShift pShift df _o] : begin
@ -401,7 +402,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin
select-variant "ae/e" (follow -- 'e')
select-variant "aeInvE/right" (follow -- 'e')
select-variant "ue/u"
select-variant "au/u"
select-variant "au/u" (follow -- [if [MEnoughSpaceForFullSerifs : dfM] 'au/u' 'au/u/reduced'])
select-variant "oeOpenO/left" (follow -- 'c')
select-variant "cyrl/yae/left"
select-variant "cyrl/rha/left" (follow -- 'cyrl/er')

View file

@ -9,6 +9,7 @@ glyph-block Letter-Latin-Upper-AA-AO : begin
glyph-block-import CommonShapes
glyph-block-import Common-Derivatives
glyph-block-import Letter-Latin-Lower-AE-OE : SubDfAndShift
glyph-block-import Letter-Latin-Lower-M : MEnoughSpaceForFullSerifs dfM
do "A glyphs"
glyph-block-import Letter-Latin-Upper-A : AConfig AMaskShape ALetterShape
@ -116,7 +117,7 @@ glyph-block Letter-Latin-Upper-AA-AO : begin
include : with-transform [ApparentTranslate shift 0]
union [Base subDf CAP df.mvs] [Slabs subDf CAP]
select-variant "AU/Right" (follow -- 'U/noTopLeftSerif')
select-variant "AU/Right" (follow -- [if [MEnoughSpaceForFullSerifs : dfM] 'AU/Right' 'AU/Right/reduced'])
do "AU"
select-variant 'AA/AU/Left' (follow -- 'A')

View file

@ -61,7 +61,6 @@ glyph-block Letter-Latin-Lower-M : begin
corner left [Math.min (top - sm - 0.1) bottom]
close
define [SmallMTopLeftSerif df top lbot fFull] : begin
local sf : SerifFrame.fromDf df top 0
return sf.lt.outer
@ -90,8 +89,9 @@ glyph-block Letter-Latin-Lower-M : begin
local sf : SerifFrame.fromDf df top rbot
return sf.rb.outer
define [MEnoughSpaceForFullSerifs df mid] : begin
glyph-block-export MEnoughSpaceForFullSerifs
define [MEnoughSpaceForFullSerifs df _mid] : begin
local mid : fallback _mid df.middle
local ink : HSwToV df.mvs
local gap : [Math.min (mid - df.leftSB) (df.rightSB - mid)] - 1.5 * ink
return : 0.5 * ink + 0.375 * gap > para.refJut
@ -127,7 +127,7 @@ glyph-block Letter-Latin-Lower-M : begin
local fFull : MEnoughSpaceForFullSerifs df : fallback _mid df.middle
include : SmallMBottomMotionRightSerif df top rbot fFull
glyph-block-export dfM
define [dfM] : DivFrame para.diversityM 3
define [SmallMArches df top lbot mbot rbot _mid] : glyph-proc
local mid : fallback _mid df.middle
@ -316,10 +316,12 @@ glyph-block Letter-Latin-Lower-M : begin
link-reduced-variant 'm/sansSerif' 'm' MathSansSerif
select-variant 'cyrl/te.italic' (shapeFrom -- 'm')
alias 'cyrl/te/reduced.italic' null 'cyrl/te.italic'
select-variant 'cyrl/te.italic/descBase' (shapeFrom -- 'm')
select-variant 'cyrl/tjeKomi.italic'
select-variant 'cyrl/teMidHook.italic' (follow -- 'cyrl/te.italic')
alias 'cyrl/te.BGR' null 'cyrl/te.italic'
alias 'cyrl/te/reduced.BGR' null 'cyrl/te.italic'
alias 'cyrl/teThreeLeg.italic' null 'cyrl/te.italic'
derive-composites 'cyrl/teDescender.italic' null 'cyrl/te.italic/descBase' : do
local df : DivFrame para.diversityM 3
@ -402,18 +404,28 @@ glyph-block Letter-Latin-Lower-M : begin
eject-contour 'serifLT'
include : CyrDescender.rSideJut df.rightSB 0 (refSw -- df.mvs)
select-variant 'turnm' 0x26F
select-variant 'capitalTurnm' 0x19C (follow -- 'turnm')
select-variant 'turnmLeg' 0x270
select-variant 'turnmSideways' 0x1D1F (follow -- 'turnm')
select-variant 'turnm' 0x26F (follow -- [if [MEnoughSpaceForFullSerifs : dfM] 'turnm' 'turnm/reduced'])
select-variant 'turnm/reduced' (shapeFrom -- 'turnm')
select-variant 'cyrl/sha.italic' (shapeFrom -- 'turnm')
select-variant 'capitalTurnm' 0x19C (follow -- [if [MEnoughSpaceForFullSerifs : dfM] 'turnm' 'turnm/reduced'])
select-variant 'turnmLeg' 0x270 (follow -- [if [MEnoughSpaceForFullSerifs : dfM] 'turnmLeg' 'turnmLeg/reduced'])
select-variant 'turnmLeg/reduced' (shapeFrom -- 'turnmLeg')
select-variant 'turnmSideways' 0x1D1F (follow -- [if [MEnoughSpaceForFullSerifs : dfM] 'turnm' 'turnm/reduced'])
select-variant 'cyrl/sha.italic' (shapeFrom -- 'turnm') (follow -- [if [MEnoughSpaceForFullSerifs : dfM] 'cyrl/sha.italic' 'cyrl/sha/reduced.italic'])
alias 'cyrl/sha.BGR' null 'cyrl/sha.italic'
select-variant 'cyrl/sha/reduced.italic' (shapeFrom -- 'turnm')
alias 'cyrl/sha/reduced.BGR' null 'cyrl/sha/reduced.italic'
select-variant 'cyrl/shcha.italic'
select-variant 'cyrl/shcha.italic' (follow -- [if [MEnoughSpaceForFullSerifs : dfM] 'cyrl/shcha.italic' 'cyrl/shcha/reduced.italic'])
alias 'cyrl/shcha.BGR' null 'cyrl/shcha.italic'
select-variant 'cyrl/shcha/reduced.italic' (shapeFrom -- 'cyrl/shcha.italic')
alias 'cyrl/shcha/reduced.BGR' null 'cyrl/shcha/reduced.italic'
derive-composites 'cyrl/te.SRB' null 'cyrl/sha.italic' 'macronAbove'
derive-composites 'cyrl/te/reduced.SRB' null 'cyrl/sha/reduced.italic' 'macronAbove'
glyph-block-import Letter-Blackboard : BBS BBD BBBarLeft
create-glyph 'mathbb/m' 0x1D55E : glyph-proc

View file

@ -175,6 +175,7 @@ glyph-block Letter-Latin-Upper-T : begin
alias 'cyrl/Te' 0x422 'T'
alias 'cyrl/te.upright' null 'smcpT'
alias 'cyrl/te/reduced.upright' null 'smcpT'
select-variant 'cyrl/teDescender.upright' (follow -- 'T')
select-variant 'TRTailBR' 0x1AE (follow -- 'T/rtailBase')

View file

@ -1082,76 +1082,86 @@ next = "serifs"
rank = 1
descriptionAffix = "toothed shape"
selectorAffix.U = "toothed"
selectorAffix."U/noTopLeftSerif" = "toothed"
selectorAffix."U/sansSerif" = "toothed"
selectorAffix."AU/Right" = "toothed"
selectorAffix."AU/Right/reduced" = "toothed"
[prime.capital-u.variants-buildup.stages.body.tailed]
rank = 2
descriptionAffix = "tailed shape"
selectorAffix.U = "tailed"
selectorAffix."U/noTopLeftSerif" = "tailed"
selectorAffix."U/sansSerif" = "tailed"
selectorAffix."AU/Right" = "tailed"
selectorAffix."AU/Right/reduced" = "tailed"
[prime.capital-u.variants-buildup.stages.body.toothless-corner]
rank = 3
descriptionAffix = "toothless (corner bottom-right) shape"
selectorAffix.U = "toothlessCorner"
selectorAffix."U/noTopLeftSerif" = "toothlessCorner"
selectorAffix."U/sansSerif" = "toothlessCorner"
selectorAffix."AU/Right" = "toothlessCorner"
selectorAffix."AU/Right/reduced" = "toothlessCorner"
[prime.capital-u.variants-buildup.stages.body.toothless-rounded]
rank = 4
descriptionAffix = "toothless (rounded) shape"
selectorAffix.U = "toothlessRounded"
selectorAffix."U/noTopLeftSerif" = "toothlessRounded"
selectorAffix."U/sansSerif" = "toothlessRounded"
selectorAffix."AU/Right" = "toothlessRounded"
selectorAffix."AU/Right/reduced" = "toothlessRounded"
[prime.capital-u.variants-buildup.stages.serifs.serifless]
rank = 1
descriptionAffix = "serifs"
descriptionJoiner = "without"
selectorAffix.U = "serifless"
selectorAffix."U/noTopLeftSerif" = "serifless"
selectorAffix."U/sansSerif" = "serifless"
selectorAffix."AU/Right" = "serifless"
selectorAffix."AU/Right/reduced" = "serifless"
[prime.capital-u.variants-buildup.stages.serifs.bottom-right-serifed]
rank = 2
disableIf = [{ body = "NOT toothed" }]
descriptionAffix = "serif at bottom-right"
selectorAffix.U = "bottomRightSerifed"
selectorAffix."U/noTopLeftSerif" = "bottomRightSerifed"
selectorAffix."U/sansSerif" = "serifless"
selectorAffix."AU/Right" = "bottomRightSerifed"
selectorAffix."AU/Right/reduced" = "bottomRightSerifed"
[prime.capital-u.variants-buildup.stages.serifs.motion-serifed]
rank = 3
disableIf = [{ body = "toothless-corner" }, { body = "toothless-rounded" }]
descriptionAffix = "motion serifs at top-left and bottom-right"
selectorAffix.U = "unilateralMotionSerifed"
selectorAffix."U/noTopLeftSerif" = "serifless"
selectorAffix."U/sansSerif" = "serifless"
selectorAffix."AU/Right" = { if = [{ body = "toothed" }], then = "bottomRightSerifed", else = "serifless" }
selectorAffix."AU/Right/reduced" = { if = [{ body = "toothed" }], then = "bottomRightSerifed", else = "serifless" }
[prime.capital-u.variants-buildup.stages.serifs.unilateral-motion-serifed]
rank = 4
disableIf = [{ body = "toothed" }, { body = "tailed" }]
descriptionAffix = "motion serifs at left side"
selectorAffix.U = "unilateralMotionSerifed"
selectorAffix."U/noTopLeftSerif" = "serifless"
selectorAffix."U/sansSerif" = "serifless"
selectorAffix."AU/Right" = "serifless"
selectorAffix."AU/Right/reduced" = "serifless"
[prime.capital-u.variants-buildup.stages.serifs.bilateral-motion-serifed]
rank = 5
disableIf = [{ body = "toothed" }, { body = "tailed" }]
descriptionAffix = "motion serifs at both sides"
selectorAffix.U = "bilateralMotionSerifed"
selectorAffix."U/noTopLeftSerif" = "bilateralMotionSerifed"
selectorAffix."U/sansSerif" = "serifless"
selectorAffix."AU/Right" = "bilateralMotionSerifed"
selectorAffix."AU/Right/reduced" = "bilateralMotionSerifed"
[prime.capital-u.variants-buildup.stages.serifs.serifed]
rank = 6
descriptionAffix = "serifs"
selectorAffix.U = "serifed"
selectorAffix."U/noTopLeftSerif" = "serifed"
selectorAffix."U/sansSerif" = "serifless"
selectorAffix."AU/Right" = "serifed"
selectorAffix."AU/Right/reduced" = { if = [{ body = "toothed" }], then = "bottomRightSerifed", else = { if = [{ body = "tailed" }], then = "serifless", else = "bilateralMotionSerifed" } }
@ -3735,16 +3745,21 @@ selectorAffix.turnh = "toothed"
selectorAffix.turnhHookLeft = "toothed"
selectorAffix.turnhHookLeftRTail = "toothed"
selectorAffix.turnm = "toothed"
selectorAffix."turnm/reduced" = "toothed"
selectorAffix.turnmLeg = "toothed"
selectorAffix."turnmLeg/reduced" = "toothed"
selectorAffix."cyrl/i.italic" = "toothed"
selectorAffix."cyrl/i.italic/descBase" = "toothed"
selectorAffix."cyrl/sha.italic" = "toothed"
selectorAffix."cyrl/sha/reduced.italic" = "toothed"
selectorAffix."cyrl/shcha.italic" = "toothed"
selectorAffix."cyrl/shcha/reduced.italic" = "toothed"
selectorAffix."cyrl/dzhe.italic" = "toothed"
selectorAffix."cyrl/tse.italic" = "toothed"
selectorAffix."cyrl/tseRev.italic" = "toothed"
selectorAffix."ue/u" = "toothed"
selectorAffix."au/u" = "toothed"
selectorAffix."au/u/reduced" = "toothed"
[prime.u.variants-buildup.stages.body.tailed]
rank = 2
@ -3757,16 +3772,21 @@ selectorAffix.turnh = "toothed"
selectorAffix.turnhHookLeft = "toothed"
selectorAffix.turnhHookLeftRTail = "toothed"
selectorAffix.turnm = "tailed"
selectorAffix."turnm/reduced" = "tailed"
selectorAffix.turnmLeg = "toothed"
selectorAffix."turnmLeg/reduced" = "toothed"
selectorAffix."cyrl/i.italic" = "tailed"
selectorAffix."cyrl/i.italic/descBase" = "toothed"
selectorAffix."cyrl/sha.italic" = "tailed"
selectorAffix."cyrl/sha/reduced.italic" = "tailed"
selectorAffix."cyrl/shcha.italic" = "toothed"
selectorAffix."cyrl/shcha/reduced.italic" = "toothed"
selectorAffix."cyrl/dzhe.italic" = "tailed"
selectorAffix."cyrl/tse.italic" = "toothed"
selectorAffix."cyrl/tseRev.italic" = "tailed"
selectorAffix."ue/u" = "toothed"
selectorAffix."au/u" = "tailed"
selectorAffix."au/u/reduced" = "tailed"
[prime.u.variants-buildup.stages.body.toothless-corner]
rank = 3
@ -3779,16 +3799,21 @@ selectorAffix.turnh = "toothlessCorner"
selectorAffix.turnhHookLeft = "toothlessCorner"
selectorAffix.turnhHookLeftRTail = "toothlessCorner"
selectorAffix.turnm = "toothlessCorner"
selectorAffix."turnm/reduced" = "toothlessCorner"
selectorAffix.turnmLeg = "toothlessCorner"
selectorAffix."turnmLeg/reduced" = "toothlessCorner"
selectorAffix."cyrl/i.italic" = "toothed"
selectorAffix."cyrl/i.italic/descBase" = "toothed"
selectorAffix."cyrl/sha.italic" = "toothed"
selectorAffix."cyrl/sha/reduced.italic" = "toothed"
selectorAffix."cyrl/shcha.italic" = "toothed"
selectorAffix."cyrl/shcha/reduced.italic" = "toothed"
selectorAffix."cyrl/dzhe.italic" = "toothed"
selectorAffix."cyrl/tse.italic" = "toothed"
selectorAffix."cyrl/tseRev.italic" = "toothed"
selectorAffix."ue/u" = "toothed"
selectorAffix."au/u" = "toothlessCorner"
selectorAffix."au/u/reduced" = "toothlessCorner"
[prime.u.variants-buildup.stages.body.toothless-rounded]
rank = 4
@ -3801,16 +3826,21 @@ selectorAffix.turnh = "toothed"
selectorAffix.turnhHookLeft = "toothed"
selectorAffix.turnhHookLeftRTail = "toothed"
selectorAffix.turnm = "toothlessRounded"
selectorAffix."turnm/reduced" = "toothlessRounded"
selectorAffix.turnmLeg = "toothed"
selectorAffix."turnmLeg/reduced" = "toothed"
selectorAffix."cyrl/i.italic" = "toothed"
selectorAffix."cyrl/i.italic/descBase" = "toothed"
selectorAffix."cyrl/sha.italic" = "toothed"
selectorAffix."cyrl/sha/reduced.italic" = "toothed"
selectorAffix."cyrl/shcha.italic" = "toothed"
selectorAffix."cyrl/shcha/reduced.italic" = "toothed"
selectorAffix."cyrl/dzhe.italic" = "toothed"
selectorAffix."cyrl/tse.italic" = "toothed"
selectorAffix."cyrl/tseRev.italic" = "toothed"
selectorAffix."ue/u" = "toothed"
selectorAffix."au/u" = "toothlessRounded"
selectorAffix."au/u/reduced" = "toothlessRounded"
[prime.u.variants-buildup.stages.serifs.serifless]
rank = 1
@ -3824,16 +3854,21 @@ selectorAffix.turnh = "serifless"
selectorAffix.turnhHookLeft = "serifless"
selectorAffix.turnhHookLeftRTail = "serifless"
selectorAffix.turnm = "serifless"
selectorAffix."turnm/reduced" = "serifless"
selectorAffix.turnmLeg = "serifless"
selectorAffix."turnmLeg/reduced" = "serifless"
selectorAffix."cyrl/i.italic" = "serifless"
selectorAffix."cyrl/i.italic/descBase" = "serifless"
selectorAffix."cyrl/sha.italic" = "serifless"
selectorAffix."cyrl/sha/reduced.italic" = "serifless"
selectorAffix."cyrl/shcha.italic" = "serifless"
selectorAffix."cyrl/shcha/reduced.italic" = "serifless"
selectorAffix."cyrl/dzhe.italic" = "serifless"
selectorAffix."cyrl/tse.italic" = "serifless"
selectorAffix."cyrl/tseRev.italic" = "serifless"
selectorAffix."ue/u" = "serifless"
selectorAffix."au/u" = "serifless"
selectorAffix."au/u/reduced" = "serifless"
[prime.u.variants-buildup.stages.serifs.bottom-right-serifed]
rank = 2
@ -3847,16 +3882,21 @@ selectorAffix.turnh = "serifless"
selectorAffix.turnhHookLeft = "serifless"
selectorAffix.turnhHookLeftRTail = "serifless"
selectorAffix.turnm = "bottomRightSerifed"
selectorAffix."turnm/reduced" = "bottomRightSerifed"
selectorAffix.turnmLeg = "serifless"
selectorAffix."turnmLeg/reduced" = "serifless"
selectorAffix."cyrl/i.italic" = "bottomRightSerifed"
selectorAffix."cyrl/i.italic/descBase" = "serifless"
selectorAffix."cyrl/sha.italic" = "bottomRightSerifed"
selectorAffix."cyrl/sha/reduced.italic" = "bottomRightSerifed"
selectorAffix."cyrl/shcha.italic" = "serifless"
selectorAffix."cyrl/shcha/reduced.italic" = "serifless"
selectorAffix."cyrl/dzhe.italic" = "bottomRightSerifed"
selectorAffix."cyrl/tse.italic" = "serifless"
selectorAffix."cyrl/tseRev.italic" = "bottomRightSerifed"
selectorAffix."ue/u" = "serifless"
selectorAffix."au/u" = "bottomRightSerifed"
selectorAffix."au/u/reduced" = "bottomRightSerifed"
[prime.u.variants-buildup.stages.serifs.motion-serifed]
rank = 3
@ -3869,16 +3909,21 @@ selectorAffix.turnh = "motionSerifed"
selectorAffix.turnhHookLeft = "bottomRightSerifed"
selectorAffix.turnhHookLeftRTail = "serifless"
selectorAffix.turnm = "motionSerifed"
selectorAffix."turnm/reduced" = "motionSerifed"
selectorAffix.turnmLeg = "motionSerifed"
selectorAffix."turnmLeg/reduced" = "motionSerifed"
selectorAffix."cyrl/i.italic" = "motionSerifed"
selectorAffix."cyrl/i.italic/descBase" = "motionSerifed"
selectorAffix."cyrl/sha.italic" = "motionSerifed"
selectorAffix."cyrl/sha/reduced.italic" = "motionSerifed"
selectorAffix."cyrl/shcha.italic" = "motionSerifed"
selectorAffix."cyrl/shcha/reduced.italic" = "motionSerifed"
selectorAffix."cyrl/dzhe.italic" = "motionSerifed"
selectorAffix."cyrl/tse.italic" = "motionSerifed"
selectorAffix."cyrl/tseRev.italic" = "motionSerifed"
selectorAffix."ue/u" = "serifed"
selectorAffix."au/u" = {if = [{body = "toothed"}], then = "bottomRightSerifed", else = "serifless"}
selectorAffix."au/u/reduced" = {if = [{body = "toothed"}], then = "bottomRightSerifed", else = "serifless"}
[prime.u.variants-buildup.stages.serifs.serifed]
rank = 4
@ -3891,16 +3936,21 @@ selectorAffix.turnh = "serifed"
selectorAffix.turnhHookLeft = "serifed"
selectorAffix.turnhHookLeftRTail = "serifed"
selectorAffix.turnm = "serifed"
selectorAffix."turnm/reduced" = "motionSerifed"
selectorAffix.turnmLeg = "serifed"
selectorAffix."turnmLeg/reduced" = "motionSerifed"
selectorAffix."cyrl/i.italic" = "serifed"
selectorAffix."cyrl/i.italic/descBase" = "serifed"
selectorAffix."cyrl/sha.italic" = "serifed"
selectorAffix."cyrl/sha/reduced.italic" = "motionSerifed"
selectorAffix."cyrl/shcha.italic" = "serifed"
selectorAffix."cyrl/shcha/reduced.italic" = "motionSerifed"
selectorAffix."cyrl/dzhe.italic" = "serifed"
selectorAffix."cyrl/tse.italic" = "serifed"
selectorAffix."cyrl/tseRev.italic" = "serifed"
selectorAffix."ue/u" = "serifed"
selectorAffix."au/u" = "serifed"
selectorAffix."au/u/reduced" = {if = [{body = "toothed"}], then = "bottomRightSerifed", else = "serifless"}