Further reduce glyphs surrounding a. (#2593)

This commit is contained in:
John McWilliams 2024-11-17 16:55:31 -05:00 committed by GitHub
parent ca16776552
commit 763c932b9b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 142 additions and 133 deletions

View file

@ -147,7 +147,7 @@ glyph-block Letter-Cyrillic-Iotified-A : begin
include : df.markSet.e
local { subDf shift } : SubDfAndShift 1 df
include : with-transform [ApparentTranslate shift 0] [body subDf XH bar no-shape df.mvs]
include : with-transform [ApparentTranslate shift 0] [body subDf XH bar df.mvs]
include : Iotified.full df XH (shift + subDf.leftSB + [HSwToV : 0.5 * df.mvs]) (XH / 2)

View file

@ -38,8 +38,9 @@ glyph-block Letter-Greek-Lower-Alpha : begin
foreach { suffix { body bar } } [Object.entries SingleStoreyConfig] : do
create-glyph "grek/alpha.\(suffix)" : glyph-proc
include : MarkSet.e
include : body [DivFrame 1] XH bar no-shape
local df : include : DivFrame 1
include : df.markSet.e
include : body df XH bar
select-variant 'grek/alpha' 0x3B1
link-reduced-variant 'grek/alpha/sansSerif' 'grek/alpha' MathSansSerif

View file

@ -44,7 +44,7 @@ glyph-block Letter-Greek-Lower-Epsilon : begin
local ada : topHeight - [mix (midyHeight + stroke / 2) (topHeight - O - stroke) (ArchDepthB / (ArchDepthA + ArchDepthB))] - [HSwToV TanSlope] * stroke
local adb : [mix (stroke + O) (midyHeight - stroke / 2) (ArchDepthB / (ArchDepthA + ArchDepthB))] + [HSwToV TanSlope] * stroke
local fine : stroke * CThin
local stemFine : stroke * (ShoulderFine / Stroke)
local stemFine : ShoulderFine * (stroke / Stroke)
return : object stroke midx midy ada adb fine stemFine
export : define [UpperShape] : begin
@ -114,7 +114,7 @@ glyph-block Letter-Greek-Lower-Epsilon : begin
local adb : topHeight - [mix (midyHeight + stroke / 2) (topHeight - yo - stroke) (ArchDepthA / (ArchDepthA + ArchDepthB))] + [HSwToV TanSlope] * stroke
local ada : [mix (stroke + yo) (midyHeight - stroke / 2) (ArchDepthA / (ArchDepthA + ArchDepthB))] - [HSwToV TanSlope] * stroke
local fine : stroke * CThin
local stemFine : stroke * (ShoulderFine / Stroke)
local stemFine : ShoulderFine * (stroke / Stroke)
return : object stroke midx midy ada adb fine stemFine
define [UpperShapeT sink] : begin
@ -376,47 +376,47 @@ glyph-block Letter-Greek-Lower-Epsilon : begin
do "Volapuk AE"
glyph-block-import Letter-Latin-Lower-A : SingleStorey
define [FullBarBody df height bar hook ada2 adb2] : glyph-proc
define [FullBarBody df height bar hook ada adb] : glyph-proc
local eps : SmallEpsilon CLOSED-STEM CLOSED-STEM height 0
blend -- VolBlend
hook -- hook
overflow -- 0
ada2 -- ada2
adb2 -- adb2
ada2 -- ada
adb2 -- adb
define [object stroke] : eps.Dim
include : eps.Shape
include : bar df height no-shape stroke
include : bar df height stroke
define [EarlessCornerBody df height bar hook ada2 adb2] : glyph-proc
define [EarlessCornerBody df height bar hook ada adb] : glyph-proc
local eps : SmallEpsilon SLAB-INWARD CLOSED-STEM height 0
blend -- VolBlend
hook -- hook
overflow -- 0
ada2 -- ada2
adb2 -- adb2
ada2 -- ada
adb2 -- adb
define [object stroke] : eps.Dim
include : eps.Shape
include : bar df (height - DToothlessRise) no-shape stroke
include : bar df (height - DToothlessRise) stroke
define [EarlessRoundedBody df height bar hook ada2 adb2] : glyph-proc
define [EarlessRoundedBody df height bar hook ada adb] : glyph-proc
local eps : SmallEpsilon CLOSED-ROUND CLOSED-STEM height 0
blend -- VolBlend
hook -- hook
overflow -- 0
ada2 -- ada2
adb2 -- adb2
ada2 -- ada
adb2 -- adb
define [object stroke] : eps.Dim
include : eps.Shape
include : bar df (height - adb2) no-shape stroke
include : bar df (height - adb) stroke
define SingleStoreyConfig : object
singleStoreySerifless { FullBarBody SingleStorey.SeriflessBar }
singleStoreyEarlessCornerSerifless { EarlessCornerBody SingleStorey.SeriflessBar }
singleStoreyEarlessRoundedSerifless { EarlessRoundedBody SingleStorey.SeriflessBar }
singleStoreySerifed { FullBarBody SingleStorey.SerifedBar }
singleStoreyEarlessCornerSerifed { EarlessCornerBody SingleStorey.SerifedBar }
singleStoreyEarlessRoundedSerifed { EarlessRoundedBody SingleStorey.SerifedBar }
singleStoreySerifed { FullBarBody SingleStorey.BottomSerifedBar }
singleStoreyEarlessCornerSerifed { EarlessCornerBody SingleStorey.BottomSerifedBar }
singleStoreyEarlessRoundedSerifed { EarlessRoundedBody SingleStorey.BottomSerifedBar }
singleStoreyDoubleSerifed { FullBarBody SingleStorey.DoubleSerifedBar }
@ -428,61 +428,63 @@ glyph-block Letter-Greek-Lower-Epsilon : begin
foreach { suffix { body bar } } [Object.entries SingleStoreyConfig] : do
create-glyph "AeVolapuk.\(suffix)" : glyph-proc
include : MarkSet.capital
include : body [DivFrame 1] CAP bar Hook ArchDepthA ArchDepthB
local df : include : DivFrame 1
include : df.markSet.capital
include : body df CAP bar Hook ArchDepthA ArchDepthB
create-glyph "aeVolapuk.\(suffix)" : glyph-proc
include : MarkSet.e
include : body [DivFrame 1] XH bar SHook SmallArchDepthA SmallArchDepthB
local df : include : DivFrame 1
include : df.markSet.e
include : body df XH bar SHook SmallArchDepthA SmallArchDepthB
do "Volapuk UE"
glyph-block-import Letter-Latin-U : USerifs
glyph-block-import Letter-Shared-Shapes : RightwardTailedBar
define [UToothed df height slab hook ada2 adb2] : glyph-proc
define [UToothed df height slab hook ada adb] : glyph-proc
set-base-anchor 'trailing' df.rightSB 0
local eps : SmallEpsilon OPEN-VERTICAL CLOSED-STEM height 0
blend -- VolBlend
hook -- hook
overflow -- 0
ada2 -- ada2
adb2 -- adb2
ada2 -- ada
adb2 -- adb
define [object stroke] : eps.Dim
include : eps.Shape
include : VBar.r df.rightSB 0 height stroke
include : slab df height
define [UTailed df height slab hook ada2 adb2] : glyph-proc
define [UTailed df height slab hook ada adb] : glyph-proc
set-base-anchor 'trailing' (df.rightSB + SideJut) 0
local eps : SmallEpsilon OPEN-VERTICAL CLOSED-STEM height 0
blend -- VolBlend
hook -- hook
overflow -- 0
ada2 -- ada2
adb2 -- adb2
ada2 -- ada
adb2 -- adb
define [object stroke] : eps.Dim
include : eps.Shape
include : RightwardTailedBar df.rightSB 0 height stroke
include : slab df height
define [UToothlessRounded df height slab hook ada2 adb2] : glyph-proc
define [UToothlessRounded df height slab hook ada adb] : glyph-proc
local eps : SmallEpsilon OPEN-VERTICAL CLOSED-ROUND height 0
blend -- VolBlend
hook -- hook
overflow -- 0
ada2 -- ada2
adb2 -- adb2
ada2 -- ada
adb2 -- adb
define [object stroke] : eps.Dim
include : eps.Shape
include : VBar.r df.rightSB ada2 height stroke
include : VBar.r df.rightSB ada height stroke
include : slab df height
define [UToothlessCorner df height slab hook ada2 adb2] : glyph-proc
define [UToothlessCorner df height slab hook ada adb] : glyph-proc
local eps : SmallEpsilon OPEN-VERTICAL SLAB-INWARD height 0
blend -- VolBlend
hook -- hook
overflow -- 0
ada2 -- ada2
adb2 -- adb2
ada2 -- ada
adb2 -- adb
define [object stroke] : eps.Dim
include : eps.Shape
include : VBar.r df.rightSB DToothlessRise height stroke

View file

@ -9,11 +9,10 @@ glyph-block Letter-Latin-Lower-A : begin
glyph-block-import CommonShapes
glyph-block-import Common-Derivatives
glyph-block-import Mark-Shared-Metrics : markHalfStroke
glyph-block-import Letter-Shared : CreateAccentedComposition
glyph-block-import Letter-Shared : CreateTurnedLetter
glyph-block-import Letter-Shared : CreateAccentedComposition CreateTurnedLetter
glyph-block-import Letter-Shared-Shapes : SerifFrame OBarLeft OBarRight ArcStartSerif
glyph-block-import Letter-Shared-Shapes : RightwardTailedBar InvRightwardTailedBar
glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend RetroflexHook InwardSlabArcStart
glyph-block-import Letter-Shared-Shapes : RightwardTailedBar DToothlessRise DMBlend
glyph-block-import Letter-Shared-Shapes : RetroflexHook InwardSlabArcStart
glyph-block-export DoubleStorey
define DoubleStorey : namespace
@ -142,105 +141,112 @@ glyph-block Letter-Latin-Lower-A : begin
glyph-block-export SingleStorey
define SingleStorey : namespace
export : define [FullBarBody df height bar mask _sw] : glyph-proc
define [EaredBodyImpl df top sw] : OBarRight.shape
top -- top
left -- df.leftSB
right -- df.rightSB
sw -- sw
fine -- (ShoulderFine * (sw / Stroke))
ada -- [df.archDepthA SmallArchDepth sw]
adb -- [df.archDepthB SmallArchDepth sw]
export : define [FullBarBody df top bar _sw] : glyph-proc
local sw : fallback _sw df.mvs
include : OBarRight.shape
top -- height
left -- df.leftSB
right -- df.rightSB
sw -- sw
fine -- sw * (ShoulderFine / Stroke)
ada -- [df.archDepthA SmallArchDepth sw]
adb -- [df.archDepthB SmallArchDepth sw]
include : bar df height mask sw
export : define [EarlessCornerBody df height bar mask _sw] : glyph-proc
include : EaredBodyImpl df top sw
include : bar df top sw
export : define [ScriptCutBody df top bar _sw] : glyph-proc
local sw : fallback _sw df.mvs
include : EaredBodyImpl df top sw
include : bar df (top - sw / 2) sw
include : spiro-outline
corner df.rightSB top
corner df.rightSB (top - sw / 2)
corner (df.rightSB - [HSwToV sw]) (top - sw / 2)
export : define [EarlessCornerBody df top bar _sw] : glyph-proc
local sw : fallback _sw df.mvs
include : OBarLeft.toothless
top -- height
top -- top
left -- df.leftSB
right -- df.rightSB
sw -- sw
fine -- sw * (ShoulderFine / Stroke)
fine -- (ShoulderFine * (sw / Stroke))
ada -- [df.archDepthA SmallArchDepth sw]
adb -- [df.archDepthB SmallArchDepth sw]
rise -- DToothlessRise
mBlend -- DMBlend
include : FlipAround df.middle (height / 2)
include : bar df (height - DToothlessRise) mask sw
export : define [EarlessRoundedBody df height bar mask _sw] : glyph-proc
include : FlipAround df.middle (top / 2)
include : bar df (top - DToothlessRise) sw
export : define [EarlessRoundedBody df top bar _sw] : glyph-proc
local sw : fallback _sw df.mvs
local ada : df.archDepthA SmallArchDepth sw
local adb : df.archDepthB SmallArchDepth sw
include : OBarLeft.rounded
top -- height
top -- top
left -- df.leftSB
right -- df.rightSB
sw -- sw
fine -- sw * (ShoulderFine / Stroke)
fine -- (ShoulderFine * (sw / Stroke))
ada -- ada
adb -- adb
yTerminal -- (height - ada)
include : FlipAround df.middle (height / 2)
include : bar df (height - adb) mask sw
yTerminal -- (top - ada)
include : FlipAround df.middle (top / 2)
include : bar df (top - adb) sw
export : define [SeriflessBar df height mask sw] : glyph-proc
export : define [SeriflessBar df top sw] : glyph-proc
set-base-anchor 'trailing' df.rightSB 0
include : difference
VBar.r df.rightSB 0 height sw
mask df height sw
export : define [SerifedBar df height mask sw] : glyph-proc
include : SeriflessBar df height mask sw
include [SerifFrame.fromDf df height 0 (swSerif -- sw)].rb.outer
export : define [TopSerifedBar df height mask sw] : glyph-proc
include : SeriflessBar df height mask sw
include [SerifFrame.fromDf df height 0 (swSerif -- sw)].rt.outer
export : define [DoubleSerifedBar df height mask sw] : glyph-proc
include : SerifedBar df height mask sw
include [SerifFrame.fromDf df height 0 (swSerif -- sw)].rt.outer
export : define [TailedBar df height mask sw] : glyph-proc
include : VBar.r df.rightSB 0 top sw
export : define [TopSerifedBar df top sw] : glyph-proc
include : SeriflessBar df top sw
local sf : SerifFrame.fromDf df top 0 (swSerif -- sw)
include sf.rt.outer
export : define [BottomSerifedBar df top sw] : glyph-proc
include : SeriflessBar df top sw
local sf : SerifFrame.fromDf df top 0 (swSerif -- sw)
include sf.rb.outer
export : define [DoubleSerifedBar df top sw] : glyph-proc
include : SeriflessBar df top sw
local sf : SerifFrame.fromDf df top 0 (swSerif -- sw)
include : composite-proc sf.rt.outer sf.rb.outer
export : define [TailedBar df top sw] : glyph-proc
set-base-anchor 'trailing' (df.rightSB + SideJut) 0
include : difference
RightwardTailedBar df.rightSB 0 height sw
mask df height sw
export : define [TailedSerifedBar df height mask sw] : glyph-proc
include : TailedBar df height mask sw
include [SerifFrame.fromDf df height 0 (swSerif -- sw)].rt.outer
export : define [ScriptCut df y sw] : spiro-outline
corner df.rightSB y
corner (df.rightSB - [HSwToV sw]) y
corner (df.rightSB - [HSwToV sw]) (y - sw / 2)
include : RightwardTailedBar df.rightSB 0 top sw
export : define [TailedSerifedBar df top sw] : glyph-proc
include : TailedBar df top sw
local sf : SerifFrame.fromDf df top 0 (swSerif -- sw)
include sf.rt.outer
glyph-block-export SingleStoreyConfig
define SingleStoreyConfig : object
singleStoreySerifless { SingleStorey.FullBarBody SingleStorey.SeriflessBar }
singleStoreyEarlessCornerSerifless { SingleStorey.EarlessCornerBody SingleStorey.SeriflessBar }
singleStoreyEarlessRoundedSerifless { SingleStorey.EarlessRoundedBody SingleStorey.SeriflessBar }
singleStoreyScriptCutSerifless { SingleStorey.ScriptCutBody SingleStorey.SeriflessBar }
singleStoreyTopSerifed { SingleStorey.FullBarBody SingleStorey.TopSerifedBar }
singleStoreySerifed { SingleStorey.FullBarBody SingleStorey.SerifedBar }
singleStoreyEarlessCornerSerifed { SingleStorey.EarlessCornerBody SingleStorey.SerifedBar }
singleStoreyEarlessRoundedSerifed { SingleStorey.EarlessRoundedBody SingleStorey.SerifedBar }
singleStoreySerifed { SingleStorey.FullBarBody SingleStorey.BottomSerifedBar }
singleStoreyEarlessCornerSerifed { SingleStorey.EarlessCornerBody SingleStorey.BottomSerifedBar }
singleStoreyEarlessRoundedSerifed { SingleStorey.EarlessRoundedBody SingleStorey.BottomSerifedBar }
singleStoreyScriptCutSerifed { SingleStorey.ScriptCutBody SingleStorey.BottomSerifedBar }
singleStoreyDoubleSerifed { SingleStorey.FullBarBody SingleStorey.DoubleSerifedBar }
singleStoreyTailed { SingleStorey.FullBarBody SingleStorey.TailedBar }
singleStoreyEarlessCornerTailed { SingleStorey.EarlessCornerBody SingleStorey.TailedBar }
singleStoreyEarlessRoundedTailed { SingleStorey.EarlessRoundedBody SingleStorey.TailedBar }
singleStoreyScriptCutTailed { SingleStorey.ScriptCutBody SingleStorey.TailedBar }
singleStoreyTailedSerifed { SingleStorey.FullBarBody SingleStorey.TailedSerifedBar }
foreach { suffix { body bar } } [Object.entries SingleStoreyConfig] : do
create-glyph "a.\(suffix)" : glyph-proc
include : MarkSet.e
include : body [DivFrame 1] XH bar no-shape
local df : include : DivFrame 1
include : df.markSet.e
include : body df XH bar
create-glyph "AScript.\(suffix)" : glyph-proc
include : MarkSet.capital
include : body [DivFrame 1] CAP bar SingleStorey.ScriptCut
create-glyph "aScript.\(suffix)" : glyph-proc
include : MarkSet.e
include : body [DivFrame 1] XH bar SingleStorey.ScriptCut
local df : include : DivFrame 1
include : df.markSet.capital
include : body df CAP bar
select-variant 'a' 'a'
link-reduced-variant 'a/sansSerif' 'a' MathSansSerif
@ -253,10 +259,10 @@ glyph-block Letter-Latin-Lower-A : begin
derive-composites 'aRetroflexHook' 0x1D8F 'a/rtailBase'
RetroflexHook.rSideJut RightSB 0 (yOverflow -- Stroke)
select-variant 'aScript' 0x251 (follow -- [conditional-follow SLAB 'aScript/autoSerifed/slab' 'aScript/autoSerifed/sans'])
select-variant 'aScript' 0x251 (follow -- [conditional-follow SLAB 'aScript/autoSerifed/slab' 'aScript/autoSerifed/sans']) (shapeFrom -- 'a')
select-variant 'AScript' 0x2C6D (follow -- [conditional-follow SLAB 'aScript/autoSerifed/slab' 'aScript/autoSerifed/sans'])
derive-composites 'aScriptRetroflexHook' 0x1D90 'aScript.singleStoreySerifless'
derive-composites 'aScriptRetroflexHook' 0x1D90 'a.singleStoreyScriptCutSerifless'
RetroflexHook.rSideJut RightSB 0 (yOverflow -- Stroke)
CreateTurnedLetter 'turnaScript' 0x252 'aScript' HalfAdvance (XH / 2)

View file

@ -21,7 +21,7 @@ glyph-block Letter-Latin-Lower-G : begin
# overlay bar width for double-storey g
define obwDoubleStorey : Math.min [AdviceStroke 5] (0.5 / 3 * (CAP - Stroke * 4))
create-glyph 'g.doubleStorey' : glyph-proc
create-glyph 'g.doubleStoreyClosed' : glyph-proc
include : MarkSet.p
local obot : XH * DesignParameters.gBarPos - O - Stroke * 0.4
include : OShape XH obot SB (RightSB - 0.3 * SB)
@ -51,7 +51,7 @@ glyph-block Letter-Latin-Lower-G : begin
set-base-anchor 'overlay' Middle [mix (Descender + O) groundy 0.5]
set-base-anchor 'strike' Middle (XH / 2)
derive-composites "gBar.doubleStorey" null "g.doubleStorey" [OverlayW obwDoubleStorey]
derive-composites "gBar.doubleStoreyClosed" null "g.doubleStoreyClosed" [OverlayW obwDoubleStorey]
create-glyph 'g.doubleStoreyOpen' : glyph-proc
include : MarkSet.p
@ -147,7 +147,7 @@ glyph-block Letter-Latin-Lower-G : begin
define SingleStoreyConfig : SuffixCfg.weave
object # hook
singleStorey SingleStorey.BentHook
singleStoreyBentHook SingleStorey.BentHook
singleStoreyFlatHook SingleStorey.FlatHook
object # ear/serif
serifless { SingleStorey.SeriflessBody 0 }

View file

@ -141,7 +141,7 @@ glyph-block Letter-Latin-Lower-J : begin
alias 'grek/yot' 0x3F3 'j'
alias 'cyrl/je' 0x458 'j'
create-glyph 'dotlessjCurlyTail.serifless' : glyph-proc
create-glyph 'dotlessjCurlyTail.bentHookSerifless' : glyph-proc
include : MarkSet.p
set-base-anchor 'above' (Middle + JBalance) XH
local fine : AdviceStroke 3.5
@ -155,8 +155,8 @@ glyph-block Letter-Latin-Lower-J : begin
x2 -- RightSB + [HSwToV : 0.5 * fine]
y2 -- Descender + 0.5 * fine
create-glyph 'dotlessjCurlyTail.serifed' : glyph-proc
include [refer-glyph 'dotlessjCurlyTail.serifless'] AS_BASE ALSO_METRICS
create-glyph 'dotlessjCurlyTail.bentHookSerifed' : glyph-proc
include [refer-glyph 'dotlessjCurlyTail.bentHookSerifless'] AS_BASE ALSO_METRICS
include : HSerif.lt (Middle + JBalance) XH LongJut
select-variant 'dotlessjCurlyTail'

View file

@ -2139,8 +2139,8 @@ selectorAffix."a/rtailBase" = "doubleStorey"
selectorAffix."a/doubleStorey" = "doubleStorey"
selectorAffix."a/singleStorey/autoSerifed/slab" = "singleStorey"
selectorAffix."a/singleStorey/autoSerifed/sans" = "singleStorey"
selectorAffix."aScript/autoSerifed/slab" = "singleStorey"
selectorAffix."aScript/autoSerifed/sans" = "singleStorey"
selectorAffix."aScript/autoSerifed/slab" = "singleStoreyScriptCut"
selectorAffix."aScript/autoSerifed/sans" = "singleStoreyScriptCut"
[prime.a.variants-buildup.stages.storey.single-storey]
rank = 2
@ -2200,8 +2200,8 @@ selectorAffix."a/rtailBase" = ""
selectorAffix."a/doubleStorey" = ""
selectorAffix."a/singleStorey/autoSerifed/slab" = ""
selectorAffix."a/singleStorey/autoSerifed/sans" = ""
selectorAffix."aScript/autoSerifed/slab" = ""
selectorAffix."aScript/autoSerifed/sans" = ""
selectorAffix."aScript/autoSerifed/slab" = "scriptCut"
selectorAffix."aScript/autoSerifed/sans" = "scriptCut"
[prime.a.variants-buildup.stages.ear.earless-corner]
rank = 2
@ -2213,8 +2213,8 @@ selectorAffix."a/rtailBase" = "earlessCorner"
selectorAffix."a/doubleStorey" = ""
selectorAffix."a/singleStorey/autoSerifed/slab" = "earlessCorner"
selectorAffix."a/singleStorey/autoSerifed/sans" = "earlessCorner"
selectorAffix."aScript/autoSerifed/slab" = ""
selectorAffix."aScript/autoSerifed/sans" = ""
selectorAffix."aScript/autoSerifed/slab" = "scriptCut"
selectorAffix."aScript/autoSerifed/sans" = "scriptCut"
[prime.a.variants-buildup.stages.ear.earless-rounded]
rank = 3
@ -2226,8 +2226,8 @@ selectorAffix."a/rtailBase" = "earlessRounded"
selectorAffix."a/doubleStorey" = ""
selectorAffix."a/singleStorey/autoSerifed/slab" = "earlessRounded"
selectorAffix."a/singleStorey/autoSerifed/sans" = "earlessRounded"
selectorAffix."aScript/autoSerifed/slab" = ""
selectorAffix."aScript/autoSerifed/sans" = ""
selectorAffix."aScript/autoSerifed/slab" = "scriptCut"
selectorAffix."aScript/autoSerifed/sans" = "scriptCut"
[prime.a.variants-buildup.stages.bar.serifless]
rank = 1
@ -2765,10 +2765,10 @@ rank = 1
descriptionAffix = "double-storey shape"
selectorAffix.g = "doubleStorey"
selectorAffix."g/sansSerif" = "doubleStorey"
selectorAffix."g/hookTopBase" = "singleStoreySerifless"
selectorAffix."g/singleStorey/autoSerifed/slab" = "singleStoreySerifed"
selectorAffix."g/singleStorey/autoSerifed/sans" = "singleStoreySerifless"
selectorAffix.gScript = "singleStoreyScriptCut"
selectorAffix."g/hookTopBase" = "singleStoreyBentHookSerifless"
selectorAffix."g/singleStorey/autoSerifed/slab" = "singleStoreyBentHookSerifed"
selectorAffix."g/singleStorey/autoSerifed/sans" = "singleStoreyBentHookSerifless"
selectorAffix.gScript = "singleStoreyBentHookScriptCut"
[prime.g.variants-buildup.stages.openness."*"]
next = "END"
@ -2776,8 +2776,8 @@ next = "END"
[prime.g.variants-buildup.stages.openness.closed]
rank = 1
keyAffix = ""
selectorAffix.g = ""
selectorAffix."g/sansSerif" = ""
selectorAffix.g = "closed"
selectorAffix."g/sansSerif" = "closed"
selectorAffix."g/hookTopBase" = ""
selectorAffix."g/singleStorey/autoSerifed/slab" = ""
selectorAffix."g/singleStorey/autoSerifed/sans" = ""
@ -2810,12 +2810,12 @@ next = "ear"
[prime.g.variants-buildup.stages.hook.bent-hook]
rank = 1
keyAffix = ""
selectorAffix.g = ""
selectorAffix."g/sansSerif" = ""
selectorAffix."g/hookTopBase" = ""
selectorAffix."g/singleStorey/autoSerifed/slab" = ""
selectorAffix."g/singleStorey/autoSerifed/sans" = ""
selectorAffix.gScript = ""
selectorAffix.g = "bentHook"
selectorAffix."g/sansSerif" = "bentHook"
selectorAffix."g/hookTopBase" = "bentHook"
selectorAffix."g/singleStorey/autoSerifed/slab" = "bentHook"
selectorAffix."g/singleStorey/autoSerifed/sans" = "bentHook"
selectorAffix.gScript = "bentHook"
[prime.g.variants-buildup.stages.hook.flat-hook]
rank = 2
@ -3085,7 +3085,7 @@ description = "`j` without serif"
selector.dotlessj = "bentHookSerifless"
selector."dotlessj/sansSerif" = "bentHookSerifless"
selector.dotlessjHookTop = "bentHookSerifless"
selector.dotlessjCurlyTail = "serifless"
selector.dotlessjCurlyTail = "bentHookSerifless"
[prime.j.variants.serifed]
rank = 2
@ -3093,7 +3093,7 @@ description = "`j` with top serif"
selector.dotlessj = "bentHookSerifed"
selector."dotlessj/sansSerif" = "bentHookSerifless"
selector.dotlessjHookTop = "bentHookShortSerifed"
selector.dotlessjCurlyTail = "serifed"
selector.dotlessjCurlyTail = "bentHookSerifed"
[prime.j.variants.straight-line]
rank = 3
@ -3101,7 +3101,7 @@ description = "`j` like a straight line"
selector.dotlessj = "straightSerifless"
selector."dotlessj/sansSerif" = "straightSerifless"
selector.dotlessjHookTop = "straightSerifless"
selector.dotlessjCurlyTail = "serifless"
selector.dotlessjCurlyTail = "bentHookSerifless"
[prime.j.variants.hooky]
rank = 4
@ -3109,7 +3109,7 @@ description = "`j` like a straight line with top serif"
selector.dotlessj = "straightSerifed"
selector."dotlessj/sansSerif" = "straightSerifless"
selector.dotlessjHookTop = "straightShortSerifed"
selector.dotlessjCurlyTail = "serifed"
selector.dotlessjCurlyTail = "bentHookSerifed"
[prime.j.variants.flat-hook-serifless]
rank = 5
@ -3117,7 +3117,7 @@ description = "`j` with flat terminal hook"
selector.dotlessj = "flatHookSerifless"
selector."dotlessj/sansSerif" = "flatHookSerifless"
selector.dotlessjHookTop = "flatHookSerifless"
selector.dotlessjCurlyTail = "serifless"
selector.dotlessjCurlyTail = "bentHookSerifless"
[prime.j.variants.flat-hook-serifed]
rank = 6
@ -3125,7 +3125,7 @@ description = "`j` with flat terminal hook and top serif"
selector.dotlessj = "flatHookSerifed"
selector."dotlessj/sansSerif" = "flatHookSerifless"
selector.dotlessjHookTop = "flatHookShortSerifed"
selector.dotlessjCurlyTail = "serifed"
selector.dotlessjCurlyTail = "bentHookSerifed"
[prime.j.variants.diagonal-tailed-serifless]
rank = 7
@ -3133,7 +3133,7 @@ description = "`j` with diagonal tail"
selector.dotlessj = "diagonalTailedSerifless"
selector."dotlessj/sansSerif" = "diagonalTailedSerifless"
selector.dotlessjHookTop = "diagonalTailedSerifless"
selector.dotlessjCurlyTail = "serifless"
selector.dotlessjCurlyTail = "bentHookSerifless"
[prime.j.variants.diagonal-tailed-serifed]
rank = 8
@ -3141,7 +3141,7 @@ description = "`j` with top serif and diagonal tail"
selector.dotlessj = "diagonalTailedSerifed"
selector."dotlessj/sansSerif" = "diagonalTailedSerifless"
selector.dotlessjHookTop = "diagonalTailedShortSerifed"
selector.dotlessjCurlyTail = "serifed"
selector.dotlessjCurlyTail = "bentHookSerifed"