diff --git a/changes/28.0.0-alpha.1.md b/changes/28.0.0-alpha.1.md index e172fa2c0..15ee7853b 100644 --- a/changes/28.0.0-alpha.1.md +++ b/changes/28.0.0-alpha.1.md @@ -1,4 +1,8 @@ * \[**BREAKING**\] The filenames and package filenames are changed. - They will now use PascalCase instead of kebab-case. - To package manager maintainers: Please upgrade your script to make it capable to download and install the fonts under new names, and properly uninstall the fonts under old names. + * \[**BREAKING**\] Reorder of glyph variants: + - Influenced characters: `M`, `R`, `f`, `t`, `x`, Long S (`ſ`), Lower Chi (`χ`), Cyrillic Lower Em (`м`), Cyrillic Ya (`Я`, `я`), `5`. + * \[**BREAKING**\] Tags for variant features for Cyrillic lowercase Er and U are changed to `cv76` and `cv78`. + - Various other glyph variant tags are also changed to reflect this insertion. * Add hook-inward-serifed variants for `a` (#2085). diff --git a/params/variants.toml b/params/variants.toml index cfe723f37..3ecb9b360 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -658,27 +658,11 @@ sampler = "M" tagKind = "letter" [prime.capital-m.variants-buildup] -entry = "middle" +entry = "sides" descriptionLeader = "`M`" -[prime.capital-m.variants-buildup.stages.middle."*"] -next = "sides" - -[prime.capital-m.variants-buildup.stages.middle.hanging] -rank = 1 -descriptionAffix = "middle being hanging off baseline" -selectorAffix.M = "hanging" -selectorAffix."M/sansSerif" = "hanging" - -[prime.capital-m.variants-buildup.stages.middle.flat-bottom] -rank = 2 -descriptionAffix = "middle aligned to baseline" -selectorAffix.M = "flatBottom" -selectorAffix."M/sansSerif" = "flatBottom" - [prime.capital-m.variants-buildup.stages.sides."*"] -next = "serifs" -mode = "prepend" +next = "middle" [prime.capital-m.variants-buildup.stages.sides.straight] rank = 1 @@ -692,6 +676,21 @@ descriptionAffix = "slanted sides" selectorAffix.M = "slantedSides" selectorAffix."M/sansSerif" = "slantedSides" +[prime.capital-m.variants-buildup.stages.middle."*"] +next = "serifs" + +[prime.capital-m.variants-buildup.stages.middle.hanging] +rank = 1 +descriptionAffix = "middle being hanging off baseline" +selectorAffix.M = "hanging" +selectorAffix."M/sansSerif" = "hanging" + +[prime.capital-m.variants-buildup.stages.middle.flat-bottom] +rank = 2 +descriptionAffix = "middle aligned to baseline" +selectorAffix.M = "flatBottom" +selectorAffix."M/sansSerif" = "flatBottom" + [prime.capital-m.variants-buildup.stages.serifs.serifless] rank = 1 descriptionAffix = "serifs" @@ -882,39 +881,18 @@ sampler = "R" tagKind = "letter" [prime.capital-r.variants-buildup] -entry = "openness" +entry = "leg" descriptionLeader = "`R`" [prime.capital-r.variants-buildup.stages.openness."*"] -next = "leg" - -[prime.capital-r.variants-buildup.stages.openness.closed] -rank = 1 -groupRank = 10 -keyAffix = "" -selectorAffix.R = "" -selectorAffix."R/sansSerif" = "" -selectorAffix.RBar = "" -selectorAffix.RRTail = "" -selectorAffix.RRotunda = "" - -[prime.capital-r.variants-buildup.stages.openness.open] -rank = 2 -groupRank = 20 -descriptionAffix = "open contour" -selectorAffix.R = "open" -selectorAffix."R/sansSerif" = "open" -selectorAffix.RBar = "" -selectorAffix.RRTail = "open" -selectorAffix.RRotunda = "" +next = "serifs" [prime.capital-r.variants-buildup.stages.leg."*"] -next = "serifs" -mode = "prepend" +next = "openness" [prime.capital-r.variants-buildup.stages.leg.straight] rank = 1 -groupRank = 1 +groupRank = 10 descriptionAffix = "straight leg" selectorAffix.R = "straight" selectorAffix."R/sansSerif" = "straight" @@ -924,7 +902,7 @@ selectorAffix.RRotunda = "straight" [prime.capital-r.variants-buildup.stages.leg.curly] rank = 2 -groupRank = 2 +groupRank = 20 descriptionAffix = "curly leg" selectorAffix.R = "curly" selectorAffix."R/sansSerif" = "curly" @@ -934,7 +912,7 @@ selectorAffix.RRotunda = "curly" [prime.capital-r.variants-buildup.stages.leg.standing] rank = 3 -groupRank = 3 +groupRank = 30 descriptionAffix = "standing leg (like Helvetica)" selectorAffix.R = "standing" selectorAffix."R/sansSerif" = "standing" @@ -942,6 +920,26 @@ selectorAffix.RBar = "standing" selectorAffix.RRTail = "standing" selectorAffix.RRotunda = "standing" +[prime.capital-r.variants-buildup.stages.openness.closed] +rank = 1 +groupRank = 1 +keyAffix = "" +selectorAffix.R = "" +selectorAffix."R/sansSerif" = "" +selectorAffix.RBar = "" +selectorAffix.RRTail = "" +selectorAffix.RRotunda = "" + +[prime.capital-r.variants-buildup.stages.openness.open] +rank = 2 +groupRank = 2 +descriptionAffix = "open contour" +selectorAffix.R = "open" +selectorAffix."R/sansSerif" = "open" +selectorAffix.RBar = "" +selectorAffix.RRTail = "open" +selectorAffix.RRotunda = "" + [prime.capital-r.variants-buildup.stages.serifs.serifless] rank = 1 descriptionAffix = "serifs" @@ -1544,7 +1542,6 @@ selectorAffix.scripta = "" [prime.a.variants-buildup.stages.double-storey-hook.hook-serifed] rank = 2 -nonBreakingVariantAdditionPriority = 100 keyAffix = "hook-inward-serifed" descriptionAffix = "serifed hook" selectorAffix.a = "hookInwardSerifed" @@ -1932,12 +1929,11 @@ sampler = "f" tagKind = "letter" [prime.f.variants-buildup] -entry = "tail" +entry = "hook" descriptionLeader = "`f`" [prime.f.variants-buildup.stages.hook."*"] -next = "crossbar" -mode = "prepend" +next = "tail" [prime.f.variants-buildup.stages.hook.full] rank = 1 @@ -1966,7 +1962,7 @@ selectorAffix.fLenis = "flatHook" selectorAffix.fLTail = "flatHook" [prime.f.variants-buildup.stages.tail."*"] -next = "hook" +next = "crossbar" [prime.f.variants-buildup.stages.tail.serifless] rank = 1 @@ -3489,11 +3485,11 @@ sampler = "t" tagKind = "letter" [prime.t.variants-buildup] -entry = "height" +entry = "body" descriptionLeader = "`t`" [prime.t.variants-buildup.stages.body."*"] -mode = "prepend" +next = "symmetry" [prime.t.variants-buildup.stages.body.bent-hook] rank = 1 @@ -3553,8 +3549,7 @@ selectorAffix.tCurlyTail = {if = [{symmetry = "asymmetric"}], then = "flatHook", selectorAffix."tsLig/upperHalf" = "bentHook" [prime.t.variants-buildup.stages.symmetry."*"] -next = "body" -mode = "prepend" +next = "height" [prime.t.variants-buildup.stages.symmetry.symmetric] rank = 1 @@ -3587,7 +3582,6 @@ selectorAffix.tCurlyTail = "asymmetric" selectorAffix."tsLig/upperHalf" = "" [prime.t.variants-buildup.stages.height."*"] -next = "symmetry" [prime.t.variants-buildup.stages.height.full] rank = 1 @@ -3996,7 +3990,6 @@ selectorAffix."cyrl/ha" = "cursive" [prime.x.variants-buildup.stages.body.semi-chancery-straight] rank = 4 -nonBreakingVariantAdditionPriority = 100 next = "END" descriptionAffix = "Semi-chancery shape with straight counter-leg" selectorAffix.x = "semiChanceryStraight" @@ -4005,7 +3998,6 @@ selectorAffix."cyrl/ha" = "semiChanceryStraight" [prime.x.variants-buildup.stages.body.semi-chancery-curly] rank = 5 -nonBreakingVariantAdditionPriority = 100 next = "END" descriptionAffix = "Semi-chancery shape with curly counter-leg" selectorAffix.x = "semiChanceryCurly" @@ -4014,7 +4006,6 @@ selectorAffix."cyrl/ha" = "semiChanceryCurly" [prime.x.variants-buildup.stages.body.chancery] rank = 6 -nonBreakingVariantAdditionPriority = 200 next = "END" descriptionAffix = "Chancery shape" selectorAffix.x = "chancery" @@ -4266,46 +4257,15 @@ samplerExplain = "Long-S" tagKind = "letter" [prime.long-s.variants-buildup] -entry = "bottom" +entry = "top" descriptionLeader = "Long S (`ſ`)" -[prime.long-s.variants-buildup.stages.bottom."*"] -next = "top" - -[prime.long-s.variants-buildup.stages.bottom.non-descending] -rank = 1 -keyAffix = "" -selectorAffix."longs" = "" -selectorAffix."longs/flatExt" = "" -selectorAffix."longsBar" = "" - -[prime.long-s.variants-buildup.stages.bottom.descending] -rank = 2 -descriptionAffix = "terminal descends baseline" -selectorAffix."longs" = "descending" -selectorAffix."longs/flatExt" = "descending" -selectorAffix."longsBar" = "descending" - -[prime.long-s.variants-buildup.stages.bottom.tailed] -rank = 3 -descriptionAffix = "terminal has a tail" -selectorAffix."longs" = "tailed" -selectorAffix."longs/flatExt" = "tailed" -selectorAffix."longsBar" = "tailed" - -[prime.long-s.variants-buildup.stages.bottom.diagonal-tailed] -rank = 4 -descriptionAffix = "terminal has a diagonal tail" -selectorAffix."longs" = "diagonalTailed" -selectorAffix."longs/flatExt" = "diagonalTailed" -selectorAffix."longsBar" = "diagonalTailed" - [prime.long-s.variants-buildup.stages.top."*"] -next = "serifs" -mode = "prepend" +next = "bottom" [prime.long-s.variants-buildup.stages.top.bent-hook] rank = 1 +groupRank = 10 descriptionAffix = "bending top hook" selectorAffix."longs" = "bentHook" selectorAffix."longs/flatExt" = "flatHookExt" @@ -4313,11 +4273,47 @@ selectorAffix."longsBar" = "bentHook" [prime.long-s.variants-buildup.stages.top.flat-hook] rank = 2 +groupRank = 20 descriptionAffix = "flat top hook" selectorAffix."longs" = "flatHook" selectorAffix."longs/flatExt" = "flatHookExt" selectorAffix."longsBar" = "flatHook" +[prime.long-s.variants-buildup.stages.bottom."*"] +next = "serifs" + +[prime.long-s.variants-buildup.stages.bottom.non-descending] +rank = 1 +groupRank = 1 +keyAffix = "" +selectorAffix."longs" = "" +selectorAffix."longs/flatExt" = "" +selectorAffix."longsBar" = "" + +[prime.long-s.variants-buildup.stages.bottom.descending] +rank = 2 +groupRank = 2 +descriptionAffix = "terminal descends baseline" +selectorAffix."longs" = "descending" +selectorAffix."longs/flatExt" = "descending" +selectorAffix."longsBar" = "descending" + +[prime.long-s.variants-buildup.stages.bottom.tailed] +rank = 3 +groupRank = 3 +descriptionAffix = "terminal has a tail" +selectorAffix."longs" = "tailed" +selectorAffix."longs/flatExt" = "tailed" +selectorAffix."longsBar" = "tailed" + +[prime.long-s.variants-buildup.stages.bottom.diagonal-tailed] +rank = 4 +groupRank = 4 +descriptionAffix = "terminal has a diagonal tail" +selectorAffix."longs" = "diagonalTailed" +selectorAffix."longs/flatExt" = "diagonalTailed" +selectorAffix."longsBar" = "diagonalTailed" + [prime.long-s.variants-buildup.stages.serifs.serifless__non-descending] rank = 1 enableIf = [{ bottom = "non-descending" }] @@ -4986,7 +4982,6 @@ selectorAffix."grek/chi/sansSerif" = "curly" [prime.lower-chi.variants-buildup.stages.body.semi-chancery-straight] rank = 3 -nonBreakingVariantAdditionPriority = 100 next = "END" descriptionAffix = "Semi-chancery shape with straight counter-leg" selectorAffix."grek/chi" = "semiChanceryStraight" @@ -4994,7 +4989,6 @@ selectorAffix."grek/chi/sansSerif" = "semiChanceryStraight" [prime.lower-chi.variants-buildup.stages.body.semi-chancery-curly] rank = 4 -nonBreakingVariantAdditionPriority = 100 next = "END" descriptionAffix = "Semi-chancery shape with curly counter-leg" selectorAffix."grek/chi" = "semiChanceryCurly" @@ -5002,7 +4996,6 @@ selectorAffix."grek/chi/sansSerif" = "semiChanceryCurly" [prime.lower-chi.variants-buildup.stages.body.chancery] rank = 5 -nonBreakingVariantAdditionPriority = 200 next = "END" descriptionAffix = "Chancery shape" selectorAffix."grek/chi" = "chancery" @@ -5394,26 +5387,8 @@ sampler = "м" samplerExplain = "Cyrillic Lower Em" tagKind = "letter" -[prime.cyrl-em.variants-buildup] -entry = "middle" -descriptionLeader = "Cyrillic Lower Em (`м`)" - -[prime.cyrl-em.variants-buildup.stages.middle."*"] -next = "sides" - -[prime.cyrl-em.variants-buildup.stages.middle.hanging] -rank = 1 -descriptionAffix = "middle being hanging off baseline" -selectorAffix."cyrl/em" = "hanging" - -[prime.cyrl-em.variants-buildup.stages.middle.flat-bottom] -rank = 2 -descriptionAffix = "middle aligned to baseline" -selectorAffix."cyrl/em" = "flatBottom" - [prime.cyrl-em.variants-buildup.stages.sides."*"] -next = "serifs" -mode = "prepend" +next = "middle" [prime.cyrl-em.variants-buildup.stages.sides.straight] rank = 1 @@ -5425,6 +5400,23 @@ rank = 2 descriptionAffix = "slanted sides" selectorAffix."cyrl/em" = "slantedSides" +[prime.cyrl-em.variants-buildup] +entry = "sides" +descriptionLeader = "Cyrillic Lower Em (`м`)" + +[prime.cyrl-em.variants-buildup.stages.middle."*"] +next = "serifs" + +[prime.cyrl-em.variants-buildup.stages.middle.hanging] +rank = 1 +descriptionAffix = "middle being hanging off baseline" +selectorAffix."cyrl/em" = "hanging" + +[prime.cyrl-em.variants-buildup.stages.middle.flat-bottom] +rank = 2 +descriptionAffix = "middle aligned to baseline" +selectorAffix."cyrl/em" = "flatBottom" + [prime.cyrl-em.variants-buildup.stages.serifs.serifless] rank = 1 descriptionAffix = "serifs" @@ -5522,7 +5514,6 @@ selectorAffix."cyrl/njeKomi" = "serifedExceptBottomRight" [prime.cyrl-er] sampler = "р" samplerExplain = "Cyrillic Lower Er" -nonBreakingTagForNewVariantSelector = "VXAA" # REMOVE IN NEXT MAJOR VERSION CHANGE tagKind = "letter" [prime.cyrl-er.variants-buildup] @@ -5643,7 +5634,6 @@ selectorAffix."cyrl/U" = "serifed" [prime.cyrl-u] sampler = "у" samplerExplain = "Cyrillic Lower U" -nonBreakingTagForNewVariantSelector = "VXAB" # REMOVE IN NEXT MAJOR VERSION CHANGE tagKind = "letter" [prime.cyrl-u.variants-buildup] @@ -5726,7 +5716,6 @@ selectorAffix."cyrl/ef.BGR" = "" [prime.cyrl-ef.variants-buildup.stages.bowl.split] rank = 2 -nonBreakingVariantAdditionPriority = 100 descriptionAffix = "split bowl" selectorAffix."cyrl/ef" = "splitBowl" selectorAffix."cyrl/ef.BGR" = "" @@ -5757,14 +5746,12 @@ selectorAffix."cyrl/ef.BGR" = "serifless" [prime.cyrl-ef.variants-buildup.stages.serifs.top-serifed] rank = 2 -nonBreakingVariantAdditionPriority = 10 descriptionAffix = "serif at top" selectorAffix."cyrl/ef" = "topSerifed" selectorAffix."cyrl/ef.BGR" = "topSerifed" [prime.cyrl-ef.variants-buildup.stages.serifs.serifed] rank = 3 -nonBreakingVariantAdditionPriority = 10 descriptionAffix = "serifs at top and bottom" selectorAffix."cyrl/ef" = "serifed" selectorAffix."cyrl/ef.BGR" = "serifed" @@ -5911,25 +5898,11 @@ samplerExplain = "Cyrillic Capital Ya" tagKind = "letter" [prime.cyrl-capital-ya.variants-buildup] -entry = "openness" +entry = "leg" descriptionLeader = "Cyrillic Capital Ya (`Я`)" -[prime.cyrl-capital-ya.variants-buildup.stages.openness."*"] -next = "leg" - -[prime.cyrl-capital-ya.variants-buildup.stages.openness.closed] -rank = 1 -keyAffix = "" -selectorAffix."cyrl/Ya" = "" - -[prime.cyrl-capital-ya.variants-buildup.stages.openness.open] -rank = 2 -descriptionAffix = "open contour" -selectorAffix."cyrl/Ya" = "open" - [prime.cyrl-capital-ya.variants-buildup.stages.leg."*"] -next = "serifs" -mode = "prepend" +next = "openness" [prime.cyrl-capital-ya.variants-buildup.stages.leg.straight] rank = 1 @@ -5946,6 +5919,19 @@ rank = 3 descriptionAffix = "standing leg (like Helvetica)" selectorAffix."cyrl/Ya" = "standing" +[prime.cyrl-capital-ya.variants-buildup.stages.openness."*"] +next = "serifs" + +[prime.cyrl-capital-ya.variants-buildup.stages.openness.closed] +rank = 1 +keyAffix = "" +selectorAffix."cyrl/Ya" = "" + +[prime.cyrl-capital-ya.variants-buildup.stages.openness.open] +rank = 2 +descriptionAffix = "open contour" +selectorAffix."cyrl/Ya" = "open" + [prime.cyrl-capital-ya.variants-buildup.stages.serifs.serifless] rank = 1 descriptionAffix = "serifs" @@ -5970,27 +5956,11 @@ samplerExplain = "Cyrillic Lower Ya" tagKind = "letter" [prime.cyrl-ya.variants-buildup] -entry = "openness" +entry = "leg" descriptionLeader = "Cyrillic Lower Ya (`я`)" -[prime.cyrl-ya.variants-buildup.stages.openness."*"] -next = "leg" - -[prime.cyrl-ya.variants-buildup.stages.openness.closed] -rank = 1 -groupRrank = 10 -keyAffix = "" -selectorAffix."cyrl/ya" = "" - -[prime.cyrl-ya.variants-buildup.stages.openness.open] -rank = 2 -groupRrank = 20 -descriptionAffix = "open contour" -selectorAffix."cyrl/ya" = "open" - [prime.cyrl-ya.variants-buildup.stages.leg."*"] -next = "tails" -mode = "prepend" +next = "openness" [prime.cyrl-ya.variants-buildup.stages.leg.straight] rank = 1 @@ -6010,6 +5980,21 @@ groupRank = 3 descriptionAffix = "standing leg (like Helvetica)" selectorAffix."cyrl/ya" = "standing" +[prime.cyrl-ya.variants-buildup.stages.openness."*"] +next = "serifs" + +[prime.cyrl-ya.variants-buildup.stages.openness.closed] +rank = 1 +groupRrank = 10 +keyAffix = "" +selectorAffix."cyrl/ya" = "" + +[prime.cyrl-ya.variants-buildup.stages.openness.open] +rank = 2 +groupRrank = 20 +descriptionAffix = "open contour" +selectorAffix."cyrl/ya" = "open" + [prime.cyrl-ya.variants-buildup.stages.tails."*"] next = "serifs" @@ -6364,7 +6349,6 @@ selectorAffix.zhuangToneFive = "arched" [prime.five.variants-buildup.stages.middle.flat] rank = 2 -nonBreakingVariantAdditionPriority = 100 descriptionAffix = "flat middle part" selectorAffix.five = "flat" selectorAffix.zhuangToneFive = "flat"