From 4021817f9fa1fe1f6f6cf426315e8deeed9d957f Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Sun, 2 Feb 2025 16:24:15 -0500 Subject: [PATCH 01/23] Optimize arch depths of Armenian letters. (#2668) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Optimize arch depths of Armenian letters. * Cleanup of `Հ`/`Ց`/`Ֆ`/`ֆ`. --- changes/32.5.1.md | 13 ++ .../font-glyphs/src/letter/armenian/ca.ptl | 10 +- .../font-glyphs/src/letter/armenian/feh.ptl | 4 +- .../src/letter/armenian/lower-sha-group.ptl | 3 +- .../src/letter/armenian/lower-u-group.ptl | 154 ++++++++++-------- .../src/letter/armenian/upper-co.ptl | 6 +- .../src/letter/armenian/upper-gim-group.ptl | 2 +- .../src/letter/armenian/upper-ho.ptl | 6 +- .../src/letter/armenian/upper-xeh.ptl | 3 +- 9 files changed, 120 insertions(+), 81 deletions(-) create mode 100644 changes/32.5.1.md diff --git a/changes/32.5.1.md b/changes/32.5.1.md new file mode 100644 index 000000000..76b8f7845 --- /dev/null +++ b/changes/32.5.1.md @@ -0,0 +1,13 @@ +* Refine shape of the following characters: + - ARMENIAN CAPITAL LETTER XEH (`U+053D`). + - ARMENIAN CAPITAL LETTER CA (`U+053E`). + - ARMENIAN CAPITAL LETTER HO (`U+0540`). + - ARMENIAN CAPITAL LETTER CO (`U+0551`). + - ARMENIAN CAPITAL LETTER FEH (`U+0556`). + - ARMENIAN SMALL LETTER ZHE (`U+056A`). + - ARMENIAN SMALL LETTER XEH (`U+056D`). + - ARMENIAN SMALL LETTER CHA (`U+0579`). + - ARMENIAN SMALL LETTER TIWN (`U+057F`). + - ARMENIAN SMALL LETTER PIWR (`U+0583`). + - ARMENIAN SMALL LETTER FEH (`U+0586`). + - ARMENIAN SMALL LIGATURE ECH YIWN (`U+0587`). diff --git a/packages/font-glyphs/src/letter/armenian/ca.ptl b/packages/font-glyphs/src/letter/armenian/ca.ptl index 38dd51617..9572edd7e 100644 --- a/packages/font-glyphs/src/letter/armenian/ca.ptl +++ b/packages/font-glyphs/src/letter/armenian/ca.ptl @@ -19,11 +19,17 @@ glyph-block Letter-Armenian-Ca : begin create-glyph 'armn/Ca' 0x53E : glyph-proc local df : include : DivFrame 1 include : df.markSet.capital - include : VBar.l df.leftSB (CAP - VJut) CAP df.mvs + local yStart : CAP - VJut + df.mvs + + local xStart : Math.min df.leftSB : Math.max + [mix df.leftSB df.rightSB 0.4] - [HSwToV : 1.5 * df.mvs] - jut + df.leftSB - jut + [HSwToV : 0.5 * df.mvs] + + include : VBar.l xStart (yStart - df.mvs) CAP df.mvs include : dispiro widths.rhs.heading df.mvs Rightward - flat df.leftSB yStart + flat xStart yStart curl df.middle yStart archv flat df.rightSB (yStart - ArchDepthB) diff --git a/packages/font-glyphs/src/letter/armenian/feh.ptl b/packages/font-glyphs/src/letter/armenian/feh.ptl index 835a4c7cf..d0fabd68e 100644 --- a/packages/font-glyphs/src/letter/armenian/feh.ptl +++ b/packages/font-glyphs/src/letter/armenian/feh.ptl @@ -18,14 +18,14 @@ glyph-block Letter-Armenian-Feh : begin widths.lhs sw straight.left.start df.middle top archv - flatside.ld df.leftSB midyBot top ada adb + g4 df.leftSB [mix top midyBot (ada / (ada + adb))] arcvh straight.right.end df.middle midyBot [heading Rightward] include : dispiro widths.rhs sw straight.right.start df.middle midyTop [heading Rightward] archv - flatside.rd df.rightSB 0 midyTop ada adb + g4 (df.rightSB - OX) [mix midyTop 0 (adb / (ada + adb))] hookend 0 (sw -- sw) g4 (df.leftSB + OX) (0 + hook) diff --git a/packages/font-glyphs/src/letter/armenian/lower-sha-group.ptl b/packages/font-glyphs/src/letter/armenian/lower-sha-group.ptl index 6ee6271e7..d7052d972 100644 --- a/packages/font-glyphs/src/letter/armenian/lower-sha-group.ptl +++ b/packages/font-glyphs/src/letter/armenian/lower-sha-group.ptl @@ -36,7 +36,8 @@ glyph-block Letter-Armenian-Lower-Sha-Group : begin local y2 : XH / 2 include : dispiro widths.center df.mvs - straight.down.start (x1 + [HSwToV : 0.5 * df.mvs]) XH [heading Downward] + flat (x1 + [HSwToV : 0.5 * df.mvs]) XH [heading Downward] + curl (x1 + [HSwToV : 0.5 * df.mvs]) [Math.min (y2 + 0.8 * SmallArchDepthB) (XH - TINY)] [heading Downward] arcvh flat (df.middle + [HSwToV : 0.5 * df.mvs]) y2 curl x2 y2 [heading Rightward] diff --git a/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl b/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl index 24493fb75..9e3814f8e 100644 --- a/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl +++ b/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl @@ -49,10 +49,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin include : df.markSet.p include : VBar.l df.leftSB Descender XH df.mvs include : nShoulder.shape - left -- (df.leftSB + [HSwToV df.mvs]) - right -- df.rightSB - top -- XH + top -- XH bottom -- (XH / 2) + left -- (df.leftSB + [HSwToV df.mvs]) + right -- df.rightSB stroke -- df.mvs include : [ArmHBar.normal df].base if SLAB : begin @@ -65,10 +65,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin include : df.markSet.p include : VBar.l df.leftSB 0 XH df.mvs include : nShoulder.shape - left -- (df.leftSB + [HSwToV df.mvs]) - right -- df.rightSB - top -- XH + top -- XH bottom -- Descender + left -- (df.leftSB + [HSwToV df.mvs]) + right -- df.rightSB stroke -- df.mvs include : [ArmHBar.right df].base if SLAB : begin @@ -84,10 +84,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin local df : include : DivFrame 1 include : df.markSet.b include : uBowl.shape - top -- Ascender + top -- Ascender bottom -- 0 - left -- df.leftSB - right -- (df.rightSB - [HSwToV df.mvs]) + left -- df.leftSB + right -- (df.rightSB - [HSwToV df.mvs]) stroke -- df.mvs include : VBar.r df.rightSB 0 [mix 0 XH 0.6] df.mvs include : [ArmHBar.normal df].high @@ -100,10 +100,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin include : df.markSet.b include : VBar.l df.leftSB Descender XH df.mvs include : nShoulder.shape - left -- (df.leftSB + [HSwToV df.mvs]) - right -- df.rightSB - top -- XH + top -- XH bottom -- 0 + left -- (df.leftSB + [HSwToV df.mvs]) + right -- df.rightSB stroke -- df.mvs include : [ArmHBar.normal df].desc if SLAB : begin @@ -118,10 +118,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin include : df.markSet.bp include : VBar.l df.leftSB Descender Ascender df.mvs include : nShoulder.shape - left -- (df.leftSB + [HSwToV df.mvs]) - right -- df.rightSB - top -- XH + top -- XH bottom -- 0 + left -- (df.leftSB + [HSwToV df.mvs]) + right -- df.rightSB stroke -- df.mvs if SLAB : begin local sf : SerifFrame.fromDf df Ascender Descender @@ -133,18 +133,23 @@ glyph-block Letter-Armenian-Lower-U-Group : begin create-glyph 'armn/xeh' 0x56D : glyph-proc local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.bp + local subDf : df.slice 3 2 OX include : uBowl.shape - top -- (XH / 2) + top -- (XH / 2) bottom -- 0 - left -- (df.middle - [HSwToV : df.mvs / 2]) - right -- (df.rightSB - [HSwToV df.mvs]) + left -- (df.middle - [HSwToV : 0.5 * df.mvs]) + right -- (df.rightSB - [HSwToV df.mvs]) stroke -- df.mvs + ada -- subDf.smallArchDepthA + adb -- subDf.smallArchDepthB include : nShoulder.shape - top -- XH + top -- XH bottom -- (XH / 2) - left -- (df.leftSB + [HSwToV df.mvs]) - right -- (df.middle + [HSwToV : df.mvs / 2]) + left -- (df.leftSB + [HSwToV df.mvs]) + right -- (df.middle + [HSwToV : 0.5 * df.mvs]) stroke -- df.mvs + ada -- subDf.smallArchDepthA + adb -- subDf.smallArchDepthB include : VBar.l df.leftSB Descender Ascender df.mvs include : VBar.r df.rightSB 0 XH df.mvs if SLAB : begin @@ -160,10 +165,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin local df : include : DivFrame 1 include : df.markSet.bp include : uBowl.shape - top -- Ascender + top -- Ascender bottom -- 0 - left -- df.leftSB - right -- (df.rightSB - [HSwToV df.mvs]) + left -- df.leftSB + right -- (df.rightSB - [HSwToV df.mvs]) stroke -- df.mvs include : VBar.r df.rightSB Descender XH df.mvs if SLAB : begin @@ -180,10 +185,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin include : df.markSet.b include : VBar.l df.leftSB 0 Ascender df.mvs include : nShoulder.shape - left -- (df.leftSB + [HSwToV df.mvs]) - right -- df.rightSB - top -- XH + top -- XH bottom -- 0 + left -- (df.leftSB + [HSwToV df.mvs]) + right -- df.rightSB stroke -- df.mvs if SLAB : begin local sf : SerifFrame.fromDf df Ascender 0 @@ -197,10 +202,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin include : df.markSet.p include : VBar.l df.leftSB 0 XH df.mvs include : nShoulder.shape - left -- (df.leftSB + [HSwToV df.mvs]) - right -- df.rightSB - top -- XH + top -- XH bottom -- Descender + left -- (df.leftSB + [HSwToV df.mvs]) + right -- df.rightSB stroke -- df.mvs include : [ArmHBar.right df].desc if SLAB : begin @@ -213,10 +218,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin local df : include : DivFrame 1 include : df.markSet.b include : uBowl.shape - top -- XH + top -- XH bottom -- 0 - left -- df.leftSB - right -- (df.rightSB - [HSwToV df.mvs]) + left -- df.leftSB + right -- (df.rightSB - [HSwToV df.mvs]) stroke -- df.mvs include : VBar.r df.rightSB 0 Ascender df.mvs include : [ArmHBar.right df].asc @@ -230,10 +235,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin local df : include : DivFrame 1 include : df.markSet.b include : uBowl.shape - top -- Ascender + top -- Ascender bottom -- 0 - left -- df.leftSB - right -- (df.rightSB - [HSwToV df.mvs]) + left -- df.leftSB + right -- (df.rightSB - [HSwToV df.mvs]) stroke -- df.mvs include : VBar.r df.rightSB 0 XH df.mvs include : [ArmHBar.left df].asc @@ -248,10 +253,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin include : df.markSet.e include : VBar.l df.leftSB 0 XH df.mvs include : nShoulder.shape - left -- (df.leftSB + [HSwToV df.mvs]) - right -- df.rightSB - top -- XH + top -- XH bottom -- 0 + left -- (df.leftSB + [HSwToV df.mvs]) + right -- df.rightSB stroke -- df.mvs if SLAB : begin local sf : SerifFrame.fromDf df XH 0 @@ -279,14 +284,14 @@ glyph-block Letter-Armenian-Lower-U-Group : begin include : VBar.l df.leftSB 0 XH df.mvs # Combination of nShoulder.knots and the straight 2 shape - local left : Math.max df.middle : df.rightSB - [HSwToV df.mvs] - jut + local left : Math.max df.middle : (df.rightSB - [HSwToV df.mvs]) - jut include : dispiro widths.rhs df.shoulderFine flat (df.leftSB + [HSwToV : df.mvs - df.shoulderFine]) (XH - SmallArchDepthA - TINY) curl (df.leftSB + [HSwToV : df.mvs - df.shoulderFine]) (XH - SmallArchDepthA) arch.rhs XH (sw -- df.mvs) (swBefore -- df.shoulderFine) TwoNeck df XH 0 left - include : HBar.b left (left + [HSwToV df.mvs] + jut) 0 df.mvs + include : HBar.b left ((left + [HSwToV df.mvs]) + jut) 0 df.mvs if SLAB : begin local sf : SerifFrame.fromDf df XH 0 include sf.lt.outer @@ -294,10 +299,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin # Alternate straight 'n' form # include : nShoulder.shape - # left -- (df.leftSB + [HSwToV df.mvs]) - # right -- df.rightSB - # top -- XH + # top -- XH # bottom -- 0 + # left -- (df.leftSB + [HSwToV df.mvs]) + # right -- df.rightSB # stroke -- df.mvs # include : [ArmHBar.right df].base # if SLAB : begin @@ -310,10 +315,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin local df : include : DivFrame 1 include : df.markSet.e include : uBowl.shape - top -- XH + top -- XH bottom -- 0 - left -- df.leftSB - right -- (df.rightSB - [HSwToV df.mvs]) + left -- df.leftSB + right -- (df.rightSB - [HSwToV df.mvs]) stroke -- df.mvs include : VBar.r df.rightSB 0 XH df.mvs if SLAB : begin @@ -327,10 +332,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin local df : include : DivFrame 1 include : df.markSet.bp include : uBowl.shape - top -- XH + top -- XH bottom -- 0 - left -- df.leftSB - right -- (df.rightSB - [HSwToV df.mvs]) + left -- df.leftSB + right -- (df.rightSB - [HSwToV df.mvs]) stroke -- df.mvs include : VBar.r df.rightSB Descender Ascender df.mvs include : [ArmHBar.right df].desc @@ -343,18 +348,23 @@ glyph-block Letter-Armenian-Lower-U-Group : begin create-glyph 'armn/tiun' 0x57F : glyph-proc local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e + local subDf : df.slice 3 2 OX include : uBowl.shape - top -- XH + top -- XH bottom -- 0 - left -- df.leftSB - right -- (df.middle - [HSwToV : 0.5 * df.mvs]) + left -- df.leftSB + right -- (df.middle - [HSwToV : 0.5 * df.mvs]) stroke -- df.mvs + ada -- subDf.smallArchDepthA + adb -- subDf.smallArchDepthB include : nShoulder.shape - top -- XH + top -- XH bottom -- 0 - left -- (df.middle + [HSwToV : df.mvs / 2]) - right -- df.rightSB + left -- (df.middle + [HSwToV : 0.5 * df.mvs]) + right -- df.rightSB stroke -- df.mvs + ada -- subDf.smallArchDepthA + adb -- subDf.smallArchDepthB include : VBar.m df.middle 0 XH df.mvs if SLAB : begin local sf : SerifFrame.fromDf df XH 0 @@ -367,10 +377,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin local df : include : DivFrame 1 include : df.markSet.b include : nShoulder.shape - top -- XH + top -- XH bottom -- 0 - left -- (df.leftSB + [HSwToV df.mvs]) - right -- df.rightSB + left -- (df.leftSB + [HSwToV df.mvs]) + right -- df.rightSB stroke -- df.mvs include : VBar.l df.leftSB Descender XH df.mvs if SLAB : begin @@ -383,18 +393,23 @@ glyph-block Letter-Armenian-Lower-U-Group : begin create-glyph 'armn/piur' 0x583 : glyph-proc local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.bp + local subDf : df.slice 3 2 OX include : uBowl.shape - top -- XH + top -- XH bottom -- 0 - left -- df.leftSB - right -- (df.middle - [HSwToV : 0.5 * df.mvs]) + left -- df.leftSB + right -- (df.middle - [HSwToV : 0.5 * df.mvs]) stroke -- df.mvs + ada -- subDf.smallArchDepthA + adb -- subDf.smallArchDepthB include : nShoulder.shape - top -- XH + top -- XH bottom -- 0 - left -- (df.middle + [HSwToV : df.mvs / 2]) - right -- df.rightSB + left -- (df.middle + [HSwToV : 0.5 * df.mvs]) + right -- df.rightSB stroke -- df.mvs + ada -- subDf.smallArchDepthA + adb -- subDf.smallArchDepthB include : VBar.m df.middle Descender Ascender df.mvs if SLAB : begin local sf : SerifFrame.fromDf df XH 0 @@ -408,12 +423,15 @@ glyph-block Letter-Armenian-Lower-U-Group : begin create-glyph 'armn/ew' 0x587 : glyph-proc local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.b + local subDf : df.slice 3 2 OX include : uBowl.shape - top -- Ascender + top -- Ascender bottom -- 0 - left -- df.leftSB - right -- (df.middle - [HSwToV : 0.5 * df.mvs]) + left -- df.leftSB + right -- (df.middle - [HSwToV : 0.5 * df.mvs]) stroke -- df.mvs + ada -- subDf.smallArchDepthA + adb -- subDf.smallArchDepthB include : VBar.m df.middle 0 XH df.mvs include : HBar.b df.middle df.rightSB 0 df.mvs if SLAB : begin diff --git a/packages/font-glyphs/src/letter/armenian/upper-co.ptl b/packages/font-glyphs/src/letter/armenian/upper-co.ptl index 4f1650551..194e154ac 100644 --- a/packages/font-glyphs/src/letter/armenian/upper-co.ptl +++ b/packages/font-glyphs/src/letter/armenian/upper-co.ptl @@ -27,15 +27,15 @@ glyph-block Letter-Armenian-Upper-Co : begin flat (df.leftSB - jut + [HSwToV : 0.5 * df.mvs]) midyBot curl df.middle midyBot archv - flatside.ru df.rightSB midyBot CAP ArchDepthA ArchDepthB 0 + g4 df.rightSB [mix midyBot CAP (ArchDepthA / (ArchDepthA + ArchDepthB))] arch.lhs CAP (sw -- df.mvs) - flatside.ld df.leftSB midyBot CAP ArchDepthA ArchDepthB 0 + g4 df.leftSB [mix CAP midyBot (ArchDepthA / (ArchDepthA + ArchDepthB))] arcvh straight.right.end df.middle midyBot [heading Rightward] include : dispiro widths.rhs df.mvs straight.right.start df.middle midyTop [heading Rightward] archv - flatside.rd df.rightSB 0 midyTop ArchDepthA ArchDepthB + g4 (df.rightSB - OX) [mix midyTop 0 (ArchDepthB / (ArchDepthA + ArchDepthB))] hookend 0 (sw -- df.mvs) g4 (df.leftSB + OX) Hook diff --git a/packages/font-glyphs/src/letter/armenian/upper-gim-group.ptl b/packages/font-glyphs/src/letter/armenian/upper-gim-group.ptl index e18f7b2d3..1151483f8 100644 --- a/packages/font-glyphs/src/letter/armenian/upper-gim-group.ptl +++ b/packages/font-glyphs/src/letter/armenian/upper-gim-group.ptl @@ -57,7 +57,7 @@ glyph-block Letter-Armenian-Upper-Gim-Group : begin flat df.rightSB Ascender [heading Downward] curl df.rightSB (0 + SmallArchDepthA) arch.rhs 0 (sw -- df.mvs) - flatside.lu df.leftSB 0 highBarPos ArchDepthA ArchDepthB + flatside.lu df.leftSB 0 highBarPos SmallArchDepthA SmallArchDepthB arcvh flat df.middle highBarPos curl (df.rightSB + jut * [if SLAB 1.5 1] - [HSwToV : 0.5 * df.mvs]) highBarPos diff --git a/packages/font-glyphs/src/letter/armenian/upper-ho.ptl b/packages/font-glyphs/src/letter/armenian/upper-ho.ptl index 2c57d800b..9d91dc1d2 100644 --- a/packages/font-glyphs/src/letter/armenian/upper-ho.ptl +++ b/packages/font-glyphs/src/letter/armenian/upper-ho.ptl @@ -29,7 +29,7 @@ glyph-block Letter-Armenian-Upper-Ho : begin flat x1 CAP curl df.middle CAP [heading Rightward] archv - flatside.rd df.rightSB midyBot CAP ArchDepthA ArchDepthB + g4 (df.rightSB + O * 2) [mix CAP midyBot (ArchDepthB / (ArchDepthA + ArchDepthB))] arcvh straight.left.end df.middle midyBot [heading Leftward] @@ -38,8 +38,8 @@ glyph-block Letter-Armenian-Upper-Ho : begin flat (df.leftSB - jut + [HSwToV : 0.5 * df.mvs]) midyTop curl df.middle midyTop [heading Rightward] archv - flat (df.rightSB - O * 2) [YSmoothMidR midyTop 0 ArchDepthA ArchDepthB] - curl (df.rightSB - O * 2) 0 [heading Downward] + flat df.rightSB [if (ArchDepthA + ArchDepthB < midyTop) (midyTop - ArchDepthB) : mix midyTop 0 (ArchDepthB / (ArchDepthA + ArchDepthB))] + curl df.rightSB 0 [heading Downward] if SLAB : begin local sf : SerifFrame.fromDf df CAP 0 diff --git a/packages/font-glyphs/src/letter/armenian/upper-xeh.ptl b/packages/font-glyphs/src/letter/armenian/upper-xeh.ptl index 7c2d5d866..9270255d7 100644 --- a/packages/font-glyphs/src/letter/armenian/upper-xeh.ptl +++ b/packages/font-glyphs/src/letter/armenian/upper-xeh.ptl @@ -19,7 +19,8 @@ glyph-block Letter-Armenian-Upper-Xeh : begin include : df.markSet.capital include : VBar.l df.leftSB 0 CAP df.mvs include : HBar.t df.leftSB df.middle XH df.mvs - include : with-transform [ApparentTranslate shift 0] : UShape subDf XH 0 subDf.mvs + include : with-transform [ApparentTranslate shift 0] + UShape subDf XH 0 subDf.mvs subDf.archDepthA subDf.archDepthB if SLAB : begin local sf : SerifFrame.fromDf df CAP 0 local sf2 : SerifFrame.fromDf df XH 0 From 7c3b92242ab37bfd0c9822e44f3139f878599d2f Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Mon, 3 Feb 2025 20:21:27 -0500 Subject: [PATCH 02/23] Refine characters which use `UpwardHookShape`. (#2669) --- changes/32.5.1.md | 2 ++ .../font-glyphs/src/letter/cyrillic/el.ptl | 8 ++--- .../font-glyphs/src/letter/cyrillic/yeri.ptl | 6 ++-- .../src/letter/greek/lower-epsilon.ptl | 8 ++--- .../font-glyphs/src/letter/latin/lower-d.ptl | 4 +-- .../font-glyphs/src/letter/latin/lower-m.ptl | 4 +-- .../font-glyphs/src/letter/latin/upper-g.ptl | 30 +++++++++---------- .../font-glyphs/src/letter/latin/upper-h.ptl | 24 +++++++-------- .../font-glyphs/src/letter/latin/upper-t.ptl | 25 ++++++++-------- 9 files changed, 57 insertions(+), 54 deletions(-) diff --git a/changes/32.5.1.md b/changes/32.5.1.md index 76b8f7845..b9fdead09 100644 --- a/changes/32.5.1.md +++ b/changes/32.5.1.md @@ -1,4 +1,6 @@ * Refine shape of the following characters: + - CYRILLIC CAPITAL LETTER KOMI DJE (`U+0502`) ... CYRILLIC SMALL LETTER KOMI ZJE (`U+0505`). + - CYRILLIC CAPITAL LETTER KOMI LJE (`U+0508`) ... CYRILLIC SMALL LETTER KOMI TJE (`U+050F`). - ARMENIAN CAPITAL LETTER XEH (`U+053D`). - ARMENIAN CAPITAL LETTER CA (`U+053E`). - ARMENIAN CAPITAL LETTER HO (`U+0540`). diff --git a/packages/font-glyphs/src/letter/cyrillic/el.ptl b/packages/font-glyphs/src/letter/cyrillic/el.ptl index 7a53ef671..38cca99fd 100644 --- a/packages/font-glyphs/src/letter/cyrillic/el.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/el.ptl @@ -159,11 +159,11 @@ glyph-block Letter-Cyrillic-El : begin left -- (df.middle - [HSwToV : 0.5 * df.mvs]) right -- df.rightSB ybegin -- CAP - yend -- (CAP / 2) + yend -- (CAP / 2 + HalfStroke) ada -- (SmallArchDepthA * 0.6 * df.adws) adb -- (SmallArchDepthB * 0.6 * df.adws) sw -- df.mvs - local sf2 : [SerifFrame.fromDf df (CAP / 2) 0].slice 1 2 + local sf2 : [SerifFrame.fromDf df (CAP / 2 + HalfStroke) 0].slice 1 2 if SLAB : include sf2.rt.full create-glyph 'cyrl/ljeKomi' 0x509 : glyph-proc @@ -176,9 +176,9 @@ glyph-block Letter-Cyrillic-El : begin left -- (df.middle - [HSwToV : 0.5 * df.mvs]) right -- df.rightSB ybegin -- XH - yend -- (XH / 2) + yend -- (XH / 2 + HalfStroke) ada -- (SmallArchDepthA * 0.6 * df.adws) adb -- (SmallArchDepthB * 0.6 * df.adws) sw -- df.mvs - local sf2 : [SerifFrame.fromDf df (XH / 2) 0].slice 1 2 + local sf2 : [SerifFrame.fromDf df (XH / 2 + HalfStroke) 0].slice 1 2 if SLAB : include sf2.rt.full diff --git a/packages/font-glyphs/src/letter/cyrillic/yeri.ptl b/packages/font-glyphs/src/letter/cyrillic/yeri.ptl index 754874976..cd1806c1d 100644 --- a/packages/font-glyphs/src/letter/cyrillic/yeri.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/yeri.ptl @@ -405,14 +405,14 @@ glyph-block Letter-Cyrillic-Yeri : begin local xm : df.middle + [HSwToV : 0.5 * df.mvs] include : RevYeri.RoundShape CAP df.leftSB xm df.mvs include : UpwardHookShape - left -- df.middle - [HSwToV : 0.5 * df.mvs] + left -- (df.middle - [HSwToV : 0.5 * df.mvs]) right -- df.rightSB ybegin -- CAP - yend -- (CAP / 2) + yend -- (CAP / 2 + HalfStroke) ada -- (SmallArchDepthA * 0.6 * df.adws) adb -- (SmallArchDepthB * 0.6 * df.adws) sw -- df.mvs if SLAB : begin include : HSerif.mt df.middle CAP Jut df.mvs - local sf2 : [SerifFrame.fromDf df (CAP / 2) 0].slice 1 2 + local sf2 : [SerifFrame.fromDf df (CAP / 2 + HalfStroke) 0].slice 1 2 include sf2.rt.full diff --git a/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl b/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl index 1b9fbd50e..af5622015 100644 --- a/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl @@ -308,12 +308,12 @@ glyph-block Letter-Greek-Lower-Epsilon : begin left -- (xm - OX * 2 - [HSwToV stroke]) right -- df.rightSB ybegin -- [YSmoothMidR (midy + stroke / 2) 0] - yend -- (CAP / 2) + yend -- (CAP / 2 + HalfStroke) ada -- (ArchDepthA * 0.6 * df.adws) adb -- (ArchDepthB * 0.6 * df.adws) sw -- stroke include : ze.AutoStartSerifL - local sf2 : [SerifFrame.fromDf df (CAP / 2) 0].slice 1 2 + local sf2 : [SerifFrame.fromDf df (CAP / 2 + HalfStroke) 0].slice 1 2 if SLAB : include sf2.rt.full create-glyph "cyrl/zjeKomi.\(suffix)" : glyph-proc @@ -332,12 +332,12 @@ glyph-block Letter-Greek-Lower-Epsilon : begin left -- (xm - OX * 2 - [HSwToV stroke]) right -- df.rightSB ybegin -- [YSmoothMidR (midy + stroke / 2) 0] - yend -- (XH / 2) + yend -- (XH / 2 + HalfStroke) ada -- (SmallArchDepthA * 0.6 * df.adws) adb -- (SmallArchDepthB * 0.6 * df.adws) sw -- stroke include : ze.AutoStartSerifL - local sf2 : [SerifFrame.fromDf df (XH / 2) 0].slice 1 2 + local sf2 : [SerifFrame.fromDf df (XH / 2 + HalfStroke) 0].slice 1 2 if SLAB : include sf2.rt.full create-glyph "cyrl/KsiBase.\(suffix)" : glyph-proc diff --git a/packages/font-glyphs/src/letter/latin/lower-d.ptl b/packages/font-glyphs/src/letter/latin/lower-d.ptl index b2132da0b..7cc0209be 100644 --- a/packages/font-glyphs/src/letter/latin/lower-d.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-d.ptl @@ -135,14 +135,14 @@ glyph-block Letter-Latin-Lower-D : begin left -- dfHalf.leftSB right -- dfHalf.rightSB ybegin -- Ascender - yend -- (XH / 2) + yend -- (XH / 2 + HalfStroke) ada -- (SmallArchDepthA * 0.6 * df.adws) adb -- (SmallArchDepthB * 0.6 * df.adws) sw -- df.mvs if topSerif : include : topSerif dfHalf Ascender if SLAB : begin - local sf2 : [SerifFrame.fromDf df (XH / 2) 0].slice 1 2 + local sf2 : [SerifFrame.fromDf df (XH / 2 + HalfStroke) 0].slice 1 2 include sf2.rt.full select-variant 'd' 'd' diff --git a/packages/font-glyphs/src/letter/latin/lower-m.ptl b/packages/font-glyphs/src/letter/latin/lower-m.ptl index 02ee7af5e..0ffe711d7 100644 --- a/packages/font-glyphs/src/letter/latin/lower-m.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-m.ptl @@ -289,13 +289,13 @@ glyph-block Letter-Latin-Lower-M : begin left -- (subDf.rightSB - [HSwToV subDf.mvs]) right -- df.rightSB ybegin -- (XH / 2) - yend -- (XH / 2) + yend -- (XH / 2 + HalfStroke) ada -- (SmallArchDepthA * 0.5 * df.adws) adb -- (SmallArchDepthB * 0.5 * df.adws) sw -- subDf.mvs include : Serifs subDf XH 0 0 (XH / 2) true false if SLAB : begin - local sf2 : [SerifFrame.fromDf df (XH / 2) 0].slice 2 3 + local sf2 : [SerifFrame.fromDf df (XH / 2 + HalfStroke) 0].slice 2 3 include sf2.rt.full create-glyph "cyrl/tje.italic/base/corner.\(suffix)" : glyph-proc diff --git a/packages/font-glyphs/src/letter/latin/upper-g.ptl b/packages/font-glyphs/src/letter/latin/upper-g.ptl index d71d6cf1a..9c0e59d51 100644 --- a/packages/font-glyphs/src/letter/latin/upper-g.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-g.ptl @@ -26,15 +26,15 @@ glyph-block Letter-Latin-Upper-G : begin define SLAB-INWARD 2 define SLAB-HOOK-TOP 10 - define [GShape toothShape slabShape crossBarShape top ada adb yBarOverride] : glyph-proc + define [GShape toothShape slabShape crossBarShape top ada adb hook yBarOverride] : glyph-proc local yBar : fallback yBarOverride (top * 0.52 + QuarterStroke) local fine ShoulderFine local knots : match slabShape ([Just SLAB-LETTER] || [Just SLAB-HOOK-TOP]) : begin - SerifedArcStart.RtlLhs RightSB top Stroke Hook (slabShape === SLAB-HOOK-TOP) - [Just SLAB-INWARD] : InwardSlabArcStart.RtlLhs RightSB top Stroke Hook - __ : list [widths.lhs] [g4 RightSB (top - Hook)] [hookstart top] + SerifedArcStart.RtlLhs RightSB top Stroke hook (slabShape === SLAB-HOOK-TOP) + [Just SLAB-INWARD] : InwardSlabArcStart.RtlLhs RightSB top Stroke hook + __ : list [widths.lhs] [g4 RightSB (top - hook)] [hookstart top] knots.push flat (SB + OX) (top - ada) @@ -54,8 +54,8 @@ glyph-block Letter-Latin-Upper-G : begin include : union dispiro.apply null knots - if (slabShape === SLAB-LETTER) [ArcStartSerif.R RightSB top Stroke Hook] [glyph-proc] - if (slabShape === SLAB-INWARD) [ArcStartSerif.InwardR RightSB top Stroke Hook] [glyph-proc] + if (slabShape === SLAB-LETTER) [ArcStartSerif.R RightSB top Stroke hook] [glyph-proc] + if (slabShape === SLAB-INWARD) [ArcStartSerif.InwardR RightSB top Stroke hook] [glyph-proc] match crossBarShape [Just CROSSBAR-NONE] : glyph-proc [Just CROSSBAR-HOOKED] : HBar.t Middle RightSB yBar @@ -63,7 +63,7 @@ glyph-block Letter-Latin-Upper-G : begin match toothShape [Just TOOTHED] : union VBar.r RightSB (ada + O) yBar - VBar.r RightSB ada 0 [Math.max [AdviceStroke 5] (Stroke - fine / 2)] + VBar.r RightSB ada 0 [Math.max (Stroke - fine / 2) : AdviceStroke 5] [Just TOOTHLESS-CORNER] : VBar.r RightSB DToothlessRise yBar [Just TOOTHLESS-ROUNDED] : glyph-proc @@ -90,19 +90,19 @@ glyph-block Letter-Latin-Upper-G : begin foreach { suffix { shape slabType crossBarShape } } [Object.entries GConfig] : begin create-glyph "G.\(suffix)" : glyph-proc include : MarkSet.capital - include : GShape shape slabType crossBarShape CAP ArchDepthA ArchDepthB + include : GShape shape slabType crossBarShape CAP ArchDepthA ArchDepthB Hook create-glyph "GHookTop.\(suffix)" : glyph-proc include : MarkSet.capital - include : GShape shape SLAB-HOOK-TOP crossBarShape CAP ArchDepthA ArchDepthB + include : GShape shape SLAB-HOOK-TOP crossBarShape CAP ArchDepthA ArchDepthB Hook include : TopHook.toRight.arcStart RightSB CAP Hook include : ExtendAboveBaseAnchors (CAP + Ascender - XH) include : LeaningAnchor.Above.VBar.r RightSB create-glyph "smcpG.\(suffix)" : glyph-proc include : MarkSet.e - include : GShape shape slabType crossBarShape XH ArchDepthA ArchDepthB + include : GShape shape slabType crossBarShape XH ArchDepthA ArchDepthB Hook create-glyph "smcpGHookTop.\(suffix)" : glyph-proc include : MarkSet.e - include : GShape shape SLAB-HOOK-TOP crossBarShape XH ArchDepthA ArchDepthB + include : GShape shape SLAB-HOOK-TOP crossBarShape XH ArchDepthA ArchDepthB Hook include : TopHook.toRight.arcStart RightSB XH Hook include : ExtendAboveBaseAnchors Ascender include : LeaningAnchor.Above.VBar.r RightSB @@ -128,16 +128,16 @@ glyph-block Letter-Latin-Upper-G : begin foreach { suffix { slabType } } [Object.entries Config] : begin create-glyph "cyrl/SjeKomi.\(suffix)" : glyph-proc include : MarkSet.capital - include : GShape TOOTHLESS-ROUNDED slabType CROSSBAR-NONE CAP ArchDepthA ArchDepthB (CAP / 2) + include : GShape TOOTHLESS-ROUNDED slabType CROSSBAR-NONE CAP ArchDepthA ArchDepthB Hook (CAP / 2 + HalfStroke) if SLAB : begin - local sf2 : SerifFrame.fromDf [DivFrame 1] (CAP / 2) 0 + local sf2 : SerifFrame.fromDf [DivFrame 1] (CAP / 2 + HalfStroke) 0 include sf2.rt.full create-glyph "cyrl/sjeKomi.\(suffix)" : glyph-proc include : MarkSet.e - include : GShape TOOTHLESS-ROUNDED slabType CROSSBAR-NONE XH SmallArchDepthA SmallArchDepthB (XH / 2) + include : GShape TOOTHLESS-ROUNDED slabType CROSSBAR-NONE XH SmallArchDepthA SmallArchDepthB AHook (XH / 2 + HalfStroke) if SLAB : begin - local sf2 : SerifFrame.fromDf [DivFrame 1] (XH / 2) 0 + local sf2 : SerifFrame.fromDf [DivFrame 1] (XH / 2 + HalfStroke) 0 include sf2.rt.full select-variant 'cyrl/SjeKomi' 0x50C (follow -- 'CTopSerifOnly') diff --git a/packages/font-glyphs/src/letter/latin/upper-h.ptl b/packages/font-glyphs/src/letter/latin/upper-h.ptl index 578e714f9..823be8a1e 100644 --- a/packages/font-glyphs/src/letter/latin/upper-h.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-h.ptl @@ -30,7 +30,7 @@ glyph-block Letter-Latin-Upper-H : begin define [HSerifs slabType t b l r sw] : begin local sf : SerifFrame t b l r (swRef -- [fallback sw Stroke]) return : match slabType - [Just SLAB-NONE] : glyph-proc + [Just SLAB-NONE] : glyph-proc [Just SLAB-TOP-LEFT] : begin sf.lt.outer [Just SLAB-TOP-LEFT-BOTTOM-RIGHT] : composite-proc sf.lt.outer sf.rb.outer [Just SLAB-TAILED-CYRILLIC] : composite-proc sf.lt.full sf.rt.full sf.lb.full @@ -91,13 +91,13 @@ glyph-block Letter-Latin-Upper-H : begin include : VBar.l df.leftSB 0 top df.mvs include : HBar.m SB df.middle (top / 2) include : UpwardHookShape - left -- df.middle - [HSwToV : 0.5 * df.mvs] - right -- df.rightSB + left -- (df.middle - [HSwToV : 0.5 * df.mvs]) + right -- df.rightSB ybegin -- top - yend -- yend - ada -- (SmallArchDepthA * 0.6 * df.adws) - adb -- (SmallArchDepthB * 0.6 * df.adws) - sw -- df.mvs + yend -- yend + ada -- (SmallArchDepthA * 0.6 * df.adws) + adb -- (SmallArchDepthB * 0.6 * df.adws) + sw -- df.mvs include : HSerifs slabType top 0 df.leftSB (df.middle + [HSwToV : 0.5 * df.mvs]) df.mvs local sf2 : [SerifFrame.fromDf df yend 0].slice 1 2 @@ -206,12 +206,12 @@ glyph-block Letter-Latin-Upper-H : begin create-glyph "cyrl/NjeKomi.\(suffix)" : glyph-proc local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capital - include : HwairShape df CAP (CAP / 2) slabType + include : HwairShape df CAP (CAP / 2 + HalfStroke) slabType create-glyph "cyrl/njeKomi.\(suffix)" : glyph-proc local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e - include : HwairShape df XH (XH / 2) slabType + include : HwairShape df XH (XH / 2 + HalfStroke) slabType create-glyph "HHookTop.\(suffix)" : glyph-proc include [refer-glyph "H.\(suffix)"] AS_BASE ALSO_METRICS @@ -293,7 +293,7 @@ glyph-block Letter-Latin-Upper-H : begin select-variant 'HHookTop' 0xA7AA select-variant 'HStroke' 0x126 (follow -- 'H') - select-variant 'smcpHStroke' null (follow -- 'H') + select-variant 'smcpHStroke' (follow -- 'H') select-variant 'cyrl/EnMidHook' 0x0522 (follow -- 'cyrl/En') select-variant 'cyrl/enMidHook' 0x0523 (follow -- 'cyrl/en') @@ -338,9 +338,9 @@ glyph-block Letter-Latin-Upper-H : begin create-glyph 'mathbb/H' 0x210D : glyph-proc include : MarkSet.capital - include : VBar.l SB 0 CAP BBS + include : VBar.l SB 0 CAP BBS include : VBar.r RightSB 0 CAP BBS - include : VBar.l (SB + BBD) 0 CAP BBS + include : VBar.l (SB + BBD) 0 CAP BBS include : VBar.r (RightSB - BBD) 0 CAP BBS include : HBar.m (SB + BBD) (RightSB - BBD) (CAP * HBarPos) BBS include : HBar.t SB (SB + BBD) CAP BBS diff --git a/packages/font-glyphs/src/letter/latin/upper-t.ptl b/packages/font-glyphs/src/letter/latin/upper-t.ptl index f5824c14c..0de610817 100644 --- a/packages/font-glyphs/src/letter/latin/upper-t.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-t.ptl @@ -10,7 +10,7 @@ glyph-block Letter-Latin-Upper-T : begin glyph-block-import Common-Derivatives glyph-block-import Mark-Adjustment : LeaningAnchor glyph-block-import Letter-Blackboard : BBS BBD - glyph-block-import Letter-Latin-Lower-M + glyph-block-import Letter-Latin-Upper-F : EFVJutLength glyph-block-import Letter-Shared : CreateAccentedComposition CreateTurnedLetter glyph-block-import Letter-Shared-Shapes : LetterBarOverlay UpwardHookShape glyph-block-import Letter-Shared-Shapes : CyrDescender SerifFrame FlatHookDepth LeftHook RetroflexHook @@ -45,15 +45,16 @@ glyph-block Letter-Latin-Upper-T : begin left -- left right -- df.rightSB ybegin -- top - yend -- (top / 2) + yend -- (top / 2 + HalfStroke) ada -- (SmallArchDepthA * 0.6 * df.adws) adb -- (SmallArchDepthB * 0.6 * df.adws) sw -- df.mvs if doTopSerifs : begin - include : tagged 'serifRT' : VSerif.dr xTopBarRight top VJut - include : tagged 'serifLT' : VSerif.dl xTopBarLeft top VJut - local sf2 : [SerifFrame.fromDf df (top / 2) 0].slice 1 2 + local { jutTop jutBot jutMid } : EFVJutLength top 0.5 df.mvs + include : tagged 'serifRT' : VSerif.dr xTopBarRight top jutTop + include : tagged 'serifLT' : VSerif.dl xTopBarLeft top jutTop + local sf2 : [SerifFrame.fromDf df (top / 2 + HalfStroke) 0].slice 1 2 if SLAB : include sf2.rt.full define [TweUpperShape df top doTopSerifs] : glyph-proc @@ -66,8 +67,8 @@ glyph-block Letter-Latin-Upper-T : begin local xRight : df.width - 1.5 * df.leftSB local xLeft : df.leftSB - ox - include : tagged 'strokeLT' : HBar.t xLeft xRight top - include : tagged 'strokeV' : VBar.r xRight 0 top + include : tagged 'strokeLT' : HBar.t xLeft xRight top + include : tagged 'strokeV' : VBar.r xRight 0 top if doTopSerifs : begin include : tagged 'serifLT' : VSerif.dl xLeft top VJut @@ -82,7 +83,7 @@ glyph-block Letter-Latin-Upper-T : begin glyph-block-export TConfig define TConfig : object - serifless { 1 false false } + serifless { 1 false false } motionSerifed { para.advanceScaleT true false } serifed { para.advanceScaleT true true } @@ -149,7 +150,7 @@ glyph-block Letter-Latin-Upper-T : begin y -- 0 jut -- [if doSB MidJutCenter Jut] - create-glyph "TRTailBR.\(suffix)" : glyph-proc + create-glyph "TRTail.\(suffix)" : glyph-proc local df : DivFrame adws include [refer-glyph "T.\(suffix)"] AS_BASE ALSO_METRICS include : df.markSet.capital @@ -186,7 +187,7 @@ glyph-block Letter-Latin-Upper-T : begin alias 'cyrl/te/reduced.upright' null 'smcpT' select-variant 'cyrl/teDescender.upright' (follow -- 'T') - select-variant 'TRTailBR' 0x1AE (follow -- 'T/rtailBase') + select-variant 'TRTail' 0x1AE (follow -- 'T/rtailBase') select-variant 'cyrl/TjeKomi' 0x50E (follow -- 'T/rtailBase') select-variant 'cyrl/tjeKomi.upright' null (follow -- 'T/rtailBase') @@ -215,8 +216,8 @@ glyph-block Letter-Latin-Upper-T : begin if SLAB : begin include : tagged 'serifRT' : VSerif.dr r CAP VJut include : tagged 'serifLT' : VSerif.dl l CAP VJut - include : tagged 'serifRB' : VSerif.ur r 0 VJut - include : tagged 'serifLB' : VSerif.ul l 0 VJut + include : tagged 'serifRB' : VSerif.ur r 0 VJut + include : tagged 'serifLB' : VSerif.ul l 0 VJut create-glyph 'mathbb/T' 0x1D54B : glyph-proc local df : include : DivFrame 1 From 6d47fffcd1aa1e51616d91dc5325c87ab80af6c3 Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Wed, 5 Feb 2025 00:51:58 -0500 Subject: [PATCH 03/23] Optimize serifs of capital half/turned H. (#2670) --- .../font-glyphs/src/letter/latin/upper-h.ptl | 57 ++++++++++++++----- 1 file changed, 42 insertions(+), 15 deletions(-) diff --git a/packages/font-glyphs/src/letter/latin/upper-h.ptl b/packages/font-glyphs/src/letter/latin/upper-h.ptl index 823be8a1e..67ab5f688 100644 --- a/packages/font-glyphs/src/letter/latin/upper-h.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-h.ptl @@ -39,6 +39,42 @@ glyph-block Letter-Latin-Upper-H : begin [Just SLAB-TAILED-CYRILLIC-BGR] : composite-proc sf.lt.outer sf.rt.inner sf.lb.full [Just SLAB-SMALL-HETA] : NeedSlab SLAB : begin sf.lt.outer + define [LeftHalfSerifs slabType t b l r sw] : begin + local sf : SerifFrame t b l r (swRef -- [fallback sw Stroke]) + return : match slabType + [Just SLAB-NONE] : glyph-proc + [Just SLAB-TOP-LEFT] : begin sf.lt.outer + [Just SLAB-TOP-LEFT-BOTTOM-RIGHT] : begin sf.lt.outer + [Just SLAB-TAILED-CYRILLIC] : composite-proc sf.lt.fullSide sf.lb.fullSide + [Just SLAB-ALL] : composite-proc sf.lt.fullSide sf.lb.fullSide + [Just SLAB-ALL-BGR] : composite-proc sf.lt.outer sf.lb.fullSide + [Just SLAB-TAILED-CYRILLIC-BGR] : composite-proc sf.lt.outer sf.lb.fullSide + [Just SLAB-SMALL-HETA] : NeedSlab SLAB : begin sf.lt.outer + + define [RightHalfSerifs slabType t b l r sw] : begin + local sf : SerifFrame t b l r (swRef -- [fallback sw Stroke]) + return : match slabType + [Just SLAB-NONE] : glyph-proc + [Just SLAB-TOP-LEFT] : glyph-proc + [Just SLAB-TOP-LEFT-BOTTOM-RIGHT] : begin sf.rb.outer + [Just SLAB-TAILED-CYRILLIC] : begin sf.rt.fullSide + [Just SLAB-ALL] : composite-proc sf.rt.fullSide sf.rb.fullSide + [Just SLAB-ALL-BGR] : composite-proc sf.rt.inner sf.rb.fullSide + [Just SLAB-TAILED-CYRILLIC-BGR] : begin sf.rt.inner + [Just SLAB-SMALL-HETA] : glyph-proc + + define [TurnedSerifs slabType t b l r sw] : begin + local sf : SerifFrame t b l r (swRef -- [fallback sw Stroke]) + return : match slabType + [Just SLAB-NONE] : glyph-proc + [Just SLAB-TOP-LEFT] : begin sf.lt.outer + [Just SLAB-TOP-LEFT-BOTTOM-RIGHT] : composite-proc sf.lt.outer sf.rb.outer + [Just SLAB-TAILED-CYRILLIC] : composite-proc sf.lt.full sf.rt.full + [Just SLAB-ALL] : composite-proc sf.lt.full sf.rt.full sf.rb.fullSide + [Just SLAB-ALL-BGR] : composite-proc sf.lt.outer sf.rt.inner sf.rb.fullSide + [Just SLAB-TAILED-CYRILLIC-BGR] : composite-proc sf.lt.outer sf.rt.inner + [Just SLAB-SMALL-HETA] : NeedSlab SLAB : begin sf.lt.outer + define [HShape l r top _sw] : glyph-proc local sw : fallback _sw Stroke include : tagged 'strokeL' : VBar.l l 0 top sw @@ -139,8 +175,7 @@ glyph-block Letter-Latin-Upper-H : begin create-glyph "HTurned.\(suffix)" : glyph-proc include : MarkSet.capital include : TurnedBody SB RightSB CAP - include : HSerifs slabType CAP 0 SB RightSB - eject-contour 'serifLB' + include : TurnedSerifs slabType CAP 0 SB RightSB create-glyph "smcpH.\(suffix)" : glyph-proc include : MarkSet.e @@ -151,33 +186,25 @@ glyph-block Letter-Latin-Upper-H : begin local df : include : DivFrame para.advanceScaleF include : df.markSet.capital include : LeftHalfBody df.leftSB df.rightSB CAP - include : HSerifs slabType CAP 0 df.leftSB df.rightSB - eject-contour 'serifRT' - eject-contour 'serifRB' + include : LeftHalfSerifs slabType CAP 0 df.leftSB df.rightSB create-glyph "rightHalfH.\(suffix)" : glyph-proc local df : include : DivFrame para.advanceScaleF include : df.markSet.capital include : RightHalfBody df.leftSB df.rightSB CAP - include : HSerifs slabType CAP 0 df.leftSB df.rightSB - eject-contour 'serifLT' - eject-contour 'serifLB' + include : RightHalfSerifs slabType CAP 0 df.leftSB df.rightSB create-glyph "leftHalfSmcpH.\(suffix)" : glyph-proc local df : include : DivFrame para.advanceScaleF include : df.markSet.e include : LeftHalfBody df.leftSB df.rightSB XH - include : HSerifs slabType XH 0 df.leftSB df.rightSB - eject-contour 'serifRT' - eject-contour 'serifRB' + include : LeftHalfSerifs slabType XH 0 df.leftSB df.rightSB create-glyph "rightHalfSmcpH.\(suffix)" : glyph-proc local df : include : DivFrame para.advanceScaleF include : df.markSet.e include : RightHalfBody df.leftSB df.rightSB XH - include : HSerifs slabType XH 0 df.leftSB df.rightSB - eject-contour 'serifLT' - eject-contour 'serifLB' + include : RightHalfSerifs slabType XH 0 df.leftSB df.rightSB define enGheDf : DivFrame para.advanceScaleM 3 @@ -276,7 +303,7 @@ glyph-block Letter-Latin-Upper-H : begin local df : include : DivFrame para.advanceScaleF include : df.markSet.e include : LeftHalfBody df.leftSB df.rightSB XH - include : HSerifs SLAB-SMALL-HETA XH 0 df.leftSB df.rightSB + include : LeftHalfSerifs SLAB-SMALL-HETA XH 0 df.leftSB df.rightSB derive-composites 'HDescender' 0x2C67 'H/descBase' [CyrDescender.rSideJut RightSB 0] From d251811dc963d59990551907323eeba196966d4f Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Wed, 5 Feb 2025 21:54:56 -0500 Subject: [PATCH 04/23] Refine shape of Cyrillic Capital Shha. (#2672) --- changes/32.5.1.md | 3 +++ .../font-glyphs/src/letter/cyrillic/che.ptl | 24 +++++++++++-------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/changes/32.5.1.md b/changes/32.5.1.md index b9fdead09..25fffed66 100644 --- a/changes/32.5.1.md +++ b/changes/32.5.1.md @@ -1,6 +1,8 @@ * Refine shape of the following characters: + - CYRILLIC CAPITAL LETTER SHHA (`U+04BA`). - CYRILLIC CAPITAL LETTER KOMI DJE (`U+0502`) ... CYRILLIC SMALL LETTER KOMI ZJE (`U+0505`). - CYRILLIC CAPITAL LETTER KOMI LJE (`U+0508`) ... CYRILLIC SMALL LETTER KOMI TJE (`U+050F`). + - CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER (`U+0526`). - ARMENIAN CAPITAL LETTER XEH (`U+053D`). - ARMENIAN CAPITAL LETTER CA (`U+053E`). - ARMENIAN CAPITAL LETTER HO (`U+0540`). @@ -13,3 +15,4 @@ - ARMENIAN SMALL LETTER PIWR (`U+0583`). - ARMENIAN SMALL LETTER FEH (`U+0586`). - ARMENIAN SMALL LIGATURE ECH YIWN (`U+0587`). + - CYRILLIC CAPITAL LETTER HWE (`U+A694`). diff --git a/packages/font-glyphs/src/letter/cyrillic/che.ptl b/packages/font-glyphs/src/letter/cyrillic/che.ptl index 2aed85012..09efcca29 100644 --- a/packages/font-glyphs/src/letter/cyrillic/che.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/che.ptl @@ -29,9 +29,10 @@ glyph-block Letter-Cyrillic-Che : begin TOP 5 ALL-BGR 6 TOP-BGR 7 + ALL-SYM 8 glyph-block-export CyrCheShape - define [CyrCheShape] : with-params [df top pyBar bodyType slabType [sw df.mvs] [yBarOffset DToothlessRise]] : glyph-proc + define [CyrCheShape] : with-params [df top pyBar bodyType slabType [sw df.mvs] [yBarOffset 0]] : glyph-proc local bar : top * [fallback pyBar 0.5] + yBarOffset include : tagged 'strokeR' : match bodyType @@ -42,13 +43,14 @@ glyph-block Letter-Cyrillic-Che : begin left -- df.leftSB right -- df.rightSB top -- top - bottom -- (bar - DToothlessRise - 0.5 * sw) + bottom -- (bar - 0.5 * sw) sw -- sw local sf : SerifFrame.fromDf df top 0 include : tagged 'serifLT' : match slabType [Just SERIFS.ALL] sf.lt.full [Just SERIFS.TOP] sf.lt.full + [Just SERIFS.ALL-SYM] sf.lt.full [Just SERIFS.ALL-BGR] sf.lt.outer [Just SERIFS.TOP-BGR] sf.lt.outer [Just SERIFS.TL-BR] sf.lt.outer @@ -57,20 +59,22 @@ glyph-block Letter-Cyrillic-Che : begin include : tagged 'SerifRT' : match slabType [Just SERIFS.ALL] sf.rt.full [Just SERIFS.TOP] sf.rt.full + [Just SERIFS.ALL-SYM] sf.rt.full [Just SERIFS.ALL-BGR] sf.rt.inner [Just SERIFS.TOP-BGR] sf.rt.inner __ : glyph-proc include : tagged 'SerifRB' : match slabType [Just SERIFS.ALL] sf.rb.fullSide [Just SERIFS.ALL-BGR] sf.rb.fullSide + [Just SERIFS.ALL-SYM] sf.rb.full [Just SERIFS.TL-BR] sf.rb.outer [Just SERIFS.BR] sf.rb.outer __ : glyph-proc - define [CyrCcheShape] : with-params [df top pyBar bodyType slabType [sw df.mvs] [yBarOffset DToothlessRise]] : glyph-proc + define [CyrCcheShape] : with-params [df top pyBar bodyType slabType [sw df.mvs] [yBarOffset 0]] : glyph-proc local bar : top * [fallback pyBar 0.5] + yBarOffset - include : EarlessCornerDoubleArchSmallMShape df (top - bar + DToothlessRise + HalfStroke) 0 0 0 + include : EarlessCornerDoubleArchSmallMShape df (top - bar + HalfStroke) 0 0 0 eject-contour 'barL' include : FlipAround df.middle (top / 2) @@ -99,7 +103,7 @@ glyph-block Letter-Cyrillic-Che : begin [Just SERIFS.BR] sf.rb.outer __ : glyph-proc - define [CyrTcheShape] : with-params [df top pyBar bodyType slabType [teSerifs SLAB] [sw : AdviceStroke 2.75] [yBarOffset DToothlessRise]] : glyph-proc + define [CyrTcheShape] : with-params [df top pyBar bodyType slabType [teSerifs SLAB] [sw : AdviceStroke 2.75] [yBarOffset 0]] : glyph-proc local bar : top * [fallback pyBar 0.5] + yBarOffset local left : [mix df.leftSB df.rightSB : if (df.adws > 1) 0.25 0.2] - [HSwToV : 0.25 * sw] + OX @@ -113,9 +117,9 @@ glyph-block Letter-Cyrillic-Che : begin left -- left right -- right top -- top - bottom -- (bar - DToothlessRise - 0.5 * sw) + bottom -- (bar - 0.5 * sw) sw -- sw - fine -- 0.5 * sw + fine -- (0.5 * sw) local xTopBarLeft : df.leftSB - SideJut local xTopBarRight : mix xTopBarLeft (left + [HSwToV : 0.5 * sw]) 2 @@ -231,7 +235,7 @@ glyph-block Letter-Cyrillic-Che : begin CreateSelectorVariants 'cyrl/tche' 0xA693 [Object.keys ItalicConfig] (follow -- 'cyrl/che') define [CheVBarBarShape top pyBar] : begin - local SwCheVBar : Math.min OverlayStroke : VSwToH : 0.625 * (RightSB - SB - [HSwToV : 2 * Stroke]) + local SwCheVBar : Math.min OverlayStroke : VSwToH : 0.625 * ((RightSB - SB) - [HSwToV : 2 * Stroke]) local yc : top * [fallback pyBar 0.5] + Stroke * 0.1 return : VBar.m Middle (yc + LongVJut * 0.8) (yc - LongVJut * 0.8) SwCheVBar @@ -242,14 +246,14 @@ glyph-block Letter-Cyrillic-Che : begin serifless SERIFS.NONE topLeftSerifed SERIFS.BR topLeftBottomRightSerifed SERIFS.TL-BR - serifed SERIFS.ALL + serifed SERIFS.ALL-SYM foreach { suffix serifs } [pairs-of ShhaConfig] : do create-glyph "cyrl/Shha.\(suffix)" : glyph-proc include : MarkSet.capital include : LeaningAnchor.Above.VBar.l SB include : CyrCheShape [DivFrame 1] CAP (1 - HBarPos) BODY.STRAIGHT serifs - yBarOffset -- ([HSwToV : Stroke ** 2] / (RightSB - SB)) + yBarOffset -- (DToothlessRise * ([HSwToV : 1.2 * Stroke] / (Middle - SB) - 1)) include : FlipAround Middle (CAP / 2) create-glyph "cyrl/Hwe.\(suffix)" : glyph-proc From 6bf84e8af8a3ea43a2291e31ae9b7a70ddcf69fa Mon Sep 17 00:00:00 2001 From: jul-sh Date: Fri, 7 Feb 2025 01:10:55 -0500 Subject: [PATCH 05/23] Reduce word spacing in quasi proportional mode (#2673) * Reduce word spacing in quasi proportional mode Currently Iosevka has word spacing that's quite a bit wider than many other quasi-proportional fonts. This change adjusts that, imo resulting in easier to read text. I created a small preview site to demo the difference here: https://jul-sh.github.io/demo-word-spacing-iosevka/ Fixes #2656 * Make space width a seperate param with metric override field * change space width to 7/12, update release notes --------- Co-authored-by: Juliette Pluto Co-authored-by: Belleve --- changes/{32.5.1.md => 32.6.0.md} | 3 +++ packages/font-glyphs/src/space/index.ptl | 4 ++-- packages/param/src/metric-override.mjs | 1 + params/parameters.toml | 3 +++ 4 files changed, 9 insertions(+), 2 deletions(-) rename changes/{32.5.1.md => 32.6.0.md} (88%) diff --git a/changes/32.5.1.md b/changes/32.6.0.md similarity index 88% rename from changes/32.5.1.md rename to changes/32.6.0.md index 25fffed66..87e4d8a1c 100644 --- a/changes/32.5.1.md +++ b/changes/32.6.0.md @@ -16,3 +16,6 @@ - ARMENIAN SMALL LETTER FEH (`U+0586`). - ARMENIAN SMALL LIGATURE ECH YIWN (`U+0587`). - CYRILLIC CAPITAL LETTER HWE (`U+A694`). +* Adjusted width of spaces in quasi-porportional + - Slightly narrower by default + - Adjustable via metric override \ No newline at end of file diff --git a/packages/font-glyphs/src/space/index.ptl b/packages/font-glyphs/src/space/index.ptl index c554f5f5a..4e8c9f10f 100644 --- a/packages/font-glyphs/src/space/index.ptl +++ b/packages/font-glyphs/src/space/index.ptl @@ -14,7 +14,7 @@ glyph-block Spaces : begin set currentGlyph.glyphRank (9998) create-glyph 'space' ' ' : glyph-proc - local df : include : DivFrame para.advanceScaleI + local df : include : DivFrame para.advanceScaleSp alias 'nbsp' 0xA0 'space' @@ -23,7 +23,7 @@ glyph-block Spaces : begin include : df.markSet.plus create-glyph 'markBaseSpace' 0xEF0D : glyph-proc - local df : include : DivFrame para.advanceScaleI + local df : include : DivFrame para.advanceScaleSp include : df.markSet.e create-glyph 'sp1' : glyph-proc diff --git a/packages/param/src/metric-override.mjs b/packages/param/src/metric-override.mjs index 99f7bc134..8f0dc2f2d 100644 --- a/packages/param/src/metric-override.mjs +++ b/packages/param/src/metric-override.mjs @@ -46,6 +46,7 @@ const validMetricOverrideFields = new Set([ "essRatio", "archDepth", "smallArchDepth", + "advanceScaleSp", ]); /////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/params/parameters.toml b/params/parameters.toml index fc8826174..abfc1dcee 100644 --- a/params/parameters.toml +++ b/params/parameters.toml @@ -84,6 +84,7 @@ advanceScaleT = 1 # T-like letters advanceScaleF = 1 # f-like letters advanceScaleI = 1 # i-like letters (with serifs/tails) advanceScaleII = 1 # Extra-narrow letters (like i without serifs/tails) +advanceScaleSp = 1 # Whitespace characters # OS/2 and POST fixed metrics @@ -139,6 +140,7 @@ advanceScaleT = 1.1666666666666 # 7/6 advanceScaleF = 0.8333333333333 # 5/6 advanceScaleI = 0.6666666666666 # 4/6 advanceScaleII = 0.5 # 3/6 +advanceScaleSp = 0.5833333333333 # 7/12 [spacing-quasi-proportional-extension-only] spacing = 3 @@ -149,6 +151,7 @@ advanceScaleT = 1.1666666666666 # 7/6 advanceScaleF = 1.00 advanceScaleI = 1.00 advanceScaleII = 1.00 +advanceScaleSp = 1.00 ###### Slopes [slope-italic] From 8cad163d85d488860d088d3431ffa1b281ce694f Mon Sep 17 00:00:00 2001 From: be5invis Date: Thu, 6 Feb 2025 22:18:30 -0800 Subject: [PATCH 06/23] Mark the advanceScaleSp changes as breaking. --- changes/{32.6.0.md => 33.0.0.md} | 7 ++++--- changes/{ => archives/32.x}/32.0.0.md | 0 changes/{ => archives/32.x}/32.0.1.md | 0 changes/{ => archives/32.x}/32.1.0.md | 0 changes/{ => archives/32.x}/32.2.0.md | 0 changes/{ => archives/32.x}/32.2.1.md | 0 changes/{ => archives/32.x}/32.3.0.md | 0 changes/{ => archives/32.x}/32.3.1.md | 0 changes/{ => archives/32.x}/32.4.0.md | 0 changes/{ => archives/32.x}/32.5.0.md | 0 params/variants.toml | 11 ----------- 11 files changed, 4 insertions(+), 14 deletions(-) rename changes/{32.6.0.md => 33.0.0.md} (81%) rename changes/{ => archives/32.x}/32.0.0.md (100%) rename changes/{ => archives/32.x}/32.0.1.md (100%) rename changes/{ => archives/32.x}/32.1.0.md (100%) rename changes/{ => archives/32.x}/32.2.0.md (100%) rename changes/{ => archives/32.x}/32.2.1.md (100%) rename changes/{ => archives/32.x}/32.3.0.md (100%) rename changes/{ => archives/32.x}/32.3.1.md (100%) rename changes/{ => archives/32.x}/32.4.0.md (100%) rename changes/{ => archives/32.x}/32.5.0.md (100%) diff --git a/changes/32.6.0.md b/changes/33.0.0.md similarity index 81% rename from changes/32.6.0.md rename to changes/33.0.0.md index 87e4d8a1c..45b5c0e36 100644 --- a/changes/32.6.0.md +++ b/changes/33.0.0.md @@ -1,3 +1,7 @@ +* \[**Breaking**\] Adjusted width of spaces in quasi-porportional + - Slightly narrower by default + - Adjustable via metric override +* \[**Breaking**\] Reordered variants for `W`, `a`, `b`, `g`, `q`, `w`, `α`, Cyrillic `а`, Cyrillic `ф`, and `$`. * Refine shape of the following characters: - CYRILLIC CAPITAL LETTER SHHA (`U+04BA`). - CYRILLIC CAPITAL LETTER KOMI DJE (`U+0502`) ... CYRILLIC SMALL LETTER KOMI ZJE (`U+0505`). @@ -16,6 +20,3 @@ - ARMENIAN SMALL LETTER FEH (`U+0586`). - ARMENIAN SMALL LIGATURE ECH YIWN (`U+0587`). - CYRILLIC CAPITAL LETTER HWE (`U+A694`). -* Adjusted width of spaces in quasi-porportional - - Slightly narrower by default - - Adjustable via metric override \ No newline at end of file diff --git a/changes/32.0.0.md b/changes/archives/32.x/32.0.0.md similarity index 100% rename from changes/32.0.0.md rename to changes/archives/32.x/32.0.0.md diff --git a/changes/32.0.1.md b/changes/archives/32.x/32.0.1.md similarity index 100% rename from changes/32.0.1.md rename to changes/archives/32.x/32.0.1.md diff --git a/changes/32.1.0.md b/changes/archives/32.x/32.1.0.md similarity index 100% rename from changes/32.1.0.md rename to changes/archives/32.x/32.1.0.md diff --git a/changes/32.2.0.md b/changes/archives/32.x/32.2.0.md similarity index 100% rename from changes/32.2.0.md rename to changes/archives/32.x/32.2.0.md diff --git a/changes/32.2.1.md b/changes/archives/32.x/32.2.1.md similarity index 100% rename from changes/32.2.1.md rename to changes/archives/32.x/32.2.1.md diff --git a/changes/32.3.0.md b/changes/archives/32.x/32.3.0.md similarity index 100% rename from changes/32.3.0.md rename to changes/archives/32.x/32.3.0.md diff --git a/changes/32.3.1.md b/changes/archives/32.x/32.3.1.md similarity index 100% rename from changes/32.3.1.md rename to changes/archives/32.x/32.3.1.md diff --git a/changes/32.4.0.md b/changes/archives/32.x/32.4.0.md similarity index 100% rename from changes/32.4.0.md rename to changes/archives/32.x/32.4.0.md diff --git a/changes/32.5.0.md b/changes/archives/32.x/32.5.0.md similarity index 100% rename from changes/32.5.0.md rename to changes/archives/32.x/32.5.0.md diff --git a/params/variants.toml b/params/variants.toml index f5d84f1f7..747fd76ab 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -1846,7 +1846,6 @@ selectorAffix.WHookTop = "straightVerticalSides" [prime.capital-w.variants-buildup.stages.body.rounded-vertical-sides] rank = 7 -nonBreakingVariantAdditionPriority = 100 descriptionAffix = "rounded body shape with vertical sides" selectorAffix.W = "roundedVerticalSides" selectorAffix."W/sansSerif" = "roundedVerticalSides" @@ -2213,7 +2212,6 @@ selectorAffix."aScript/autoSerifed/sans" = "topCut" [prime.a.variants-buildup.stages.ear.top-cut] rank = 2 -nonBreakingVariantAdditionPriority = 100 descriptionAffix = "a diagonal cut at top" selectorAffix.a = "topCut" selectorAffix."ae/a" = "" @@ -2369,7 +2367,6 @@ selectorAffix.bHookTop = "toothed" [prime.b.variants-buildup.stages.body.bottom-cut] rank = 2 -nonBreakingVariantAdditionPriority = 100 descriptionAffix = "a diagonal cut at bottom" selectorAffix.b = "bottomCut" selectorAffix."b/sansSerif" = "bottomCut" @@ -2878,7 +2875,6 @@ selectorAffix.gScript = "topCut" [prime.g.variants-buildup.stages.ear.top-cut] rank = 3 -nonBreakingVariantAdditionPriority = 100 descriptionAffix = "a diagonal cut at top" selectorAffix.g = "topCut" selectorAffix."g/sansSerif" = "topCut" @@ -3997,7 +3993,6 @@ selectorAffix.gha = "" [prime.q.variants-buildup.stages.body.top-cut] rank = 2 -nonBreakingVariantAdditionPriority = 100 descriptionAffix = "a diagonal cut at top" selectorAffix.q = "topCut" selectorAffix."q/sansSerif" = "topCut" @@ -4761,7 +4756,6 @@ selectorAffix.wHookTop = "straightVerticalSides" [prime.w.variants-buildup.stages.body.rounded-vertical-sides] rank = 4 groupRank = 1 -nonBreakingVariantAdditionPriority = 100 descriptionAffix = "rounded body shape with vertical sides" selectorAffix.w = "roundedVerticalSides" selectorAffix."w/sansSerif" = "roundedVerticalSides" @@ -5536,7 +5530,6 @@ selectorAffix."grek/alpha/sansSerif" = "" [prime.lower-alpha.variants-buildup.stages.ear.top-cut] rank = 2 -nonBreakingVariantAdditionPriority = 100 descriptionAffix = "a diagonal cut at top" selectorAffix."grek/alpha" = "topCut" selectorAffix."grek/alpha/sansSerif" = "topCut" @@ -6317,7 +6310,6 @@ selectorAffix."cyrl/ae/a" = "" [prime.cyrl-a.variants-buildup.stages.ear.top-cut] rank = 2 -nonBreakingVariantAdditionPriority = 100 descriptionAffix = "a diagonal cut at top" selectorAffix."cyrl/a" = "topCut" selectorAffix."cyrl/ae/a" = "" @@ -7336,7 +7328,6 @@ selectorAffix."cyrl/ef.BGR" = "cursive" [prime.cyrl-ef.variants-buildup.stages.bar.diagonal-tailed-cursive] rank = 3 -nonBreakingVariantAdditionPriority = 100 next = "END" descriptionAffix = "cursive bar, and diagonal tail" selectorAffix."cyrl/ef" = "diagonalTailedCursive" @@ -8315,7 +8306,6 @@ selectorAffix.dollar = "" [prime.dollar.variants-buildup.stages.bar-slope.slanted] rank = 2 -nonBreakingVariantAdditionPriority = 100 descriptionAffix = "slanted bar" selectorAffix.dollar = "slanted" @@ -8372,7 +8362,6 @@ selectorAffix.cent = "" [prime.cent.variants-buildup.stages.bar-slope.slanted] rank = 2 -nonBreakingVariantAdditionPriority = 100 descriptionAffix = "slanted bar" selectorAffix.cent = "slanted" From bb023c18dc05ac00ce479a998b105ebb0f7f487a Mon Sep 17 00:00:00 2001 From: be5invis Date: Thu, 6 Feb 2025 22:20:56 -0800 Subject: [PATCH 07/23] Doc for metric override `advanceScaleSp` --- doc/custom-build.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/custom-build.md b/doc/custom-build.md index 147997d11..f8ee80a20 100644 --- a/doc/custom-build.md +++ b/doc/custom-build.md @@ -3628,6 +3628,7 @@ Subsection `metricOverride` provides ability to override certain metric values, | `essRatioQuestion` | (*ratio*) | (*varies, 1.12 for Regular*) | Ratio of the thickness of the neck of `?`, to the normal stroke width. | | `archDepth` | emu | (*varies, 195 for Regular*) | Depth of the curve segment of arches / O rings in capital letters. | | `smallArchDepth` | emu | (*varies, 200 for Regular*) | Depth of the curve segment of arches / O rings in small letters. | +| `advanceScaleSp` | (*ratio*) | (*varies, 1.0 for monospace, 0.58333 for quasi-proportional*) | The advance width ratio of space character, relative to the width of digit `0`. | The values of each item could be either a number, or a string representing an expression so that it could be different for different instance fonts, or depending on default values. The syntax of valid expressions are: From f31c9cd619b9e8b6b0e87c8a5cf67dac507433b4 Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Fri, 7 Feb 2025 20:50:50 -0500 Subject: [PATCH 08/23] Reorder variants of `capital-w` to match lower w. (#2675) --- params/variants.toml | 54 ++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/params/variants.toml b/params/variants.toml index 747fd76ab..5ca9ab16f 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -1816,41 +1816,41 @@ selectorAffix.W = "curly" selectorAffix."W/sansSerif" = "curly" selectorAffix.WHookTop = "curly" -[prime.capital-w.variants-buildup.stages.body.straight-flat-top] -rank = 3 -descriptionAffix = "straight body shape that the middle is forced to be aligned the top" -selectorAffix.W = "straightFlatTop" -selectorAffix."W/sansSerif" = "straightFlatTop" -selectorAffix.WHookTop = "straightFlatTop" - -[prime.capital-w.variants-buildup.stages.body.straight-double-v] -rank = 4 -descriptionAffix = "body shape like double V" -selectorAffix.W = "straightDoubleV" -selectorAffix."W/sansSerif" = "straightDoubleV" -selectorAffix.WHookTop = "straightDoubleV" - -[prime.capital-w.variants-buildup.stages.body.straight-asymmetric] -rank = 5 -descriptionAffix = "asymmetric shape" -selectorAffix.W = "straightAsymmetric" -selectorAffix."W/sansSerif" = "straightAsymmetric" -selectorAffix.WHookTop = "straightAsymmetric" - [prime.capital-w.variants-buildup.stages.body.straight-vertical-sides] -rank = 6 +rank = 3 descriptionAffix = "straight body shape with vertical sides" selectorAffix.W = "straightVerticalSides" selectorAffix."W/sansSerif" = "straightVerticalSides" selectorAffix.WHookTop = "straightVerticalSides" [prime.capital-w.variants-buildup.stages.body.rounded-vertical-sides] -rank = 7 +rank = 4 descriptionAffix = "rounded body shape with vertical sides" selectorAffix.W = "roundedVerticalSides" selectorAffix."W/sansSerif" = "roundedVerticalSides" selectorAffix.WHookTop = "roundedVerticalSides" +[prime.capital-w.variants-buildup.stages.body.straight-flat-top] +rank = 5 +descriptionAffix = "straight body shape that the middle is forced to be aligned the top" +selectorAffix.W = "straightFlatTop" +selectorAffix."W/sansSerif" = "straightFlatTop" +selectorAffix.WHookTop = "straightFlatTop" + +[prime.capital-w.variants-buildup.stages.body.straight-double-v] +rank = 6 +descriptionAffix = "body shape like double V" +selectorAffix.W = "straightDoubleV" +selectorAffix."W/sansSerif" = "straightDoubleV" +selectorAffix.WHookTop = "straightDoubleV" + +[prime.capital-w.variants-buildup.stages.body.straight-asymmetric] +rank = 7 +descriptionAffix = "asymmetric shape" +selectorAffix.W = "straightAsymmetric" +selectorAffix."W/sansSerif" = "straightAsymmetric" +selectorAffix.WHookTop = "straightAsymmetric" + [prime.capital-w.variants-buildup.stages.serifs.serifless] rank = 1 descriptionAffix = "serifs" @@ -6917,36 +6917,36 @@ rank = 1 description = "Cyrillic Capital En (`Н`) without serifs" selector."cyrl/En" = "serifless" selector."cyrl/En/descBase" = "serifless" -selector."cyrl/NjeKomi" = "serifless" selector."cyrl/Nje/leftHalf" = "serifless" selector."cyrl/Nje/leftHalf/reduced" = "serifless" +selector."cyrl/NjeKomi" = "serifless" [prime.cyrl-capital-en.variants.top-left-serifed] rank = 2 description = "Cyrillic Capital En (`Н`) with serif only at top left" selector."cyrl/En" = "topLeftSerifed" selector."cyrl/En/descBase" = "topLeftSerifed" -selector."cyrl/NjeKomi" = "topLeftSerifed" selector."cyrl/Nje/leftHalf" = "topLeftSerifed" selector."cyrl/Nje/leftHalf/reduced" = "topLeftSerifed" +selector."cyrl/NjeKomi" = "topLeftSerifed" [prime.cyrl-capital-en.variants.top-left-bottom-right-serifed] rank = 3 description = "Cyrillic Capital En (`Н`) with serif only at top left and bottom right" selector."cyrl/En" = "topLeftBottomRightSerifed" selector."cyrl/En/descBase" = "topLeftSerifed" -selector."cyrl/NjeKomi" = "topLeftSerifed" selector."cyrl/Nje/leftHalf" = "topLeftSerifed" selector."cyrl/Nje/leftHalf/reduced" = "topLeftSerifed" +selector."cyrl/NjeKomi" = "topLeftSerifed" [prime.cyrl-capital-en.variants.serifed] rank = 4 description = "Cyrillic Capital En (`Н`) with serifs" selector."cyrl/En" = "serifed" selector."cyrl/En/descBase" = "serifed" -selector."cyrl/NjeKomi" = "serifedExceptBottomRight" selector."cyrl/Nje/leftHalf" = "serifed" selector."cyrl/Nje/leftHalf/reduced" = "serifedExceptBottomRight" +selector."cyrl/NjeKomi" = "serifedExceptBottomRight" From 7e7a60e7d1b8fe5103dd9c045a5cefd61a37c3e5 Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Sat, 8 Feb 2025 16:29:03 -0500 Subject: [PATCH 09/23] Refine shape of capital/lower Half H. (#2676) --- changes/33.0.0.md | 6 ++ .../font-glyphs/src/letter/latin/upper-h.ptl | 65 +++++++++++-------- 2 files changed, 43 insertions(+), 28 deletions(-) diff --git a/changes/33.0.0.md b/changes/33.0.0.md index 45b5c0e36..e209a05ac 100644 --- a/changes/33.0.0.md +++ b/changes/33.0.0.md @@ -3,6 +3,8 @@ - Adjustable via metric override * \[**Breaking**\] Reordered variants for `W`, `a`, `b`, `g`, `q`, `w`, `α`, Cyrillic `а`, Cyrillic `ф`, and `$`. * Refine shape of the following characters: + - GREEK CAPITAL LETTER HETA (`U+0370`). + - GREEK SMALL LETTER HETA (`U+0371`). - CYRILLIC CAPITAL LETTER SHHA (`U+04BA`). - CYRILLIC CAPITAL LETTER KOMI DJE (`U+0502`) ... CYRILLIC SMALL LETTER KOMI ZJE (`U+0505`). - CYRILLIC CAPITAL LETTER KOMI LJE (`U+0508`) ... CYRILLIC SMALL LETTER KOMI TJE (`U+050F`). @@ -19,4 +21,8 @@ - ARMENIAN SMALL LETTER PIWR (`U+0583`). - ARMENIAN SMALL LETTER FEH (`U+0586`). - ARMENIAN SMALL LIGATURE ECH YIWN (`U+0587`). + - LATIN CAPITAL LETTER HALF H (`U+2C75`). + - LATIN SMALL LETTER HALF H (`U+2C76`). - CYRILLIC CAPITAL LETTER HWE (`U+A694`). + - LATIN CAPITAL LETTER REVERSED HALF H (`U+A7F5`). + - LATIN SMALL LETTER REVERSED HALF H (`U+A7F6`). diff --git a/packages/font-glyphs/src/letter/latin/upper-h.ptl b/packages/font-glyphs/src/letter/latin/upper-h.ptl index 67ab5f688..e9f12f3ce 100644 --- a/packages/font-glyphs/src/letter/latin/upper-h.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-h.ptl @@ -17,6 +17,7 @@ glyph-block Letter-Latin-Upper-H : begin glyph-block-import Letter-Shared-Shapes : SerifFrame RightwardTailedBar glyph-block-import Letter-Shared-Shapes : LeftHook MidHook EngHook UpwardHookShape glyph-block-import Letter-Shared-Shapes : CyrDescender CyrTailDescender PalatalHook + glyph-block-import Letter-Latin-Upper-F : xMidBarShrink define SLAB-NONE 0 define SLAB-TOP-LEFT 1 @@ -25,7 +26,6 @@ glyph-block Letter-Latin-Upper-H : begin define SLAB-ALL 4 define SLAB-ALL-BGR 5 define SLAB-TAILED-CYRILLIC-BGR 6 - define SLAB-SMALL-HETA 7 define [HSerifs slabType t b l r sw] : begin local sf : SerifFrame t b l r (swRef -- [fallback sw Stroke]) @@ -37,7 +37,6 @@ glyph-block Letter-Latin-Upper-H : begin [Just SLAB-ALL] : composite-proc sf.lt.full sf.rt.full sf.lb.full sf.rb.full [Just SLAB-ALL-BGR] : composite-proc sf.lt.outer sf.rt.inner sf.lb.full sf.rb.full [Just SLAB-TAILED-CYRILLIC-BGR] : composite-proc sf.lt.outer sf.rt.inner sf.lb.full - [Just SLAB-SMALL-HETA] : NeedSlab SLAB : begin sf.lt.outer define [LeftHalfSerifs slabType t b l r sw] : begin local sf : SerifFrame t b l r (swRef -- [fallback sw Stroke]) @@ -49,7 +48,6 @@ glyph-block Letter-Latin-Upper-H : begin [Just SLAB-ALL] : composite-proc sf.lt.fullSide sf.lb.fullSide [Just SLAB-ALL-BGR] : composite-proc sf.lt.outer sf.lb.fullSide [Just SLAB-TAILED-CYRILLIC-BGR] : composite-proc sf.lt.outer sf.lb.fullSide - [Just SLAB-SMALL-HETA] : NeedSlab SLAB : begin sf.lt.outer define [RightHalfSerifs slabType t b l r sw] : begin local sf : SerifFrame t b l r (swRef -- [fallback sw Stroke]) @@ -61,7 +59,6 @@ glyph-block Letter-Latin-Upper-H : begin [Just SLAB-ALL] : composite-proc sf.rt.fullSide sf.rb.fullSide [Just SLAB-ALL-BGR] : composite-proc sf.rt.inner sf.rb.fullSide [Just SLAB-TAILED-CYRILLIC-BGR] : begin sf.rt.inner - [Just SLAB-SMALL-HETA] : glyph-proc define [TurnedSerifs slabType t b l r sw] : begin local sf : SerifFrame t b l r (swRef -- [fallback sw Stroke]) @@ -73,7 +70,6 @@ glyph-block Letter-Latin-Upper-H : begin [Just SLAB-ALL] : composite-proc sf.lt.full sf.rt.full sf.rb.fullSide [Just SLAB-ALL-BGR] : composite-proc sf.lt.outer sf.rt.inner sf.rb.fullSide [Just SLAB-TAILED-CYRILLIC-BGR] : composite-proc sf.lt.outer sf.rt.inner - [Just SLAB-SMALL-HETA] : NeedSlab SLAB : begin sf.lt.outer define [HShape l r top _sw] : glyph-proc local sw : fallback _sw Stroke @@ -163,6 +159,8 @@ glyph-block Letter-Latin-Upper-H : begin topRightSerifed true foreach { suffix { Body TurnedBody LeftHalfBody RightHalfBody slabType } } [Object.entries HConfig] : do + define fSlab : slabType !== SLAB-NONE + create-glyph "H.\(suffix)" : glyph-proc include : MarkSet.capital include : Body SB RightSB CAP @@ -170,7 +168,7 @@ glyph-block Letter-Latin-Upper-H : begin create-glyph "grek/Eta.\(suffix)" : glyph-proc include [refer-glyph "H.\(suffix)"] AS_BASE ALSO_METRICS - include : SetGrekUpperTonos [if (slabType === SLAB-NONE) 0 (-SideJut)] + include : SetGrekUpperTonos [if fSlab (-SideJut) 0] create-glyph "HTurned.\(suffix)" : glyph-proc include : MarkSet.capital @@ -183,28 +181,44 @@ glyph-block Letter-Latin-Upper-H : begin include : HSerifs slabType XH 0 SB RightSB create-glyph "leftHalfH.\(suffix)" : glyph-proc - local df : include : DivFrame para.advanceScaleF - include : df.markSet.capital - include : LeftHalfBody df.leftSB df.rightSB CAP - include : LeftHalfSerifs slabType CAP 0 df.leftSB df.rightSB + include : MarkSet.capital + local xMockLeft : SB * 1.5 + local xMockRight : RightSB - [xMidBarShrink fSlab] + local shift : Math.abs : Middle - [mix (xMockLeft - [if fSlab SideJut 0]) xMockRight 0.5] + local xLeft : xMockLeft + shift + local xRight : xMockRight + shift + include : LeftHalfBody xLeft xRight CAP + include : LeftHalfSerifs slabType CAP 0 xLeft xRight create-glyph "rightHalfH.\(suffix)" : glyph-proc - local df : include : DivFrame para.advanceScaleF - include : df.markSet.capital - include : RightHalfBody df.leftSB df.rightSB CAP - include : RightHalfSerifs slabType CAP 0 df.leftSB df.rightSB + include : MarkSet.capital + local xMockLeft : SB + [xMidBarShrink fSlab] + local xMockRight : Width - SB * 1.5 + local shift : Math.abs : Middle - [mix xMockLeft (xMockRight + [if fSlab SideJut 0]) 0.5] + local xLeft : xMockLeft - shift + local xRight : xMockRight - shift + include : RightHalfBody xLeft xRight CAP + include : RightHalfSerifs slabType CAP 0 xLeft xRight create-glyph "leftHalfSmcpH.\(suffix)" : glyph-proc - local df : include : DivFrame para.advanceScaleF - include : df.markSet.e - include : LeftHalfBody df.leftSB df.rightSB XH - include : LeftHalfSerifs slabType XH 0 df.leftSB df.rightSB + include : MarkSet.e + local xMockLeft : SB * 1.5 + local xMockRight : RightSB - [xMidBarShrink fSlab] + local shift : Math.abs : Middle - [mix (xMockLeft - [if fSlab SideJut 0]) xMockRight 0.5] + local xLeft : xMockLeft + shift + local xRight : xMockRight + shift + include : LeftHalfBody xLeft xRight XH + include : LeftHalfSerifs slabType XH 0 xLeft xRight create-glyph "rightHalfSmcpH.\(suffix)" : glyph-proc - local df : include : DivFrame para.advanceScaleF - include : df.markSet.e - include : RightHalfBody df.leftSB df.rightSB XH - include : RightHalfSerifs slabType XH 0 df.leftSB df.rightSB + include : MarkSet.e + local xMockLeft : SB + [xMidBarShrink fSlab] + local xMockRight : Width - SB * 1.5 + local shift : Math.abs : Middle - [mix xMockLeft (xMockRight + [if fSlab SideJut 0]) 0.5] + local xLeft : xMockLeft - shift + local xRight : xMockRight - shift + include : RightHalfBody xLeft xRight XH + include : RightHalfSerifs slabType XH 0 xLeft xRight define enGheDf : DivFrame para.advanceScaleM 3 @@ -298,12 +312,7 @@ glyph-block Letter-Latin-Upper-H : begin select-variant 'cyrl/en.BGR' (shapeFrom -- 'smcpH') alias 'grek/Heta' 0x370 'leftHalfH' - - create-glyph 'grek/heta' 0x371 : glyph-proc - local df : include : DivFrame para.advanceScaleF - include : df.markSet.e - include : LeftHalfBody df.leftSB df.rightSB XH - include : LeftHalfSerifs SLAB-SMALL-HETA XH 0 df.leftSB df.rightSB + alias 'grek/heta' 0x371 : if SLAB 'leftHalfSmcpH.topLeftSerifed' 'leftHalfSmcpH.serifless' derive-composites 'HDescender' 0x2C67 'H/descBase' [CyrDescender.rSideJut RightSB 0] From e28813f0962ccf6c5e054966b17fbf5889c25f4d Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Mon, 10 Feb 2025 23:48:33 -0500 Subject: [PATCH 10/23] Miscellaneous Optimizations/Harmonizations of certain mutually-related Armenian letters. (#2677) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Harmonize metrics of `Է`/`Լ`/`է`/`ւ`. * Harmonize glyphs of `Ի`/`Կ`/`Վ`. * Optimize `Ց`/`ք` under thin. * Optimize glyphs of `բ`/`ե`/`և`. --- changes/33.0.0.md | 5 +++ packages/font-glyphs/src/letter/armenian.ptl | 3 +- .../src/letter/armenian/eh-liun-hiun.ptl | 8 ++-- .../font-glyphs/src/letter/armenian/keh.ptl | 4 +- .../src/letter/armenian/lower-u-group.ptl | 40 +++++++++--------- .../src/letter/armenian/shared.ptl | 7 +--- .../src/letter/armenian/upper-co.ptl | 8 +++- ...pper-ken-vew.ptl => upper-ini-ken-vew.ptl} | 42 +++++++++++++++---- .../src/letter/armenian/upper-ini.ptl | 28 ------------- 9 files changed, 75 insertions(+), 70 deletions(-) rename packages/font-glyphs/src/letter/armenian/{upper-ken-vew.ptl => upper-ini-ken-vew.ptl} (52%) delete mode 100644 packages/font-glyphs/src/letter/armenian/upper-ini.ptl diff --git a/changes/33.0.0.md b/changes/33.0.0.md index e209a05ac..35598894c 100644 --- a/changes/33.0.0.md +++ b/changes/33.0.0.md @@ -9,11 +9,16 @@ - CYRILLIC CAPITAL LETTER KOMI DJE (`U+0502`) ... CYRILLIC SMALL LETTER KOMI ZJE (`U+0505`). - CYRILLIC CAPITAL LETTER KOMI LJE (`U+0508`) ... CYRILLIC SMALL LETTER KOMI TJE (`U+050F`). - CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER (`U+0526`). + - ARMENIAN CAPITAL LETTER EH (`U+0537`). + - ARMENIAN CAPITAL LETTER INI (`U+053B`). - ARMENIAN CAPITAL LETTER XEH (`U+053D`). - ARMENIAN CAPITAL LETTER CA (`U+053E`). - ARMENIAN CAPITAL LETTER HO (`U+0540`). - ARMENIAN CAPITAL LETTER CO (`U+0551`). - ARMENIAN CAPITAL LETTER FEH (`U+0556`). + - ARMENIAN SMALL LETTER BEN (`U+0562`). + - ARMENIAN SMALL LETTER ECH (`U+0565`). + - ARMENIAN SMALL LETTER EH (`U+0567`). - ARMENIAN SMALL LETTER ZHE (`U+056A`). - ARMENIAN SMALL LETTER XEH (`U+056D`). - ARMENIAN SMALL LETTER CHA (`U+0579`). diff --git a/packages/font-glyphs/src/letter/armenian.ptl b/packages/font-glyphs/src/letter/armenian.ptl index d7f6bcb0e..0eb6fc1ad 100644 --- a/packages/font-glyphs/src/letter/armenian.ptl +++ b/packages/font-glyphs/src/letter/armenian.ptl @@ -11,10 +11,9 @@ export : define [apply] : begin run-glyph-module "./armenian/upper-za-group.mjs" run-glyph-module "./armenian/eh-liun-hiun.mjs" run-glyph-module "./armenian/to.mjs" - run-glyph-module "./armenian/upper-ini.mjs" + run-glyph-module "./armenian/upper-ini-ken-vew.mjs" run-glyph-module "./armenian/upper-xeh.mjs" run-glyph-module "./armenian/ca.mjs" - run-glyph-module "./armenian/upper-ken-vew.mjs" run-glyph-module "./armenian/upper-ho.mjs" run-glyph-module "./armenian/upper-dza-group.mjs" run-glyph-module "./armenian/lower-dza-cheh.mjs" diff --git a/packages/font-glyphs/src/letter/armenian/eh-liun-hiun.ptl b/packages/font-glyphs/src/letter/armenian/eh-liun-hiun.ptl index fbb6b810b..a1d5011db 100644 --- a/packages/font-glyphs/src/letter/armenian/eh-liun-hiun.ptl +++ b/packages/font-glyphs/src/letter/armenian/eh-liun-hiun.ptl @@ -21,17 +21,17 @@ glyph-block Letter-Armenian-Eh-Liun-Hiun : begin local df : include : DivFrame 1 include : df.markSet.capital include : VBar.l df.leftSB 0 CAP df.mvs - include : [ArmHBar.short df].base + include : [ArmHBar.normal : DivFrame (5 / 6)].base include : [ArmHBar.normal df].high if SLAB : begin local sf : SerifFrame.fromDf df CAP 0 include : composite-proc sf.lt.full sf.lb.outer create-glyph 'armn/eh' 0x567 : glyph-proc - local df : include : DivFrame para.advanceScaleF + local df : include : DivFrame 1 include : df.markSet.b include : VBar.l df.leftSB 0 Ascender df.mvs - include : [ArmHBar.short df].base + include : [ArmHBar.normal : DivFrame (5 / 6)].base include : [ArmHBar.normal df].high if SLAB : begin local sf : SerifFrame.fromDf df CAP 0 @@ -40,7 +40,7 @@ glyph-block Letter-Armenian-Eh-Liun-Hiun : begin do "Liun" create-glyph 'armn/Liun' 0x53C : glyph-proc - local df : include : DivFrame 1 + local df : include : DivFrame para.advanceScaleF include : df.markSet.capital include : VBar.l df.leftSB 0 CAP df.mvs include : [ArmHBar.normal df].base diff --git a/packages/font-glyphs/src/letter/armenian/keh.ptl b/packages/font-glyphs/src/letter/armenian/keh.ptl index 984d32efa..e6dab705a 100644 --- a/packages/font-glyphs/src/letter/armenian/keh.ptl +++ b/packages/font-glyphs/src/letter/armenian/keh.ptl @@ -27,7 +27,6 @@ glyph-block Letter-Armenian-Keh : begin left -- df.leftSB right -- df.rightSB sw -- df.mvs - fine -- df.shoulderFine ada -- ArchDepthA adb -- ArchDepthB yTerminal -- 0 @@ -44,14 +43,13 @@ glyph-block Letter-Armenian-Keh : begin local df : include : DivFrame 1 include : df.markSet.p local ostroke : OverlayStroke * (df.mvs / Stroke) - local bot : Math.max (0.1 * XH) (1.5 * ostroke) + local bot : Math.max (0.1 * (XH - Descender)) (1.5 * ostroke) include : OBarLeft.shape top -- XH bot -- bot left -- df.leftSB right -- df.rightSB sw -- df.mvs - fine -- df.shoulderFine ada -- SmallArchDepthA adb -- SmallArchDepthB include : VBar.l df.leftSB Descender XH df.mvs diff --git a/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl b/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl index 9e3814f8e..d72a1a5cd 100644 --- a/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl +++ b/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl @@ -10,7 +10,6 @@ glyph-block Letter-Armenian-Lower-U-Group : begin glyph-block-import Common-Derivatives glyph-block-import Letter-Shared-Shapes : nShoulder uBowl SerifFrame glyph-block-import Letter-Armenian-Shared-Shapes : ArmHBar TwoNeck - glyph-block-import Letter-Latin-U : USerifs glyph-block-import Letter-Latin-Lower-M : SmallMArches # Common Params @@ -48,9 +47,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin local df : include : DivFrame 1 include : df.markSet.p include : VBar.l df.leftSB Descender XH df.mvs + local barPosB : barPos - df.mvs / 2 include : nShoulder.shape top -- XH - bottom -- (XH / 2) + bottom -- barPosB left -- (df.leftSB + [HSwToV df.mvs]) right -- df.rightSB stroke -- df.mvs @@ -83,16 +83,18 @@ glyph-block Letter-Armenian-Lower-U-Group : begin create-glyph 'armn/ech' 0x565 : glyph-proc local df : include : DivFrame 1 include : df.markSet.b + local barPosT : barPos + df.mvs / 2 include : uBowl.shape top -- Ascender bottom -- 0 left -- df.leftSB right -- (df.rightSB - [HSwToV df.mvs]) stroke -- df.mvs - include : VBar.r df.rightSB 0 [mix 0 XH 0.6] df.mvs + include : VBar.r df.rightSB 0 barPosT df.mvs include : [ArmHBar.normal df].high - if SLAB : include : USerifs.Toothed df Ascender df.mvs - eject-contour 'serifRT' + if SLAB : begin + local sf : SerifFrame.fromDf df Ascender 0 + include : composite-proc sf.lt.outer sf.rb.outer do "Et" create-glyph 'armn/et' 0x568 : glyph-proc @@ -133,7 +135,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin create-glyph 'armn/xeh' 0x56D : glyph-proc local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.bp - local subDf : df.slice 3 2 OX + local subDf : df.slice 3 2 include : uBowl.shape top -- (XH / 2) bottom -- 0 @@ -348,7 +350,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin create-glyph 'armn/tiun' 0x57F : glyph-proc local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e - local subDf : df.slice 3 2 OX + local subDf : df.slice 3 2 include : uBowl.shape top -- XH bottom -- 0 @@ -393,7 +395,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin create-glyph 'armn/piur' 0x583 : glyph-proc local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.bp - local subDf : df.slice 3 2 OX + local subDf : df.slice 3 2 include : uBowl.shape top -- XH bottom -- 0 @@ -421,22 +423,22 @@ glyph-block Letter-Armenian-Lower-U-Group : begin do "Ew" create-glyph 'armn/ew' 0x587 : glyph-proc - local df : include : DivFrame para.advanceScaleMM 3 + local df : include : DivFrame para.advanceScaleM include : df.markSet.b - local subDf : df.slice 3 2 OX + local subDf : DivFrame (0.75 * para.advanceScaleM) 2 include : uBowl.shape top -- Ascender bottom -- 0 - left -- df.leftSB - right -- (df.middle - [HSwToV : 0.5 * df.mvs]) - stroke -- df.mvs + left -- subDf.leftSB + right -- (subDf.rightSB - [HSwToV subDf.mvs]) + stroke -- subDf.mvs ada -- subDf.smallArchDepthA adb -- subDf.smallArchDepthB - include : VBar.m df.middle 0 XH df.mvs - include : HBar.b df.middle df.rightSB 0 df.mvs + include : VBar.r subDf.rightSB 0 XH subDf.mvs + include : HBar.b (subDf.rightSB - [HSwToV : 0.5 * subDf.mvs]) df.rightSB 0 subDf.mvs if SLAB : begin - local sf : SerifFrame.fromDf df Ascender 0 - local sf2 : SerifFrame.fromDf df XH 0 + local sf : SerifFrame.fromDf subDf Ascender 0 include sf.lt.outer - if ([not para.isItalic] && sf2.enoughSpaceForFullSerifs) : begin - include sf2.mt.left + if [not para.isItalic] : begin + local sf2 : SerifFrame.fromDf subDf XH 0 + include sf2.rt.inner diff --git a/packages/font-glyphs/src/letter/armenian/shared.ptl b/packages/font-glyphs/src/letter/armenian/shared.ptl index 4e7bb5a9e..a3b7df0c6 100644 --- a/packages/font-glyphs/src/letter/armenian/shared.ptl +++ b/packages/font-glyphs/src/letter/armenian/shared.ptl @@ -16,9 +16,8 @@ glyph-block Letter-Armenian-Shared-Shapes : begin define JUT : object NORMAL 0 - SHORT 1 - RIGHT 2 - LEFT 3 + RIGHT 1 + LEFT 2 glyph-block-export ArmHBar define [ArmHBar hPos df] : namespace @@ -28,7 +27,6 @@ glyph-block Letter-Armenian-Shared-Shapes : begin -- df.leftSB define right : match hPos [Just JUT.RIGHT] (df.rightSB + (jut * [if SLAB 1.5 1]) - [HSwToV : 0.5 * df.mvs]) - [Just JUT.SHORT] (df.rightSB - (jut - [HSwToV : 0.5 * df.mvs]) * df.adws) [Just JUT.LEFT] df.leftSB -- df.rightSB @@ -48,7 +46,6 @@ glyph-block Letter-Armenian-Shared-Shapes : begin include : HBar.m left right y df.mvs set [ArmHBar.normal df] : ArmHBar JUT.NORMAL df - set [ArmHBar.short df] : ArmHBar JUT.SHORT df set [ArmHBar.right df] : ArmHBar JUT.RIGHT df set [ArmHBar.left df] : ArmHBar JUT.LEFT df diff --git a/packages/font-glyphs/src/letter/armenian/upper-co.ptl b/packages/font-glyphs/src/letter/armenian/upper-co.ptl index 194e154ac..76d2b08dc 100644 --- a/packages/font-glyphs/src/letter/armenian/upper-co.ptl +++ b/packages/font-glyphs/src/letter/armenian/upper-co.ptl @@ -19,12 +19,18 @@ glyph-block Letter-Armenian-Upper-Co : begin create-glyph 'armn/Co' 0x551 : glyph-proc local df : include : DivFrame 1 include : df.markSet.capital + + local xStart : Math.min df.leftSB : Math.max + [mix df.leftSB df.rightSB 0.4] - [HSwToV : 1.5 * df.mvs] - jut + df.leftSB - jut + [HSwToV : 0.5 * df.mvs] + local midy : CAP * HBarPos local midyTop : midy + 0.5 * df.mvs local midyBot : midy - 0.5 * df.mvs + include : dispiro widths.lhs df.mvs - flat (df.leftSB - jut + [HSwToV : 0.5 * df.mvs]) midyBot + flat xStart midyBot curl df.middle midyBot archv g4 df.rightSB [mix midyBot CAP (ArchDepthA / (ArchDepthA + ArchDepthB))] diff --git a/packages/font-glyphs/src/letter/armenian/upper-ken-vew.ptl b/packages/font-glyphs/src/letter/armenian/upper-ini-ken-vew.ptl similarity index 52% rename from packages/font-glyphs/src/letter/armenian/upper-ken-vew.ptl rename to packages/font-glyphs/src/letter/armenian/upper-ini-ken-vew.ptl index 714cbb9b7..2c561c949 100644 --- a/packages/font-glyphs/src/letter/armenian/upper-ken-vew.ptl +++ b/packages/font-glyphs/src/letter/armenian/upper-ini-ken-vew.ptl @@ -5,37 +5,63 @@ import [DependentSelector] from "@iosevka/glyph/relation" glyph-module -glyph-block Letter-Armenian-Upper-Ken-Vew : begin +glyph-block Letter-Armenian-Upper-Ini-Ken-Vew : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Letter-Shared-Shapes : uBowl SerifFrame + glyph-block-import Letter-Shared-Shapes : nShoulder uBowl SerifFrame glyph-block-import Letter-Armenian-Shared-Shapes : ArmHBar + # Common Params + define barPos : XH / 2 + define highBarPos XH + define jut Jut + + do "Ini" + create-glyph 'armn/Ini' 0x53B : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + local barPosB : barPos - df.mvs / 2 + include : nShoulder.shape + top -- highBarPos + bottom -- barPosB + left -- (df.leftSB + [HSwToV df.mvs]) + right -- df.rightSB + ada -- ArchDepthA + adb -- ArchDepthB + stroke -- df.mvs + include : VBar.l df.leftSB 0 CAP df.mvs + if SLAB : begin + local sf : SerifFrame.fromDf df CAP 0 + local sf2 : SerifFrame.fromDf df highBarPos barPosB + include : composite-proc sf.lt.full sf.lb.full sf2.rb.full + do "Ken" create-glyph 'armn/Ken' 0x53F : glyph-proc local df : include : DivFrame 1 include : df.markSet.capital + local barPosB : barPos - df.mvs / 2 include : uBowl.shape top -- CAP - bottom -- (XH / 2 - df.mvs / 2) + bottom -- barPosB left -- df.leftSB right -- (df.rightSB - [HSwToV df.mvs]) ada -- ArchDepthA adb -- ArchDepthB stroke -- df.mvs - include : VBar.r df.rightSB 0 XH df.mvs + include : VBar.r df.rightSB 0 highBarPos df.mvs if SLAB : begin local sf : SerifFrame.fromDf df CAP 0 - local sf2 : SerifFrame.fromDf df XH 0 + local sf2 : SerifFrame.fromDf df highBarPos 0 include : composite-proc sf.lt.full sf2.rt.full sf.rb.full do "Vew" create-glyph 'armn/Vew' 0x54E : glyph-proc local df : include : DivFrame 1 include : df.markSet.capital + local barPosB : barPos - df.mvs / 2 include : uBowl.shape - top -- XH - bottom -- (XH / 2 - df.mvs / 2) + top -- highBarPos + bottom -- barPosB left -- df.leftSB right -- (df.rightSB - [HSwToV df.mvs]) ada -- ArchDepthA @@ -44,6 +70,6 @@ glyph-block Letter-Armenian-Upper-Ken-Vew : begin include : VBar.r df.rightSB 0 CAP df.mvs include : [ArmHBar.right df].base if SLAB : begin - local sf : SerifFrame.fromDf df XH 0 + local sf : SerifFrame.fromDf df highBarPos 0 local sf2 : SerifFrame.fromDf df CAP 0 include : composite-proc sf.lt.full sf2.rt.full sf.rb.full diff --git a/packages/font-glyphs/src/letter/armenian/upper-ini.ptl b/packages/font-glyphs/src/letter/armenian/upper-ini.ptl deleted file mode 100644 index 87290341b..000000000 --- a/packages/font-glyphs/src/letter/armenian/upper-ini.ptl +++ /dev/null @@ -1,28 +0,0 @@ -$$include '../../meta/macros.ptl' - -import [mix linreg clamp fallback] from "@iosevka/util" -import [DependentSelector] from "@iosevka/glyph/relation" - -glyph-module - -glyph-block Letter-Armenian-Upper-Ini : begin - glyph-block-import CommonShapes - glyph-block-import Common-Derivatives - glyph-block-import Letter-Shared-Shapes : nShoulder SerifFrame - - do "Ini" - create-glyph 'armn/Ini' 0x53B : glyph-proc - local df : include : DivFrame 1 - include : df.markSet.capital - include : nShoulder.shape - top -- XH - bottom -- (XH / 2) - left -- (df.leftSB + [HSwToV df.mvs]) - right -- df.rightSB - ada -- ArchDepthA - adb -- ArchDepthB - stroke -- df.mvs - include : VBar.l df.leftSB 0 CAP df.mvs - if SLAB : begin - local sf : SerifFrame.fromDf df CAP 0 - include : composite-proc sf.lt.full sf.lb.full From f82c1dc1251881cd3072661864bb6bfb3736446e Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Tue, 11 Feb 2025 22:04:56 -0500 Subject: [PATCH 11/23] Make f ligatures slightly wider under QP. (#2678) --- changes/33.0.0.md | 2 ++ packages/font-glyphs/src/auto-build/composite.ptl | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/changes/33.0.0.md b/changes/33.0.0.md index 35598894c..b83043524 100644 --- a/changes/33.0.0.md +++ b/changes/33.0.0.md @@ -31,3 +31,5 @@ - CYRILLIC CAPITAL LETTER HWE (`U+A694`). - LATIN CAPITAL LETTER REVERSED HALF H (`U+A7F5`). - LATIN SMALL LETTER REVERSED HALF H (`U+A7F6`). +* Make certain characters slightly wider under Quasi-Proportional. Affected characters: + - LATIN SMALL LIGATURE FF (`U+FB00`) ... LATIN SMALL LIGATURE FFL (`U+FB04`). diff --git a/packages/font-glyphs/src/auto-build/composite.ptl b/packages/font-glyphs/src/auto-build/composite.ptl index 53cf83a97..0efb3ef06 100644 --- a/packages/font-glyphs/src/auto-build/composite.ptl +++ b/packages/font-glyphs/src/auto-build/composite.ptl @@ -1618,7 +1618,7 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin define [ToLetter] : glyph-proc define stdShrink : clamp 0.625 0.9 : StrokeWidthBlend 0.625 0.9 - createPhoneticLigatures ToLetter 'phonetic1' 1 2 stdShrink 1 : list + createPhoneticLigatures ToLetter 'phonetic1' (para.advanceScaleF * para.advanceScaleMM) 2 stdShrink 1 : list list 0xFB00 { 'f' 'f' } null list 0xFB01 { 'f/compLigLeft1' 'dotlessi/compLigRight' } null list 0xFB02 { 'f/compLigLeft2' 'l/compLigRight' } null @@ -1642,7 +1642,7 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin list 0xFB05 { 'longs/compLigLeft' 't/compLigRight' } null list 0xFB06 { 's/compLigLeft' 't/compLigRight' } null - createPhoneticLigatures ToLetter 'phonetic3' para.advanceScaleMM 3 stdShrink 1 : list + createPhoneticLigatures ToLetter 'phonetic3' (para.advanceScaleF * [mix 1 para.advanceScaleMM 2]) 3 stdShrink 1 : list list 0xFB03 { 'f/compLigLeft1' 'f/compLigLeft1' 'dotlessi/compLigRight' } null list 0xFB04 { 'f/compLigLeft3' 'f/compLigLeft2' 'l/compLigRight' } null From 397245ec33181bfdc41e26318807fa25af914a8b Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Sat, 15 Feb 2025 03:35:34 -0500 Subject: [PATCH 12/23] Add Latin Small Letter Script R (`U+AB4B`). (#2679) * Add Latin Lower Script r. * Cleanup. --- changes/33.0.0.md | 3 + .../src/letter/latin-ext/script-r.ptl | 68 +++++++++++++++++++ packages/font-glyphs/src/letter/latin.ptl | 1 + 3 files changed, 72 insertions(+) create mode 100644 packages/font-glyphs/src/letter/latin-ext/script-r.ptl diff --git a/changes/33.0.0.md b/changes/33.0.0.md index b83043524..0b9bce3e4 100644 --- a/changes/33.0.0.md +++ b/changes/33.0.0.md @@ -33,3 +33,6 @@ - LATIN SMALL LETTER REVERSED HALF H (`U+A7F6`). * Make certain characters slightly wider under Quasi-Proportional. Affected characters: - LATIN SMALL LIGATURE FF (`U+FB00`) ... LATIN SMALL LIGATURE FFL (`U+FB04`). +* Add Characters: + - LATIN SMALL LETTER SCRIPT R (`U+AB4B`). + - LATIN SMALL LETTER SCRIPT R WITH RING (`U+AB4C`). diff --git a/packages/font-glyphs/src/letter/latin-ext/script-r.ptl b/packages/font-glyphs/src/letter/latin-ext/script-r.ptl new file mode 100644 index 000000000..da54caa9d --- /dev/null +++ b/packages/font-glyphs/src/letter/latin-ext/script-r.ptl @@ -0,0 +1,68 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" + +glyph-module + +glyph-block Letter-Latin-Script-R : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Mark-Adjustment : LeaningAnchor + glyph-block-import Letter-Shared-Shapes : RightwardTailedBar + + define [xBarRight df] : df.width - df.leftSB * 1.5 + + define [ScriptRShape top left right fTailed sw] : glyph-proc + include : tagged 'strokeR' : if fTailed + RightwardTailedBar right 0 (top - 0.5 * sw) (sw -- sw) + VBar.r right 0 (top - 0.5 * sw) sw + include : dispiro + widths.rhs sw + g4 left (top - O) [heading Rightward] + g4 [mix left right 0.5] (top + O) + g4 right (top - O) [heading Rightward] + if SLAB : begin + include : VSerif.dl left (top - 0.5 * sw) (VJut - 0.5 * sw) (VJutStroke * (sw / Stroke)) + if [not fTailed] : include : if para.isItalic [HSerif.rb right 0 SideJut] : composite-proc + HSerif.rb (right - [HSwToV : 0.5 * sw]) 0 Jut + HSerif.lb (right - [HSwToV : 0.5 * sw]) 0 MidJutSide + + define ScriptRConfig : object + standard false + tailed true + + foreach { suffix doTail } [pairs-of ScriptRConfig] : do + create-glyph "rScript.\(suffix)" : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.e + include : ScriptRShape XH df.leftSB [xBarRight df] doTail df.mvs + include : LeaningAnchor.Below.VBar.r [xBarRight df] + + select-variant 'rScript' 0xAB4B (follow -- 'cyrl/che') + + create-glyph 'rScriptBowl' 0xAB4C : glyph-proc + local df : include : DivFrame para.advanceScaleM + include : df.markSet.e + local subDf : DivFrame (0.75 * para.advanceScaleM) 2 + + include : ScriptRShape XH SB [xBarRight subDf] true subDf.mvs + eject-contour 'strokeR' + + local swBowl : [AdviceStroke 2.75] * (subDf.mvs / Stroke) + local fineBowl : ShoulderFine * (swBowl / Stroke) + + local yBar : 0.5 * XH + 0.5 * swBowl + + local ada : ArchDepthAOf ArchDepth : df.rightSB - ([xBarRight subDf] - [HSwToV subDf.mvs]) + SB * 2 + local adb : ArchDepthBOf ArchDepth : df.rightSB - ([xBarRight subDf] - [HSwToV subDf.mvs]) + SB * 2 + + include : dispiro + flat ([xBarRight subDf] - [HSwToV subDf.mvs]) (XH - 0.5 * subDf.mvs) [widths.lhs.heading subDf.mvs Downward] + curl ([xBarRight subDf] - [HSwToV subDf.mvs]) [YSmoothMidL yBar 0 ada adb] + arch.lhs 0 (sw -- subDf.mvs) (swAfter -- swBowl) + g4 (df.rightSB - OX) [YSmoothMidR yBar 0 ada adb] + arch.lhs yBar (sw -- swBowl) (swAfter -- fineBowl) + g4.down.end ([xBarRight subDf] - [HSwToV fineBowl]) [YSmoothMidL yBar 0 ada adb] [widths.lhs.heading fineBowl Downward] + + include : LeaningAnchor.Above.VBar.m subDf.middle + include : LeaningAnchor.Below.VBar.m [mix ([xBarRight subDf] - [HSwToV subDf.mvs]) df.rightSB 0.5] diff --git a/packages/font-glyphs/src/letter/latin.ptl b/packages/font-glyphs/src/letter/latin.ptl index 8ddb5f85c..fe84bdf60 100644 --- a/packages/font-glyphs/src/letter/latin.ptl +++ b/packages/font-glyphs/src/letter/latin.ptl @@ -68,6 +68,7 @@ export : define [apply] : begin run-glyph-module "./latin-ext/rams-horn.mjs" run-glyph-module "./latin-ext/rhotic.mjs" run-glyph-module "./latin-ext/sakha-yat.mjs" + run-glyph-module "./latin-ext/script-r.mjs" run-glyph-module "./latin-ext/thorn.mjs" run-glyph-module "./latin-ext/upper-ae-oe.mjs" run-glyph-module "./latin-ext/upper-aa-ao.mjs" From 24dbed6a773d82a1a02e36f6da91c528d0a37fb9 Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Sat, 15 Feb 2025 19:16:50 -0500 Subject: [PATCH 13/23] Cleanup/Optimize glyph shape of Latin Small Letter Script R (`U+AB4B`). (#2680) * Optimize stroke width of Lower Script r with Bowl. * Treat top-left serif as tooth instead of serif. * Cleanup. --- .../src/letter/latin-ext/script-r.ptl | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/font-glyphs/src/letter/latin-ext/script-r.ptl b/packages/font-glyphs/src/letter/latin-ext/script-r.ptl index da54caa9d..336e5c48d 100644 --- a/packages/font-glyphs/src/letter/latin-ext/script-r.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/script-r.ptl @@ -15,17 +15,17 @@ glyph-block Letter-Latin-Script-R : begin define [ScriptRShape top left right fTailed sw] : glyph-proc include : tagged 'strokeR' : if fTailed RightwardTailedBar right 0 (top - 0.5 * sw) (sw -- sw) - VBar.r right 0 (top - 0.5 * sw) sw - include : dispiro - widths.rhs sw - g4 left (top - O) [heading Rightward] - g4 [mix left right 0.5] (top + O) - g4 right (top - O) [heading Rightward] - if SLAB : begin - include : VSerif.dl left (top - 0.5 * sw) (VJut - 0.5 * sw) (VJutStroke * (sw / Stroke)) - if [not fTailed] : include : if para.isItalic [HSerif.rb right 0 SideJut] : composite-proc - HSerif.rb (right - [HSwToV : 0.5 * sw]) 0 Jut - HSerif.lb (right - [HSwToV : 0.5 * sw]) 0 MidJutSide + VBar.r right 0 (top - 0.5 * sw) sw + include : union + VBar.l left (top - VJut) (top - 0.5 * sw) (VJutStroke * (sw / Stroke)) + dispiro + widths.rhs sw + g4 left (top - O) [heading Rightward] + g4 [mix left right 0.5] (top + O) + g4 right (top - O) [heading Rightward] + if (SLAB && !fTailed) : include : if para.isItalic [HSerif.rb right 0 SideJut] : composite-proc + HSerif.rb (right - [HSwToV : 0.5 * sw]) 0 Jut + HSerif.lb (right - [HSwToV : 0.5 * sw]) 0 MidJutSide define ScriptRConfig : object standard false @@ -48,19 +48,19 @@ glyph-block Letter-Latin-Script-R : begin include : ScriptRShape XH SB [xBarRight subDf] true subDf.mvs eject-contour 'strokeR' - local swBowl : [AdviceStroke 2.75] * (subDf.mvs / Stroke) + local swBowl : [AdviceStroke 3] * (subDf.mvs / Stroke) local fineBowl : ShoulderFine * (swBowl / Stroke) local yBar : 0.5 * XH + 0.5 * swBowl - local ada : ArchDepthAOf ArchDepth : df.rightSB - ([xBarRight subDf] - [HSwToV subDf.mvs]) + SB * 2 - local adb : ArchDepthBOf ArchDepth : df.rightSB - ([xBarRight subDf] - [HSwToV subDf.mvs]) + SB * 2 + local ada : ArchDepthAOf SmallArchDepth : df.width - ([xBarRight subDf] - subDf.leftSB) + [HSwToV subDf.mvs] + local adb : ArchDepthBOf SmallArchDepth : df.width - ([xBarRight subDf] - subDf.leftSB) + [HSwToV subDf.mvs] include : dispiro flat ([xBarRight subDf] - [HSwToV subDf.mvs]) (XH - 0.5 * subDf.mvs) [widths.lhs.heading subDf.mvs Downward] curl ([xBarRight subDf] - [HSwToV subDf.mvs]) [YSmoothMidL yBar 0 ada adb] arch.lhs 0 (sw -- subDf.mvs) (swAfter -- swBowl) - g4 (df.rightSB - OX) [YSmoothMidR yBar 0 ada adb] + g4 (df.rightSB - OX) [YSmoothMidR yBar 0 ada adb] [widths.lhs swBowl] arch.lhs yBar (sw -- swBowl) (swAfter -- fineBowl) g4.down.end ([xBarRight subDf] - [HSwToV fineBowl]) [YSmoothMidL yBar 0 ada adb] [widths.lhs.heading fineBowl Downward] From 779ac0fc59d09151498e11cdbf18d03b561ace10 Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Tue, 18 Feb 2025 23:44:01 -0500 Subject: [PATCH 14/23] =?UTF-8?q?Optimize=20serif=20behavior=20of=20`?= =?UTF-8?q?=EA=9C=B6`/`=EA=9C=B7`/`=D5=AD`=20under=20monospace.=20(#2681)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Optimize serifs of `Ꜷ`/`ꜷ`/`խ` under monospace. * Cleanup. * Cleanup. * Drop unneeded imports, code consistency. --- .../src/letter/armenian/lower-u-group.ptl | 4 +- .../src/letter/latin-ext/lower-ae-oe.ptl | 9 ++-- .../src/letter/latin-ext/upper-aa-ao.ptl | 5 +- .../font-glyphs/src/letter/latin/lower-n.ptl | 4 +- packages/font-glyphs/src/letter/latin/u.ptl | 21 ++++---- params/variants.toml | 54 +++++++------------ 6 files changed, 39 insertions(+), 58 deletions(-) diff --git a/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl b/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl index d72a1a5cd..1ee77839c 100644 --- a/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl +++ b/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl @@ -158,9 +158,9 @@ glyph-block Letter-Armenian-Lower-U-Group : begin local sf : SerifFrame.fromDf df Ascender Descender local sf2 : SerifFrame.fromDf df XH 0 include : composite-proc sf.lt.outer sf.lb.fullSide - if ([not para.isItalic] && sf2.enoughSpaceForFullSerifs) - include : composite-proc sf2.rt.inner sf2.rb.outer + if para.isItalic include sf2.rb.outer + include : composite-proc sf2.rt.inner sf2.rb.outer do "Ken" create-glyph 'armn/ken' 0x56F : glyph-proc diff --git a/packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl b/packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl index e9781ea3b..ad8d13942 100644 --- a/packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl @@ -11,7 +11,6 @@ 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 : OBarLeft - glyph-block-import Letter-Latin-Lower-M : MEnoughSpaceForFullSerifs glyph-block-export SubDfAndShift define [SubDfAndShift pShift df _o] : begin @@ -156,7 +155,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin include : df.markSet.e set-base-anchor 'cvDecompose' 0 0 include : Base subDf XH df.mvs - include : Slabs subDf XH + include : Slabs subDf XH df.mvs eject-contour 'strokeR' eject-contour 'serifRT' @@ -168,7 +167,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin include : difference Base subDf XH df.mvs intersection [MaskLeft subDf.middle] [MaskAbove (XH - subDf.smallArchDepthB)] - include : Slabs subDf XH + include : Slabs subDf XH df.mvs include : ApparentTranslate shift 0 eject-contour 'serifLT' @@ -278,7 +277,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin define [LhaRightLetterShape df top bot turn tension] : glyph-proc local stroke1f : if (stroke1 == 3) 4 stroke1 local lf : XLetterForm df top bot stroke1f stroke2 turn tension - sw -- df.mvs + sw -- df.mvs swCursiveEnd -- [AdviceStroke 3 df.adws] swCursiveCoEnd -- df.mvs swCursiveMid -- df.mvs @@ -411,7 +410,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" (follow -- [conditional-follow [MEnoughSpaceForFullSerifs] 'au/u/full' 'au/u/reduced']) + select-variant "au/u" select-variant "oeOpenO/left" (follow -- 'c') select-variant "cyrl/ae/a" (shapeFrom -- 'ae/a') select-variant "cyrl/yae/left" diff --git a/packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl b/packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl index dc2aee9a3..a8040f023 100644 --- a/packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl @@ -9,7 +9,6 @@ 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 do "A glyphs" glyph-block-import Letter-Latin-Upper-A : AShape AConfig @@ -114,9 +113,9 @@ glyph-block Letter-Latin-Upper-AA-AO : begin define df : DivFrame para.advanceScaleMM 3.5 local { subDf shift } : SubDfAndShift 1 df include : with-transform [ApparentTranslate shift 0] - union [Base subDf CAP df.mvs] [Slabs subDf CAP] + union [Base subDf CAP df.mvs] [Slabs subDf CAP df.mvs] - select-variant "AU/Right" (follow -- [conditional-follow [MEnoughSpaceForFullSerifs] 'AU/U/full' 'AU/U/reduced']) + select-variant "AU/Right" (follow -- 'AU/U') do "AU" select-variant 'AA/AU/Left' (follow -- 'A') diff --git a/packages/font-glyphs/src/letter/latin/lower-n.ptl b/packages/font-glyphs/src/letter/latin/lower-n.ptl index 6da73c053..40f5c5b00 100644 --- a/packages/font-glyphs/src/letter/latin/lower-n.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-n.ptl @@ -207,9 +207,7 @@ glyph-block Letter-Latin-Lower-N : begin straight.down.start RightSB y2 [widths.rhs.heading sw Downward] CurlyTail.f fine 0 m2 x2 (swBefore -- sw) if sLT : include : sLT [DivFrame 1] XH - if sLB : include : if (m2 - (SB + [HSwToV HalfStroke] + Jut) > 0.01 * Width) - NBottomLeftSerif [DivFrame 1] 0 - NBottomLeftOuterSerif [DivFrame 1] 0 + if sLB : include : sLB [DivFrame 1] 0 if (!tailed) : create-glyph "engCrossedTail.\(suffix)" : glyph-proc include : MarkSet.p diff --git a/packages/font-glyphs/src/letter/latin/u.ptl b/packages/font-glyphs/src/letter/latin/u.ptl index 57d96961e..b89ddc556 100644 --- a/packages/font-glyphs/src/letter/latin/u.ptl +++ b/packages/font-glyphs/src/letter/latin/u.ptl @@ -97,17 +97,20 @@ glyph-block Letter-Latin-U : begin define UUpper : UShapeGroup ArchDepthA ArchDepthB define ULower : UShapeGroup SmallArchDepthA SmallArchDepthB - define [UTopLeftSerif df yTop _sw] : tagged 'serifLT' - HSerif.lt df.leftSB yTop SideJut _sw + define [UTopLeftSerif df yTop _sw] : begin + local sf : SerifFrame.fromDf df yTop 0 (swSerif -- _sw) + return sf.lt.outer - define [UTopRightSerif df yTop _sw] : tagged 'serifRT' - HSerif.lt (df.rightSB - [HSwToV Stroke]) yTop SideJut _sw + define [UTopRightSerif df yTop _sw] : begin + local sf : SerifFrame.fromDf df yTop 0 (swSerif -- _sw) + return sf.rt.inner define [UBottomRightSerif df yTop _sw] : glyph-proc - include : tagged 'serifRB' : HSerif.rb df.rightSB 0 SideJut _sw + local sf : SerifFrame.fromDf df yTop 0 (swSerif -- _sw) + include sf.rb.outer define trAnchor currentGlyph.baseAnchors.trailing if trAnchor : begin - set-base-anchor 'trailing' (trAnchor.x + SideJut) trAnchor.y + set-base-anchor 'trailing' (trAnchor.x + sf.sideJut) trAnchor.y glyph-block-export USerifs define USerifs : namespace @@ -124,9 +127,9 @@ glyph-block Letter-Latin-U : begin include : UTopLeftSerif df top _sw include : UTopRightSerif df top _sw - export : define [BilateralMotion df top _sw] : glyph-proc - include : HSerif.lt df.leftSB top SideJut _sw - include : HSerif.rt df.rightSB top SideJut _sw + export : define [BilateralMotion df top _sw] : begin + local sf : SerifFrame.fromDf df top 0 (swSerif -- _sw) + return : composite-proc sf.lt.outer sf.rt.outer export : define [SmallToothless df top _sw] : glyph-proc include : UTopLeftSerif df top _sw diff --git a/params/variants.toml b/params/variants.toml index 5ca9ab16f..3b6c62034 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -1655,32 +1655,28 @@ rank = 1 descriptionAffix = "toothed shape" selectorAffix.U = "toothed" selectorAffix."U/sansSerif" = "toothed" -selectorAffix."AU/U/full" = "toothed" -selectorAffix."AU/U/reduced" = "toothed" +selectorAffix."AU/U" = "toothed" [prime.capital-u.variants-buildup.stages.body.tailed] rank = 2 descriptionAffix = "tailed shape" selectorAffix.U = "tailed" selectorAffix."U/sansSerif" = "tailed" -selectorAffix."AU/U/full" = "tailed" -selectorAffix."AU/U/reduced" = "tailed" +selectorAffix."AU/U" = "tailed" [prime.capital-u.variants-buildup.stages.body.toothless-corner] rank = 3 descriptionAffix = "toothless (corner bottom-right) shape" selectorAffix.U = "toothlessCorner" selectorAffix."U/sansSerif" = "toothlessCorner" -selectorAffix."AU/U/full" = "toothlessCorner" -selectorAffix."AU/U/reduced" = "toothlessCorner" +selectorAffix."AU/U" = "toothlessCorner" [prime.capital-u.variants-buildup.stages.body.toothless-rounded] rank = 4 descriptionAffix = "toothless (rounded) shape" selectorAffix.U = "toothlessRounded" selectorAffix."U/sansSerif" = "toothlessRounded" -selectorAffix."AU/U/full" = "toothlessRounded" -selectorAffix."AU/U/reduced" = "toothlessRounded" +selectorAffix."AU/U" = "toothlessRounded" [prime.capital-u.variants-buildup.stages.serifs.serifless] rank = 1 @@ -1688,8 +1684,7 @@ descriptionAffix = "serifs" descriptionJoiner = "without" selectorAffix.U = "serifless" selectorAffix."U/sansSerif" = "serifless" -selectorAffix."AU/U/full" = "serifless" -selectorAffix."AU/U/reduced" = "serifless" +selectorAffix."AU/U" = "serifless" [prime.capital-u.variants-buildup.stages.serifs.bottom-right-serifed] rank = 2 @@ -1697,8 +1692,7 @@ disableIf = [{ body = "NOT toothed" }] descriptionAffix = "serif at bottom-right" selectorAffix.U = "bottomRightSerifed" selectorAffix."U/sansSerif" = "serifless" -selectorAffix."AU/U/full" = "bottomRightSerifed" -selectorAffix."AU/U/reduced" = "bottomRightSerifed" +selectorAffix."AU/U" = "bottomRightSerifed" [prime.capital-u.variants-buildup.stages.serifs.motion-serifed] rank = 3 @@ -1706,8 +1700,7 @@ disableIf = [{ body = "toothless-corner" }, { body = "toothless-rounded" }] descriptionAffix = "motion serifs at top-left and bottom-right" selectorAffix.U = "unilateralMotionSerifed" selectorAffix."U/sansSerif" = "serifless" -selectorAffix."AU/U/full" = { if = [{ body = "toothed" }], then = "bottomRightSerifed", else = "serifless" } -selectorAffix."AU/U/reduced" = { if = [{ body = "toothed" }], then = "bottomRightSerifed", else = "serifless" } +selectorAffix."AU/U" = { if = [{ body = "toothed" }], then = "bottomRightSerifed", else = "serifless" } [prime.capital-u.variants-buildup.stages.serifs.unilateral-motion-serifed] rank = 4 @@ -1715,8 +1708,7 @@ disableIf = [{ body = "toothed" }, { body = "tailed" }] descriptionAffix = "motion serifs at left side" selectorAffix.U = "unilateralMotionSerifed" selectorAffix."U/sansSerif" = "serifless" -selectorAffix."AU/U/full" = "serifless" -selectorAffix."AU/U/reduced" = "serifless" +selectorAffix."AU/U" = "serifless" [prime.capital-u.variants-buildup.stages.serifs.bilateral-motion-serifed] rank = 5 @@ -1724,16 +1716,14 @@ disableIf = [{ body = "toothed" }, { body = "tailed" }] descriptionAffix = "motion serifs at both sides" selectorAffix.U = "bilateralMotionSerifed" selectorAffix."U/sansSerif" = "serifless" -selectorAffix."AU/U/full" = "bilateralMotionSerifed" -selectorAffix."AU/U/reduced" = "bilateralMotionSerifed" +selectorAffix."AU/U" = "bilateralMotionSerifed" [prime.capital-u.variants-buildup.stages.serifs.serifed] rank = 6 descriptionAffix = "serifs" selectorAffix.U = "serifed" selectorAffix."U/sansSerif" = "serifless" -selectorAffix."AU/U/full" = "serifed" -selectorAffix."AU/U/reduced" = { if = [{ body = "toothed" }], then = "bottomRightSerifed", else = { if = [{ body = "tailed" }], then = "serifless", else = "bilateralMotionSerifed" } } +selectorAffix."AU/U" = "serifed" @@ -4446,8 +4436,7 @@ selectorAffix."cyrl/dzhe.italic" = "toothed" selectorAffix."cyrl/tse.italic" = "toothed" selectorAffix."cyrl/tseRev.italic" = "toothed" selectorAffix."ue/u" = "toothed" -selectorAffix."au/u/full" = "toothed" -selectorAffix."au/u/reduced" = "toothed" +selectorAffix."au/u" = "toothed" [prime.u.variants-buildup.stages.body.tailed] rank = 2 @@ -4474,8 +4463,7 @@ selectorAffix."cyrl/dzhe.italic" = "tailed" selectorAffix."cyrl/tse.italic" = "toothed" selectorAffix."cyrl/tseRev.italic" = "tailed" selectorAffix."ue/u" = "toothed" -selectorAffix."au/u/full" = "tailed" -selectorAffix."au/u/reduced" = "tailed" +selectorAffix."au/u" = "tailed" [prime.u.variants-buildup.stages.body.toothless-corner] rank = 3 @@ -4502,8 +4490,7 @@ selectorAffix."cyrl/dzhe.italic" = "toothed" selectorAffix."cyrl/tse.italic" = "toothed" selectorAffix."cyrl/tseRev.italic" = "toothed" selectorAffix."ue/u" = "toothed" -selectorAffix."au/u/full" = "toothlessCorner" -selectorAffix."au/u/reduced" = "toothlessCorner" +selectorAffix."au/u" = "toothlessCorner" [prime.u.variants-buildup.stages.body.toothless-rounded] rank = 4 @@ -4530,8 +4517,7 @@ selectorAffix."cyrl/dzhe.italic" = "toothed" selectorAffix."cyrl/tse.italic" = "toothed" selectorAffix."cyrl/tseRev.italic" = "toothed" selectorAffix."ue/u" = "toothed" -selectorAffix."au/u/full" = "toothlessRounded" -selectorAffix."au/u/reduced" = "toothlessRounded" +selectorAffix."au/u" = "toothlessRounded" [prime.u.variants-buildup.stages.serifs.serifless] rank = 1 @@ -4559,8 +4545,7 @@ selectorAffix."cyrl/dzhe.italic" = "serifless" selectorAffix."cyrl/tse.italic" = "serifless" selectorAffix."cyrl/tseRev.italic" = "serifless" selectorAffix."ue/u" = "serifless" -selectorAffix."au/u/full" = "serifless" -selectorAffix."au/u/reduced" = "serifless" +selectorAffix."au/u" = "serifless" [prime.u.variants-buildup.stages.serifs.bottom-right-serifed] rank = 2 @@ -4588,8 +4573,7 @@ selectorAffix."cyrl/dzhe.italic" = "bottomRightSerifed" selectorAffix."cyrl/tse.italic" = "serifless" selectorAffix."cyrl/tseRev.italic" = "bottomRightSerifed" selectorAffix."ue/u" = "serifless" -selectorAffix."au/u/full" = "bottomRightSerifed" -selectorAffix."au/u/reduced" = "bottomRightSerifed" +selectorAffix."au/u" = "bottomRightSerifed" [prime.u.variants-buildup.stages.serifs.motion-serifed] rank = 3 @@ -4616,8 +4600,7 @@ selectorAffix."cyrl/dzhe.italic" = "motionSerifed" selectorAffix."cyrl/tse.italic" = "motionSerifed" selectorAffix."cyrl/tseRev.italic" = "motionSerifed" selectorAffix."ue/u" = "serifed" -selectorAffix."au/u/full" = {if = [{body = "toothed"}], then = "bottomRightSerifed", else = "serifless"} -selectorAffix."au/u/reduced" = {if = [{body = "toothed"}], then = "bottomRightSerifed", else = "serifless"} +selectorAffix."au/u" = {if = [{body = "toothed"}], then = "bottomRightSerifed", else = "serifless"} [prime.u.variants-buildup.stages.serifs.serifed] rank = 4 @@ -4644,8 +4627,7 @@ selectorAffix."cyrl/dzhe.italic" = "serifed" selectorAffix."cyrl/tse.italic" = "serifed" selectorAffix."cyrl/tseRev.italic" = "serifed" selectorAffix."ue/u" = "serifed" -selectorAffix."au/u/full" = "serifed" -selectorAffix."au/u/reduced" = {if = [{body = "toothed"}], then = "bottomRightSerifed", else = "serifless"} +selectorAffix."au/u" = "serifed" From fa6460d479ad7c9a5242ce9e37f89a76d67473d3 Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Thu, 20 Feb 2025 02:01:58 -0500 Subject: [PATCH 15/23] Add symmetric/asymmetric variants for Capital Thorn. (#2684) --- changes/33.0.0.md | 1 + .../src/letter/latin-ext/thorn.ptl | 86 ++++++++++--------- params/variants.toml | 60 ++++++++++--- 3 files changed, 93 insertions(+), 54 deletions(-) diff --git a/changes/33.0.0.md b/changes/33.0.0.md index 0b9bce3e4..0ec539c28 100644 --- a/changes/33.0.0.md +++ b/changes/33.0.0.md @@ -2,6 +2,7 @@ - Slightly narrower by default - Adjustable via metric override * \[**Breaking**\] Reordered variants for `W`, `a`, `b`, `g`, `q`, `w`, `α`, Cyrillic `а`, Cyrillic `ф`, and `$`. +* \[**Breaking**\] Add variants for Capital Thorn (`Þ`) with symmetric/asymmetric bowl position. * Refine shape of the following characters: - GREEK CAPITAL LETTER HETA (`U+0370`). - GREEK SMALL LETTER HETA (`U+0371`). diff --git a/packages/font-glyphs/src/letter/latin-ext/thorn.ptl b/packages/font-glyphs/src/letter/latin-ext/thorn.ptl index 85a52ef68..5f273df69 100644 --- a/packages/font-glyphs/src/letter/latin-ext/thorn.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/thorn.ptl @@ -1,6 +1,6 @@ $$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from "@iosevka/util" +import [mix linreg clamp fallback SuffixCfg] from "@iosevka/util" glyph-module @@ -13,16 +13,13 @@ glyph-block Letter-Latin-Thorn : begin define xThornLeftStroke : SB * 1.25 - define [yThornBowlBot top slab] : top * 0.25 + [if slab (Stroke * 0.125) 0] - define [yThornBowlTop top slab] : top - 0.7 * [yThornBowlBot top slab] + [if slab (-0.125) 0.25] * Stroke + define [yThornBowlAsymmetricBot top slab] : top * 0.25 + [if slab (Stroke * 0.125) 0] + define [yThornBowlAsymmetricTop top slab] : top - 0.7 * [yThornBowlAsymmetricBot top slab] + [if slab (-0.125) 0.25] * Stroke - define [yShoBowlBot top slab] : mix [yThornBowlBot top slab] (top - [yThornBowlTop top slab]) 0.5 - define [yShoBowlTop top slab] : top - [yShoBowlBot top slab] - - define [ThornShape top slabTop slabBot _yBowlBot _yBowlTop] : glyph-proc - local yBowlBot : fallback _yBowlBot [yThornBowlBot top slabBot] - local yBowlTop : fallback _yBowlTop [yThornBowlTop top slabBot] + define [yThornBowlSymmetricBot top slab] : mix [yThornBowlAsymmetricBot top slab] (top - [yThornBowlAsymmetricTop top slab]) 0.5 + define [yThornBowlSymmetricTop top slab] : top - [yThornBowlSymmetricBot top slab] + define [ThornShapeImpl top slabTop slabBot yBowlBot yBowlTop] : glyph-proc local turn : mix yBowlTop yBowlBot (ArchDepthB / (ArchDepthA + ArchDepthB)) local turnRadius : (yBowlTop - yBowlBot) / 2 @@ -43,45 +40,54 @@ glyph-block Letter-Latin-Thorn : begin then : include : composite-proc sf.lt.fullSide sf.lb.fullSide else : include sf.lt.outer - define [GrekShoShapeImpl top slabTop slabBot] : ThornShape top slabTop slabBot - yShoBowlBot top slabBot - yShoBowlTop top slabBot + include : LeaningAnchor.Above.VBar.l xThornLeftStroke + include : LeaningAnchor.Below.VBar.l xThornLeftStroke - define ThornConfig : object - serifless { false false } - motionSerifed { true false } - serifed { true true } + define [ThornAsymmetricShape top slabTop slabBot] : ThornShapeImpl top slabTop slabBot + yThornBowlAsymmetricBot top slabBot + yThornBowlAsymmetricTop top slabBot - foreach { suffix { st sb } } [Object.entries ThornConfig] : do + define [ThornSymmetricShape top slabTop slabBot] : ThornShapeImpl top slabTop slabBot + yThornBowlSymmetricBot top slabBot + yThornBowlSymmetricTop top slabBot + + define ThornConfig : SuffixCfg.weave + object # symmetry + "" ThornSymmetricShape + asymmetric ThornAsymmetricShape + object # serifs + serifless { false false } + motionSerifed { true false } + serifed { true true } + + foreach { suffix { Body { doST doSB } } } [Object.entries ThornConfig] : do create-glyph "Thorn.\(suffix)" : glyph-proc include : MarkSet.capital - include : ThornShape CAP st sb - include : LeaningAnchor.Above.VBar.l xThornLeftStroke - include : LeaningAnchor.Below.VBar.l xThornLeftStroke + include : Body CAP doST doSB - create-glyph "ThornStroke.\(suffix)" : glyph-proc - include : MarkSet.capital - include : ThornShape CAP st sb (CAP - [yThornBowlTop CAP sb]) (CAP - [yThornBowlBot CAP st]) - include : LeaningAnchor.Above.VBar.l xThornLeftStroke - include : LeaningAnchor.Below.VBar.l xThornLeftStroke - include : LetterBarOverlay.l.in - x -- xThornLeftStroke - top -- (CAP - [if st Stroke 0]) - bot -- (CAP - [yThornBowlBot CAP st]) + if (Body !== ThornAsymmetricShape) : begin + create-glyph "ThornStroke.\(suffix)" : glyph-proc + include : MarkSet.capital + include : ThornShapeImpl CAP doST doSB + CAP - [yThornBowlAsymmetricTop CAP doSB] + CAP - [yThornBowlAsymmetricBot CAP doST] + include : LetterBarOverlay.l.in + x -- xThornLeftStroke + top -- (CAP - [if doST Stroke 0]) + bot -- (CAP - [yThornBowlAsymmetricBot CAP doST]) - create-glyph "ThornStrokeBottom.\(suffix)" : glyph-proc - include [refer-glyph "Thorn.\(suffix)"] AS_BASE ALSO_METRICS - include : LetterBarOverlay.l.in - x -- xThornLeftStroke - bot -- (0 + [if sb Stroke 0]) - top -- (0 + [yThornBowlBot CAP sb]) + if (Body === ThornAsymmetricShape) : begin + create-glyph "ThornStrokeBottom.\(suffix)" : glyph-proc + include [refer-glyph "Thorn.\(suffix)"] AS_BASE ALSO_METRICS + include : LetterBarOverlay.l.in + x -- xThornLeftStroke + bot -- (0 + [if doSB Stroke 0]) + top -- (0 + [yThornBowlAsymmetricBot CAP doSB]) select-variant 'Thorn' 0xDE - select-variant 'ThornStroke' 0xA764 (follow -- 'Thorn') - select-variant 'ThornStrokeBottom' 0xA766 (follow -- 'Thorn') + select-variant 'ThornStroke' 0xA764 + select-variant 'ThornStrokeBottom' 0xA766 create-glyph 'grek/Sho' 0x3F7 : glyph-proc include : MarkSet.capital - include : GrekShoShapeImpl CAP SLAB SLAB - include : LeaningAnchor.Above.VBar.l xThornLeftStroke - include : LeaningAnchor.Below.VBar.l xThornLeftStroke + include : ThornSymmetricShape CAP SLAB SLAB diff --git a/params/variants.toml b/params/variants.toml index 3b6c62034..0168bdd01 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -5373,7 +5373,7 @@ selectorAffix.eszet = "tailed" [prime.eszet.variants-buildup.stages.serifs.serifless] rank = 1 -desceiptioAffix = "serifs" +descriptionAffix = "serifs" descriptionJoiner = "without" selectorAffix.eszet = "serifless" @@ -5430,26 +5430,56 @@ selector."eth" = "curly-bar" [prime.capital-thorn] sampler = "Þ" -samplerExplain = "Capital Thorn (`Þ`)" +samplerExplain = "Capital Thorn" tagKind = "letter" -[prime.capital-thorn.variants.serifless] +[prime.capital-thorn.variants-buildup] +entry = "symmetry" +descriptionLeader = "Capital Thorn (`Þ`)" + +[prime.capital-thorn.variants-buildup.stages.symmetry."*"] +next = "serifs" + +[prime.capital-thorn.variants-buildup.stages.symmetry.symmetric] rank = 1 -description = "Capital Thorn (`Þ`) without serifs" -selector.Thorn = "serifless" -selector.Wynn = "serifless" +keyAffix = "" +selectorAffix.Thorn = "" +selectorAffix.ThornStroke = "" +selectorAffix.ThornStrokeBottom = "asymmetric" +selectorAffix.Wynn = "" -[prime.capital-thorn.variants.motion-serifed] +[prime.capital-thorn.variants-buildup.stages.symmetry.asymmetric] rank = 2 -description = "Capital Thorn (`Þ`) with motion serifs" -selector.Thorn = "motionSerifed" -selector.Wynn = "motionSerifed" +descriptionAffix = "asymmetric shape" +selectorAffix.Thorn = "asymmetric" +selectorAffix.ThornStroke = "" +selectorAffix.ThornStrokeBottom = "asymmetric" +selectorAffix.Wynn = "" -[prime.capital-thorn.variants.serifed] +[prime.capital-thorn.variants-buildup.stages.serifs.serifless] +rank = 1 +descriptionAffix = "serifs" +descriptionJoiner = "without" +selectorAffix.Thorn = "serifless" +selectorAffix.ThornStroke = "serifless" +selectorAffix.ThornStrokeBottom = "serifless" +selectorAffix.Wynn = "serifless" + +[prime.capital-thorn.variants-buildup.stages.serifs.motion-serifed] +rank = 2 +descriptionAffix = "motion serifs" +selectorAffix.Thorn = "motionSerifed" +selectorAffix.ThornStroke = "motionSerifed" +selectorAffix.ThornStrokeBottom = "motionSerifed" +selectorAffix.Wynn = "motionSerifed" + +[prime.capital-thorn.variants-buildup.stages.serifs.serifed] rank = 3 -description = "Capital Thorn (`Þ`) with serifs" -selector.Thorn = "serifed" -selector.Wynn = "serifed" +descriptionAffix = "serifs" +selectorAffix.Thorn = "serifed" +selectorAffix.ThornStroke = "serifed" +selectorAffix.ThornStrokeBottom = "serifed" +selectorAffix.Wynn = "serifed" @@ -10687,6 +10717,7 @@ y = "straight-turn-serifless" capital-eszet = "rounded-serifless" long-s = "bent-hook-middle-serifed" eszet = "longs-s-lig-middle-serifed" +capital-thorn = "asymmetric-serifless" lower-thorn = "motion-serifed" capital-gamma = "serifed" lower-iota = "serifed-semi-tailed" @@ -10748,6 +10779,7 @@ z = "straight-serifed" capital-eszet = "rounded-serifed" long-s = "bent-hook-double-serifed" eszet = "longs-s-lig-dual-serifed" +capital-thorn = "asymmetric-serifed" lower-thorn = "serifed" lower-mu = "toothed-serifed" cyrl-a = "double-storey-hook-inward-serifed-serifed" From cd2661d653cd78b3303fba2e07dcaa3f73feb415 Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Thu, 20 Feb 2025 09:45:31 -0500 Subject: [PATCH 16/23] Cleanup of #2684 . (#2685) --- .../src/letter/latin-ext/thorn.ptl | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/packages/font-glyphs/src/letter/latin-ext/thorn.ptl b/packages/font-glyphs/src/letter/latin-ext/thorn.ptl index 5f273df69..b7963a76a 100644 --- a/packages/font-glyphs/src/letter/latin-ext/thorn.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/thorn.ptl @@ -13,12 +13,12 @@ glyph-block Letter-Latin-Thorn : begin define xThornLeftStroke : SB * 1.25 + define [yThornBowlSymmetricBot top slab] : top * 0.19 + [if slab (Stroke * 0.375) 0] + define [yThornBowlSymmetricTop top slab] : top - [yThornBowlSymmetricBot top slab] + define [yThornBowlAsymmetricBot top slab] : top * 0.25 + [if slab (Stroke * 0.125) 0] define [yThornBowlAsymmetricTop top slab] : top - 0.7 * [yThornBowlAsymmetricBot top slab] + [if slab (-0.125) 0.25] * Stroke - define [yThornBowlSymmetricBot top slab] : mix [yThornBowlAsymmetricBot top slab] (top - [yThornBowlAsymmetricTop top slab]) 0.5 - define [yThornBowlSymmetricTop top slab] : top - [yThornBowlSymmetricBot top slab] - define [ThornShapeImpl top slabTop slabBot yBowlBot yBowlTop] : glyph-proc local turn : mix yBowlTop yBowlBot (ArchDepthB / (ArchDepthA + ArchDepthB)) local turnRadius : (yBowlTop - yBowlBot) / 2 @@ -43,14 +43,14 @@ glyph-block Letter-Latin-Thorn : begin include : LeaningAnchor.Above.VBar.l xThornLeftStroke include : LeaningAnchor.Below.VBar.l xThornLeftStroke - define [ThornAsymmetricShape top slabTop slabBot] : ThornShapeImpl top slabTop slabBot - yThornBowlAsymmetricBot top slabBot - yThornBowlAsymmetricTop top slabBot - define [ThornSymmetricShape top slabTop slabBot] : ThornShapeImpl top slabTop slabBot yThornBowlSymmetricBot top slabBot yThornBowlSymmetricTop top slabBot + define [ThornAsymmetricShape top slabTop slabBot] : ThornShapeImpl top slabTop slabBot + yThornBowlAsymmetricBot top slabBot + yThornBowlAsymmetricTop top slabBot + define ThornConfig : SuffixCfg.weave object # symmetry "" ThornSymmetricShape @@ -81,13 +81,11 @@ glyph-block Letter-Latin-Thorn : begin include [refer-glyph "Thorn.\(suffix)"] AS_BASE ALSO_METRICS include : LetterBarOverlay.l.in x -- xThornLeftStroke - bot -- (0 + [if doSB Stroke 0]) - top -- (0 + [yThornBowlAsymmetricBot CAP doSB]) + bot -- [if doSB Stroke 0] + top -- [yThornBowlAsymmetricBot CAP doSB] select-variant 'Thorn' 0xDE select-variant 'ThornStroke' 0xA764 select-variant 'ThornStrokeBottom' 0xA766 - create-glyph 'grek/Sho' 0x3F7 : glyph-proc - include : MarkSet.capital - include : ThornSymmetricShape CAP SLAB SLAB + alias 'grek/Sho' 0x3F7 : if SLAB 'Thorn.serifed' 'Thorn.serifless' From c661de740362d4a72ac1ff4a1921b1cceebb3063 Mon Sep 17 00:00:00 2001 From: Logo <21302803+Logo121@users.noreply.github.com> Date: Fri, 21 Feb 2025 10:33:45 +0800 Subject: [PATCH 17/23] 4 Smalltalk symbols (and 2 other arrows) (#2686) * oshape variants * observer eye * new arrows * keyhole and caret * log --- changes/33.0.0.md | 6 ++ .../src/common/o-shape-variants.ptl | 93 +++++++++++++++++++ packages/font-glyphs/src/common/shapes.ptl | 4 +- packages/font-glyphs/src/index.ptl | 1 + packages/font-glyphs/src/number/0.ptl | 54 +---------- packages/font-glyphs/src/symbol/arrow.ptl | 24 +++-- .../src/symbol/math/letter-like.ptl | 2 +- .../font-glyphs/src/symbol/math/relation.ptl | 11 +++ .../src/symbol/mosaic/split-graphic.ptl | 19 +--- .../src/symbol/pictograph/faces.ptl | 2 +- .../symbol/pictograph/powerline-and-gui.ptl | 37 +++++++- .../src/symbol/pictograph/stick-figure.ptl | 6 +- 12 files changed, 171 insertions(+), 88 deletions(-) create mode 100644 packages/font-glyphs/src/common/o-shape-variants.ptl diff --git a/changes/33.0.0.md b/changes/33.0.0.md index 0ec539c28..1dbea7eee 100644 --- a/changes/33.0.0.md +++ b/changes/33.0.0.md @@ -35,5 +35,11 @@ * Make certain characters slightly wider under Quasi-Proportional. Affected characters: - LATIN SMALL LIGATURE FF (`U+FB00`) ... LATIN SMALL LIGATURE FFL (`U+FB04`). * Add Characters: + - OBSERVER EYE SYMBOL (`U+23FF`). - LATIN SMALL LETTER SCRIPT R (`U+AB4B`). - LATIN SMALL LETTER SCRIPT R WITH RING (`U+AB4C`). + - KEYHOLE (`U+1CEB1`). + - BLACK RIGHT TRIANGLE CARET (`U+1CEB3`). + - RIGHTWARDS ARROW WITH LOWER HOOK (`U+1F8B2`). + - LEFTWARDS ARROW FROM DOWNWARDS ARROW (`U+1F8C0`). + - RIGHTWARDS ARROW FROM DOWNWARDS ARROW (`U+1F8C1`). diff --git a/packages/font-glyphs/src/common/o-shape-variants.ptl b/packages/font-glyphs/src/common/o-shape-variants.ptl new file mode 100644 index 000000000..012d7d9cb --- /dev/null +++ b/packages/font-glyphs/src/common/o-shape-variants.ptl @@ -0,0 +1,93 @@ +$$include '../meta/macros.ptl' + +import [mix linreg clamp fallback boole boolePn] from "@iosevka/util" +import [Transform] from "@iosevka/geometry/transform" +import [Point] from "@iosevka/geometry/point" +import [FunctionInterpolator AfCombine] from "@iosevka/geometry/spiro-control" +import [RadicalGeometry StrokeGeometry RemoveHolesGeometry] from "@iosevka/geometry" + +glyph-module + +glyph-block Common-OShape-Variants : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + + glyph-block-export OvalShapeT DiamondShapeT RoundRectShapeT + define [OvalShapeT sink t b l r _sw _refAda _refAdb] : begin + local m : mix l r 0.5 + local sw : fallback _sw Stroke + local refAda : fallback _refAda SmallArchDepthA + local refAdb : fallback _refAdb SmallArchDepthB + + return : sink + widths.rhs sw + arch.rhs.centerAt.ltr.t m t (sw -- sw) + archv + g4 (r - OX) [YSmoothMidR t b refAda refAdb] + arcvh + arch.rhs.centerAt.rtl.b m b (sw -- sw) + archv + g4 (l + OX) [YSmoothMidL t b refAda refAdb] + arcvh + close + + define diamondFineRatio : [AdviceStroke 3] / [AdviceStroke 2] + define [DiamondShapeT sink t b l r sw] : begin + local body : fallback sw : AdviceStroke 2 + local fine : diamondFineRatio * body + local sw1 fine + local sw2 : mix body fine 0.375 + + local mxb : arch.adjust-x.bot [mix (l - OX) (r + OX) 0.5] (sw -- fine) + local mxt : arch.adjust-x.top [mix (l - OX) (r + OX) 0.5] (sw -- fine) + local myl : YSmoothMidL t b + local myr : YSmoothMidR t b + + local p1 : 0.45 + 0.8 * (fine / (r - l)) + local p2 : 0.15 + 0.5 * (fine / (t - b)) + local p3 : 0.35 + 0.8 * (body / (t - b)) + local p4 : 0.15 + 0.0 * (body / (r - l)) + + local pcx 0.5 + local pcy 0.1 + + return : sink + g2.right.mid mxb (b + O) [widths.lhs fine] + alsoThru.g2 pcx pcy + flat [mix mxb r p1] [mix b myr p2] [widths.lhs sw1] + curl [mix mxb r (1 - p4)] [mix b myr (1 - p3)] [widths.lhs sw2] + g2.up.mid (r - OX) myr [widths.lhs body] + flat [mix r mxt p4] [mix myr t p3] [widths.lhs sw2] + curl [mix r mxt (1 - p1)] [mix myr t (1 - p2)] [widths.lhs sw1] + alsoThru.g2 (1 - pcx) (1 - pcy) + g2.left.mid mxt (t - O) [widths.lhs fine] + alsoThru.g2 pcx pcy + flat [mix mxt l p1] [mix t myl p2] [widths.lhs sw1] + curl [mix mxt l (1 - p4)] [mix t myl (1 - p3)] [widths.lhs sw2] + g2.down.mid (l + OX) myl [widths.lhs body] + flat [mix l mxb p4] [mix myl b p3] [widths.lhs sw2] + curl [mix l mxb (1 - p1)] [mix myl b (1 - p2)] [widths.lhs sw1] + alsoThru.g2 (1 - pcx) (1 - pcy) + close + + define [RoundRectShapeT sink u d l r _sw _cr] : begin + local sw : fallback _sw Stroke + local cr : fallback _cr : clamp ((r - l) / 5) ((r - l) / 2.5) : HSwToV sw + local lMid : l + cr + local rMid : r - cr + local ada : ArchDepthAOf cr (r - l) + local adb : ArchDepthBOf cr (r - l) + + return : sink + widths.lhs sw + arch.lhs.centerAt.rtl.t lMid u (sw -- sw) (knot-ty -- curl) + archv + flatside.ld l d u ada adb + arcvh + arch.lhs.centerAt.ltr.b lMid d (sw -- sw) (knot-ty -- flat) + arch.lhs.centerAt.ltr.b rMid d (sw -- sw) (knot-ty -- curl) + archv + flatside.ru r d u ada adb + arcvh + arch.lhs.centerAt.rtl.t rMid u (sw -- sw) (knot-ty -- flat) + close diff --git a/packages/font-glyphs/src/common/shapes.ptl b/packages/font-glyphs/src/common/shapes.ptl index 7929b29b4..786277341 100644 --- a/packages/font-glyphs/src/common/shapes.ptl +++ b/packages/font-glyphs/src/common/shapes.ptl @@ -81,7 +81,7 @@ glyph-block CommonShapes : begin spiro-outline corner (-VERY-FAR) [mix y1 y2 (-ext)] corner [mix x1 x2 (-ext)] [mix y1 y2 (-ext)] - corner [mix x2 x2 (1 + ext)] [mix y1 y2 (1 + ext)] + corner [mix x1 x2 (1 + ext)] [mix y1 y2 (1 + ext)] corner (-VERY-FAR) [mix y1 y2 (1 + ext)] glyph-block-export MaskRightLine @@ -90,7 +90,7 @@ glyph-block CommonShapes : begin spiro-outline corner (+VERY-FAR) [mix y1 y2 (-ext)] corner [mix x1 x2 (-ext)] [mix y1 y2 (-ext)] - corner [mix x2 x2 (1 + ext)] [mix y1 y2 (1 + ext)] + corner [mix x1 x2 (1 + ext)] [mix y1 y2 (1 + ext)] corner (+VERY-FAR) [mix y1 y2 (1 + ext)] glyph-block-export HalfRectTriangle diff --git a/packages/font-glyphs/src/index.ptl b/packages/font-glyphs/src/index.ptl index 2ac190f6e..c92b68e32 100644 --- a/packages/font-glyphs/src/index.ptl +++ b/packages/font-glyphs/src/index.ptl @@ -67,6 +67,7 @@ export : define [buildGlyphs para recursive] : begin ### HERE WE GO run-glyph-module "./common/derivatives.mjs" run-glyph-module "./common/shapes.mjs" + run-glyph-module "./common/o-shape-variants.mjs" run-glyph-module "./space/index.mjs" run-glyph-module "./marks/index.mjs" diff --git a/packages/font-glyphs/src/number/0.ptl b/packages/font-glyphs/src/number/0.ptl index 768a46a8d..7b46d7073 100644 --- a/packages/font-glyphs/src/number/0.ptl +++ b/packages/font-glyphs/src/number/0.ptl @@ -8,6 +8,7 @@ glyph-module glyph-block Digits-Zero : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives + glyph-block-import Common-OShape-Variants : OvalShapeT DiamondShapeT glyph-block-import Digits-Shared : OnumHeight OnumMarks CodeLnum CodeOnum define CircleInnerWidth : RightSB - SB - [HSwToV : 2 * Stroke] @@ -15,58 +16,6 @@ glyph-block Digits-Zero : begin define CutoutVerticalStrokeWidth : Math.max (0.2 * CircleInnerWidth) : Math.min (0.4 * CircleInnerWidth) [AdviceStroke 3] define [CutoutStrokeWidth top] : Math.max (0.1 * top) : Math.min (0.125 * top) (0.5 * CircleInnerWidth) [AdviceStroke 3] - glyph-block-export OvalShapeT - define [OvalShapeT sink t b l r sw] : let [m : mix l r 0.5] : sink - widths.rhs [fallback sw Stroke] - arch.rhs.centerAt.ltr.t m t - archv - g4 (r - OX) [YSmoothMidR t b SmallArchDepthA SmallArchDepthB] - arcvh - arch.rhs.centerAt.rtl.b m b - archv - g4 (l + OX) [YSmoothMidL t b SmallArchDepthA SmallArchDepthB] - arcvh - close - - define [DiamondShapeT sink t b l r] : begin - - local fine : AdviceStroke 3 - local body : AdviceStroke 2 - local sw1 fine - local sw2 : mix body fine 0.375 - - local mxb : arch.adjust-x.bot [mix (l - OX) (r + OX) 0.5] (sw -- fine) - local mxt : arch.adjust-x.top [mix (l - OX) (r + OX) 0.5] (sw -- fine) - local myl : YSmoothMidL t b - local myr : YSmoothMidR t b - - local p1 : 0.45 + 0.8 * (fine / (r - l)) - local p2 : 0.15 + 0.5 * (fine / (t - b)) - local p3 : 0.35 + 0.8 * (body / (t - b)) - local p4 : 0.15 + 0.0 * (body / (r - l)) - - local pcx 0.5 - local pcy 0.1 - - return : sink - g2.right.mid mxb (b + O) [widths.lhs fine] - alsoThru.g2 pcx pcy - flat [mix mxb r p1] [mix b myr p2] [widths.lhs sw1] - curl [mix mxb r (1 - p4)] [mix b myr (1 - p3)] [widths.lhs sw2] - g2.up.mid (r - OX) myr [widths.lhs body] - flat [mix r mxt p4] [mix myr t p3] [widths.lhs sw2] - curl [mix r mxt (1 - p1)] [mix myr t (1 - p2)] [widths.lhs sw1] - alsoThru.g2 (1 - pcx) (1 - pcy) - g2.left.mid mxt (t - O) [widths.lhs fine] - alsoThru.g2 pcx pcy - flat [mix mxt l p1] [mix t myl p2] [widths.lhs sw1] - curl [mix mxt l (1 - p4)] [mix t myl (1 - p3)] [widths.lhs sw2] - g2.down.mid (l + OX) myl [widths.lhs body] - flat [mix l mxb p4] [mix myl b p3] [widths.lhs sw2] - curl [mix l mxb (1 - p1)] [mix myl b (1 - p2)] [widths.lhs sw1] - alsoThru.g2 (1 - pcx) (1 - pcy) - close - define [ZeroShapeBase shapeT] : namespace define [outlineT sink offsetX offsetY top] : shapeT sink (top - offsetY) (offsetY) (SB + offsetX) (RightSB - offsetX) export : define [Shape top] : outlineT dispiro 0 0 top @@ -76,7 +25,6 @@ glyph-block Digits-Zero : begin define Oval : ZeroShapeBase OvalShapeT define Diamond : ZeroShapeBase DiamondShapeT - define [InsetShape zero overlay fnMask height] : glyph-proc include zero if fnMask diff --git a/packages/font-glyphs/src/symbol/arrow.ptl b/packages/font-glyphs/src/symbol/arrow.ptl index 9623b9bfb..3f8caaa3e 100644 --- a/packages/font-glyphs/src/symbol/arrow.ptl +++ b/packages/font-glyphs/src/symbol/arrow.ptl @@ -618,12 +618,13 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 MkArrow TrigDashArrowShape [MangleName 'trigDashArrowDown'] [MangleUnicode 0x2B6D] arrowMidX arrowTop arrowMidX arrowBot do "Hook Straight Arrow" - MkArrow [HookArrowShape 1] [MangleName 'hookArrowLeft'] [MangleUnicode 0x21A9] arrowRSB SymbolMid arrowSB SymbolMid - MkArrow [HookArrowShape (-1)] [MangleName 'hookArrowRight'] [MangleUnicode 0x21AA] arrowSB SymbolMid arrowRSB SymbolMid - MkArrow [HookArrowShape (-1)] [MangleName 'hookArrowUpLeft'] [MangleUnicode 0x2923] arrowDiagRSB arrowDiagBot arrowDiagSB arrowDiagTop - MkArrow [HookArrowShape 1] [MangleName 'hookArrowUpRight'] [MangleUnicode 0x2924] arrowDiagSB arrowDiagBot arrowDiagRSB arrowDiagTop - MkArrow [HookArrowShape (-1)] [MangleName 'hookArrowDownRight'] [MangleUnicode 0x2925] arrowDiagSB arrowDiagTop arrowDiagRSB arrowDiagBot - MkArrow [HookArrowShape 1] [MangleName 'hookArrowDownLeft'] [MangleUnicode 0x2926] arrowDiagRSB arrowDiagTop arrowDiagSB arrowDiagBot + MkArrow [HookArrowShape 1] [MangleName 'hookArrowLeft'] [MangleUnicode 0x21A9] arrowRSB SymbolMid arrowSB SymbolMid + MkArrow [HookArrowShape (-1)] [MangleName 'hookArrowRight'] [MangleUnicode 0x21AA] arrowSB SymbolMid arrowRSB SymbolMid + MkArrow [HookArrowShape (-1)] [MangleName 'hookArrowUpLeft'] [MangleUnicode 0x2923] arrowDiagRSB arrowDiagBot arrowDiagSB arrowDiagTop + MkArrow [HookArrowShape 1] [MangleName 'hookArrowUpRight'] [MangleUnicode 0x2924] arrowDiagSB arrowDiagBot arrowDiagRSB arrowDiagTop + MkArrow [HookArrowShape (-1)] [MangleName 'hookArrowDownRight'] [MangleUnicode 0x2925] arrowDiagSB arrowDiagTop arrowDiagRSB arrowDiagBot + MkArrow [HookArrowShape 1] [MangleName 'hookArrowDownLeft'] [MangleUnicode 0x2926] arrowDiagRSB arrowDiagTop arrowDiagSB arrowDiagBot + MkArrow [HookArrowShape 1] [MangleName 'lowerHookArrowRight'] [MangleUnicode 0x1F8B2] arrowSB SymbolMid arrowRSB SymbolMid do "Loop Straight Arrow" MkArrow [LoopArrowShape 1] [MangleName 'loopArrowLeft'] [MangleUnicode 0x21AB] arrowRSB SymbolMid arrowSB SymbolMid @@ -1477,6 +1478,17 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 create-glyph [MangleName 'uni2948'] [MangleUnicode 0x2948] RingOverlayShape 'arrowLeftRight' 'thinArrowLeftRight' 'arrRingOverLR' 'arrRingOverLRMask' + do "Branched Arrows" + local branchInset : 0.5 * MosaicWidth - 1.5 * arrowHeadSize + create-glyph [MangleName 'arrowLeftFromDown'] [MangleUnicode 0x1F8C0] : composite-proc + refer-glyph : MangleName 'arrowDown' + intersection [MaskLeft arrowMidX] + with-transform [ApparentTranslate branchInset 0] : refer-glyph : MangleName 'arrowLeft' + create-glyph [MangleName 'arrowRightFromDown'] [MangleUnicode 0x1F8C1] : composite-proc + refer-glyph : MangleName 'arrowDown' + intersection [MaskRight arrowMidX] + with-transform [ApparentTranslate (-branchInset) 0] : refer-glyph : MangleName 'arrowRight' + do "Stacked Arrows" local hcDist : Math.max (halfArrowSw * 5) (arrowWidth / 2) VCombine [MangleName 'uni21C4'] [MangleUnicode 0x21C4] [MangleName 'arrowRight'] [MangleName 'arrowLeft'] (arrowHeadSize * 1.75) diff --git a/packages/font-glyphs/src/symbol/math/letter-like.ptl b/packages/font-glyphs/src/symbol/math/letter-like.ptl index 5f1bff635..0ddab055b 100644 --- a/packages/font-glyphs/src/symbol/math/letter-like.ptl +++ b/packages/font-glyphs/src/symbol/math/letter-like.ptl @@ -7,7 +7,7 @@ glyph-module glyph-block Symbol-Math-Letter-Like : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Digits-Zero : OvalShapeT + glyph-block-import Common-OShape-Variants : OvalShapeT turned 'forall' 0x2200 'A.straightSerifless' Middle (CAP / 2) alias 'exists' 0x2203 'revE.serifless' diff --git a/packages/font-glyphs/src/symbol/math/relation.ptl b/packages/font-glyphs/src/symbol/math/relation.ptl index 4307a6a3c..3dc9ea493 100644 --- a/packages/font-glyphs/src/symbol/math/relation.ptl +++ b/packages/font-glyphs/src/symbol/math/relation.ptl @@ -497,6 +497,17 @@ glyph-block Symbol-Math-Relation-Inequality : begin LessShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB [AdviceStroke 4] DrawAt (RightSB - DotRadius) SymbolMid (DotRadius * kr * [AdviceStroke 4] / Stroke - ov) + create-glyph 'observerEye' 0x23FF : glyph-proc + local lensXP 0.8 + local lensRX : (RightSB - SB) * (1 - lensXP) + [HSwToV : 0.25 * OperatorStroke] + local lensRY : dH * lensXP + 0.25 * OperatorStroke + include : refer-glyph 'less' + include : intersection + union + LessMaskShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB + MaskRight RightSB + Ellipse.Outline.At [mix SB RightSB lensXP] SymbolMid lensRX lensRY + create-glyph 'normalSubsetOf' 0x22B2 : glyph-proc include : NormalSubsetShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB diff --git a/packages/font-glyphs/src/symbol/mosaic/split-graphic.ptl b/packages/font-glyphs/src/symbol/mosaic/split-graphic.ptl index 92fe28861..5fcdf4b1f 100644 --- a/packages/font-glyphs/src/symbol/mosaic/split-graphic.ptl +++ b/packages/font-glyphs/src/symbol/mosaic/split-graphic.ptl @@ -9,6 +9,7 @@ glyph-module glyph-block Symbol-Mosaic-Split-Graphic : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives + glyph-block-import Common-OShape-Variants : RoundRectShapeT glyph-block-import Symbol-Pictograph-Stick-Figure : StickFigureKit glyph-block-import Symbol-Pictograph-Keyboard : KeyGen @@ -103,23 +104,7 @@ glyph-block Symbol-Mosaic-Split-Graphic : begin set scaffold.screenInset : (top - bottom) / 8 set scaffold.cornerRad : (top - bottom) / 8 - define [Screen top bot left right] : glyph-proc - include : dispiro - widths.lhs graphicSw - flat left ([mix top bot 0.5] + 1) - curl left (bot + scaffold.cornerRad) - arcvh 2 - flat (left + scaffold.cornerRad) bot - curl (right - scaffold.cornerRad) bot - archv 2 - flat right (bot + scaffold.cornerRad) - curl right (top - scaffold.cornerRad) - arcvh 2 - flat (right - scaffold.cornerRad) top - curl (left + scaffold.cornerRad) top - archv 2 - flat left (top - scaffold.cornerRad) - flat left ([mix top bot 0.5] - 1) + define [Screen top bot left right] : RoundRectShapeT dispiro top bot left right graphicSw scaffold.cornerRad define [Television top bot left right] : glyph-proc local tvBot : mix bot top scaffold.legSize diff --git a/packages/font-glyphs/src/symbol/pictograph/faces.ptl b/packages/font-glyphs/src/symbol/pictograph/faces.ptl index c9dea000f..e2421a08e 100644 --- a/packages/font-glyphs/src/symbol/pictograph/faces.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/faces.ptl @@ -150,7 +150,7 @@ glyph-block Symbol-Pictograph-Faces : begin face.Ring OShape face.Eyes face.Mouth 1 - include : FlipAround (MosaicWidth / 2) [mix faceTop faceBot 0.5] + include : FlipAround MosaicMiddle [mix faceTop faceBot 0.5] for-width-kinds WideWidth4 glyph-block-import Symbol-Mosaic-Split-Graphic : Multicell diff --git a/packages/font-glyphs/src/symbol/pictograph/powerline-and-gui.ptl b/packages/font-glyphs/src/symbol/pictograph/powerline-and-gui.ptl index 5994bcbdf..0f0234213 100644 --- a/packages/font-glyphs/src/symbol/pictograph/powerline-and-gui.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/powerline-and-gui.ptl @@ -8,6 +8,7 @@ glyph-module glyph-block Symbol-Pictograph-Powerline-And-GUI : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives + glyph-block-import Common-OShape-Variants : OvalShapeT glyph-block-import Shared-Symbol-Shapes : TriangleShape glyph-block-import Symbol-Pictograph-Stick-Figure : StickFigureKit PointingHandShape glyph-block-import Symbol-Geometric-Shared : GeometricDim @@ -55,23 +56,44 @@ glyph-block Symbol-Pictograph-Powerline-And-GUI : begin close OShapeOutline lockHoleTop lockHoleBottom lockHoleLeft lockHoleRight fine (SmallArchDepthA * lockHoleWidth) (SmallArchDepthB * lockHoleWidth) + define [KeyholeStroke t b l r sw circBot] : glyph-proc + local trigTop : mix b t 1.5 + local trigClip : mix t circBot 0.5 + local mx : mix l r 0.5 + local circ : OvalShapeT dispiro t circBot l r sw + local circMask : OvalShapeT spiro-outline t circBot l r + local trig : intersection [MaskBelow trigClip] + TriangleShape mx trigTop r b l b sw + local trigMask : intersection [MaskBelow trigClip] + spiro-outline [corner mx trigTop] [corner r b] [corner l b] + + include : difference + union circMask trigMask + union + difference circMask circ + difference trigMask trig + + create-glyph 'keyhole' 0x1CEB1 : glyph-proc + local diameter : RightSB - SB - OX * 2 + include : KeyholeStroke (PictTop - O) PictBot (SB + OX) (RightSB - OX) GeometryStroke (PictTop - O - diameter) + do "Progress Bar" define frameLeft : mix SB RightSB DesignParameters.bracketOutside define frameRight : mix RightSB SB DesignParameters.bracketOutside define progressBarGap : Math.min ((TackTop - TackBot) / 6) (Width / 6) [AdviceStroke 5] create-glyph 'powerline/progressBarStartEmpty' 0xEE00 : glyph-proc - include : VBar.l frameLeft TackTop TackBot GeometryStroke - include : HBar.t frameLeft (Width - O) TackTop GeometryStroke + include : VBar.l frameLeft TackTop TackBot GeometryStroke + include : HBar.t frameLeft (Width - O) TackTop GeometryStroke include : HBar.b frameLeft (Width - O) TackBot GeometryStroke create-glyph 'powerline/progressBarMiddleEmpty' 0xEE01 : glyph-proc - include : HBar.t O (Width - O) TackTop GeometryStroke + include : HBar.t O (Width - O) TackTop GeometryStroke include : HBar.b O (Width - O) TackBot GeometryStroke create-glyph 'powerline/progressBarEndEmpty' 0xEE02 : glyph-proc - include : VBar.r frameRight TackTop TackBot GeometryStroke - include : HBar.t O frameRight TackTop GeometryStroke + include : VBar.r frameRight TackTop TackBot GeometryStroke + include : HBar.t O frameRight TackTop GeometryStroke include : HBar.b O frameRight TackBot GeometryStroke create-glyph 'powerline/progressBarStartFilled' 0xEE03 : glyph-proc @@ -133,6 +155,11 @@ glyph-block Symbol-Pictograph-Powerline-And-GUI : begin set-width MosaicWidth include : with-transform [ApparentTranslate (-MosaicWidth / 4) ((CAP - Geom.MidY) * 0.3 + AccentStackOffset / 2)] : refer-glyph : MangleName 'blackSmallTriangleLeft' + if (MosaicWidthScalar == 1) : begin + create-glyph "blackRightTriangleCaret" 0x1CEB3 : glyph-proc + set-width 0 + include : HalfRectTriangle MosaicWidth ParenBot 0 [mix 0 ParenBot 0.2] + do "Split graphics" define [BoxN n] : new Box uiFigTop uiFigBot SB (MosaicWidth * n - SB) diff --git a/packages/font-glyphs/src/symbol/pictograph/stick-figure.ptl b/packages/font-glyphs/src/symbol/pictograph/stick-figure.ptl index 53b7b2d6e..1063fe1b1 100644 --- a/packages/font-glyphs/src/symbol/pictograph/stick-figure.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/stick-figure.ptl @@ -201,13 +201,13 @@ glyph-block Symbol-Pictograph-Stick-Figure : begin create-glyph [MangleName "whiteLeftPointingIndex"] [MangleUnicode 0x261C] : glyph-proc set-width MosaicWidth - include : PointingHandShape hBox [D4Transform (MosaicWidth / 2) 0 1] sw + include : PointingHandShape hBox [D4Transform MosaicMiddle 0 1] sw create-glyph [MangleName "whiteDownPointingIndex"] [MangleUnicode 0x261F] : glyph-proc set-width MosaicWidth - include : PointingHandShape vBox [D4Transform (MosaicWidth / 2) 3 0] sw + include : PointingHandShape vBox [D4Transform MosaicMiddle 3 0] sw create-glyph [MangleName "whiteUpPointingIndex"] [MangleUnicode 0x261D] : glyph-proc set-width MosaicWidth local tfm : Transform.Combine - include : PointingHandShape vBox [D4Transform (MosaicWidth / 2) 3 1] sw + include : PointingHandShape vBox [D4Transform MosaicMiddle 3 1] sw From 485c21ee7c87d8f916c8f26a4e624da7aff36e2b Mon Sep 17 00:00:00 2001 From: Logo <21302803+Logo121@users.noreply.github.com> Date: Sun, 23 Feb 2025 06:14:24 +0800 Subject: [PATCH 18/23] Theta and Partial Derivative variants (#2630, #2148) (#2687) * cleanup * add variants * doc * remove nonbreakingtags * update style sets --- changes/33.0.0.md | 3 ++ .../src/common/o-shape-variants.ptl | 6 +-- .../src/letter/greek/lower-theta.ptl | 28 +++++++++-- .../font-glyphs/src/letter/latin-ext/eth.ptl | 13 +++-- params/variants.toml | 47 +++++++++++++++---- 5 files changed, 77 insertions(+), 20 deletions(-) diff --git a/changes/33.0.0.md b/changes/33.0.0.md index 1dbea7eee..46f29222f 100644 --- a/changes/33.0.0.md +++ b/changes/33.0.0.md @@ -3,6 +3,9 @@ - Adjustable via metric override * \[**Breaking**\] Reordered variants for `W`, `a`, `b`, `g`, `q`, `w`, `α`, Cyrillic `а`, Cyrillic `ф`, and `$`. * \[**Breaking**\] Add variants for Capital Thorn (`Þ`) with symmetric/asymmetric bowl position. +* \[**Breaking**\] Add variant selector for Greek Lower Theta (#2630). + - As a result, feature tags for `cv71` ... `cv99`, `VAAA` are shifted by one place to `cv72` ... `cv99`, `VSAA`, `VSAB`. +* Add `closed-contour` variant for Partial derivative symbol (#2148). * Refine shape of the following characters: - GREEK CAPITAL LETTER HETA (`U+0370`). - GREEK SMALL LETTER HETA (`U+0371`). diff --git a/packages/font-glyphs/src/common/o-shape-variants.ptl b/packages/font-glyphs/src/common/o-shape-variants.ptl index 012d7d9cb..bab0361aa 100644 --- a/packages/font-glyphs/src/common/o-shape-variants.ptl +++ b/packages/font-glyphs/src/common/o-shape-variants.ptl @@ -1,10 +1,6 @@ $$include '../meta/macros.ptl' -import [mix linreg clamp fallback boole boolePn] from "@iosevka/util" -import [Transform] from "@iosevka/geometry/transform" -import [Point] from "@iosevka/geometry/point" -import [FunctionInterpolator AfCombine] from "@iosevka/geometry/spiro-control" -import [RadicalGeometry StrokeGeometry RemoveHolesGeometry] from "@iosevka/geometry" +import [mix clamp fallback] from "@iosevka/util" glyph-module diff --git a/packages/font-glyphs/src/letter/greek/lower-theta.ptl b/packages/font-glyphs/src/letter/greek/lower-theta.ptl index c78c5f200..85dc282bf 100644 --- a/packages/font-glyphs/src/letter/greek/lower-theta.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-theta.ptl @@ -8,11 +8,31 @@ glyph-module glyph-block Letter-Greek-Lower-Theta : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives + glyph-block-import Common-OShape-Variants : OvalShapeT DiamondShapeT - create-glyph 'grek/theta' 0x3B8 : glyph-proc - include : MarkSet.b - include : OShape Ascender 0 (SB - O) (RightSB + O) Stroke (SmallArchDepthA * 100) (SmallArchDepthB * 100) - include : HBar.m (SB + HalfStroke) (RightSB - HalfStroke) (0.5 * Ascender) + define [ThetaShapeBase shapeT] : namespace + define [outlineT sink offsetX offsetY top] : shapeT sink (top - offsetY) (offsetY) (SB + offsetX) (RightSB - offsetX) + export : define [Shape top] : outlineT dispiro 0 0 top + export : define [Mask top] : outlineT spiro-outline 1 1 top + + define Capsule : ThetaShapeBase OShapeT + define Oval : ThetaShapeBase OvalShapeT + define Diamond : ThetaShapeBase DiamondShapeT + + define ThetaConfig : object + 'capsule' Capsule + 'oval' Oval + 'diamond' Diamond + + foreach { suffix ShapeBase } [pairs-of ThetaConfig] : begin + create-glyph "grek/theta.\(suffix)" : glyph-proc + include : MarkSet.b + include : ShapeBase.Shape Ascender + include : intersection + ShapeBase.Mask Ascender + HBar.m SB RightSB (0.5 * Ascender) + + select-variant 'grek/theta' 0x3B8 glyph-block Letter-Greek-Lower-Theta-Var : begin glyph-block-import CommonShapes diff --git a/packages/font-glyphs/src/letter/latin-ext/eth.ptl b/packages/font-glyphs/src/letter/latin-ext/eth.ptl index 2e3f531e8..d9d70fd9d 100644 --- a/packages/font-glyphs/src/letter/latin-ext/eth.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/eth.ptl @@ -15,14 +15,14 @@ glyph-block Letter-Latin-Eth : begin define yMid2 : YSmoothMidR yMid 0 SmallArchDepthA SmallArchDepthB define yMid3 : mix yMid yMid2 0.875 - define [ArcStartKnots] : list + define [ArcStartKnots _flatY1 _flatY2] : list widths.lhs fine straight.up.mid (RightSB - OX - [HSwToV : Stroke - fine]) yMid2 arch.lhs yMid (swBefore -- fine) g4 (SB + OX) [YSmoothMidL yMid 0 SmallArchDepthA SmallArchDepthB] arch.lhs 0 - flat (RightSB - OX) yMid2 - curl (RightSB - OX) yMid3 + flat (RightSB - OX) [fallback _flatY1 yMid2] + curl (RightSB - OX) [fallback _flatY2 yMid3] create-glyph 'dInsular.curly-bar' : glyph-proc include : MarkSet.b @@ -41,6 +41,13 @@ glyph-block Letter-Latin-Eth : begin flat [mix Width xTerminal pStraightBarStart] [mix yMockBarStart CAP pStraightBarStart] [widths.lhs] curl [mix Width xTerminal 2] [mix yMockBarStart CAP 2] + create-glyph 'dInsular.closed-contour' : glyph-proc + include : MarkSet.b + include : dispiro + ArcStartKnots SmallArchDepthA (Ascender - SmallArchDepthB) + hookend Ascender + g4 (SB + OX) (Ascender - Hook) + select-variant 'dInsular' 0xA77A (follow -- 'eth') select-variant 'partial' 0x2202 (shapeFrom -- 'dInsular') diff --git a/params/variants.toml b/params/variants.toml index 0168bdd01..0d9a93ec3 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -5595,7 +5595,6 @@ selectorAffix."grek/alpha/sansSerif" = "tailed" [prime.lower-beta] sampler = "β" samplerExplain = "Greek lower Beta" -nonBreakingTagForNewVariantSelector = "VXAC" # REMOVE IN NEXT MAJOR VERSION CHANGE tagKind = "letter" [prime.lower-beta.variants.standard] @@ -5668,7 +5667,6 @@ selector."cyrl/enghe/ghePart" = "topRightSerifed" [prime.lower-gamma] sampler = "γ" samplerExplain = "Greek lower Gamma" -nonBreakingTagForNewVariantSelector = "VXAD" # REMOVE IN NEXT MAJOR VERSION CHANGE tagKind = "letter" [prime.lower-gamma.variants.straight] @@ -5722,6 +5720,28 @@ selector."grek/delta" = "flatTop" +[prime.lower-theta] +sampler = "θ" +samplerExplain = "Greek lower Theta" +tagKind = "letter" + +[prime.lower-theta.variants.capsule] +rank = 1 +description = "Greek lower Theta (`θ`) with a capsule (O-like) body shape" +selector."grek/theta" = "capsule" + +[prime.lower-theta.variants.oval] +rank = 2 +description = "Greek lower Theta (`θ`) with a standard (oval) body shape" +selector."grek/theta" = "oval" + +[prime.lower-theta.variants.diamond] +rank = 3 +description = "Greek lower Theta (`θ`) with a diamond body shape" +selector."grek/theta" = "diamond" + + + [prime.lower-iota] sampler = "ι" samplerExplain = "Greek lower Iota" @@ -5980,7 +6000,6 @@ selectorAffix."grek/mu/sansSerif" = "serifless" [prime.lower-nu] sampler = "ν" samplerExplain = "Greek lower Nu" -nonBreakingTagForNewVariantSelector = "VXAE" # REMOVE IN NEXT MAJOR VERSION CHANGE tagKind = "letter" [prime.lower-nu.variants.straight] @@ -6085,7 +6104,6 @@ selector."grek/tau/tailed" = "tau/semiTailed" [prime.lower-upsilon] sampler = "υ" samplerExplain = "Greek lower Upsilon" -nonBreakingTagForNewVariantSelector = "VXAF" # REMOVE IN NEXT MAJOR VERSION CHANGE tagKind = "letter" [prime.lower-upsilon.variants-buildup] @@ -6125,7 +6143,6 @@ selectorAffix."grek/upsilon/sansSerif" = "serifless" [prime.lower-phi] sampler = "φ" samplerExplain = "Greek lower Phi" -nonBreakingTagForNewVariantSelector = "VXAG" # REMOVE IN NEXT MAJOR VERSION CHANGE tagKind = "letter" [prime.lower-phi.variants.straight] @@ -6230,7 +6247,6 @@ selectorAffix."grek/chi/sansSerif" = "serifless" [prime.lower-psi] sampler = "ψ" samplerExplain = "Greek lower Psi" -nonBreakingTagForNewVariantSelector = "VXAH" # REMOVE IN NEXT MAJOR VERSION CHANGE tagKind = "letter" [prime.lower-psi.variants-buildup] @@ -6921,7 +6937,6 @@ selectorAffix."cyrl/em" = "smallCyrl" [prime.cyrl-capital-en] sampler = "Н" samplerExplain = "Cyrillic Capital En" -nonBreakingTagForNewVariantSelector = "VXAA" # REMOVE IN NEXT MAJOR VERSION CHANGE tagKind = "letter" [prime.cyrl-capital-en.variants.serifless] @@ -7041,7 +7056,6 @@ selectorAffix."cyrl/njeKomi" = "serifedExceptBottomRight" [prime.cyrl-capital-er] sampler = "Р" samplerExplain = "Cyrillic Capital Er" -nonBreakingTagForNewVariantSelector = "VXAB" # REMOVE IN NEXT MAJOR VERSION CHANGE tagKind = "letter" [prime.cyrl-capital-er.variants-buildup] @@ -8490,6 +8504,11 @@ rank = 2 description = "The upper bar of the partial derivative symbol is curly" selector."partial" = "curly-bar" +[prime.partial-derivative.variants.closed-contour] +rank = 3 +description = "The upper part of the partial derivative symbol is a full hook" +selector."partial" = "closed-contour" + [prime.micro-sign] @@ -8821,6 +8840,7 @@ capital-gamma = "serifless" lower-gamma = "casual" capital-delta = "straight" lower-delta = "rounded" +lower-theta = "oval" lower-iota = "serifed-semi-tailed" capital-lambda = "straight-serifless" lower-lambda = "straight" @@ -9113,6 +9133,7 @@ number-sign = "slanted" at = "fourfold" percent = "rings-continuous-slash" pilcrow = "low" +partial-derivative = "closed-contour" micro-sign = "toothed-serifless" [composite.ss01.slab-override.design] @@ -9321,6 +9342,7 @@ cent = "slanted-through-cap" percent = "rings-continuous-slash" pilcrow = "curved" question = "corner-flat-hooked" +partial-derivative = "closed-contour" micro-sign = "tailed-serifless" [composite.ss03.italic] @@ -9456,6 +9478,7 @@ ampersand = "upper-open" at = "threefold" percent = "rings-continuous-slash" bar = "force-upright" +partial-derivative = "closed-contour" micro-sign = "tailed-serifless" [composite.ss04.slab-override.design] @@ -9663,6 +9686,7 @@ cent = "open-cap" percent = "rings-continuous-slash" bar = "force-upright" pilcrow = "low" +partial-derivative = "closed-contour" micro-sign = "toothed-serifless" [composite.ss06.slab-override.design] @@ -9845,6 +9869,7 @@ capital-lambda = "curly-serifless" lower-lambda = "curly-tailed-turn" lower-mu = "toothed-serifless" lower-chi = "semi-chancery-curly-serifless" +lower-theta = "diamond" cyrl-a = "double-storey-serifless" cyrl-capital-zhe = "curly" cyrl-zhe = "curly" @@ -9873,6 +9898,7 @@ at = "threefold" dollar = "open" cent = "open" percent = "dots" +partial-derivative = "closed-contour" micro-sign = "toothed-serifless" lig-ltgteq = "slanted" lig-neq = "slightly-slanted-dotted" @@ -9993,6 +10019,7 @@ dollar = "open" cent = "through-cap" percent = "rings-segmented-slash" bar = "force-upright" +partial-derivative = "closed-contour" micro-sign = "tailed-serifless" [composite.ss09.italic] @@ -10255,6 +10282,7 @@ dollar = "open" cent = "open" percent = "rings-continuous-slash" pilcrow = "low" +partial-derivative = "closed-contour" micro-sign = "toothless-corner-serifless" [composite.ss12.italic] @@ -10380,6 +10408,7 @@ at = "threefold" cent = "through-cap" percent = "rings-continuous-slash" pilcrow = "low" +partial-derivative = "closed-contour" micro-sign = "toothed-serifless" [composite.ss13.slab-override.design] @@ -10454,6 +10483,7 @@ lower-alpha = "barred" lower-gamma = "straight" lower-delta = "flat-top" lower-iota = "serifed-flat-tailed" +lower-theta = "capsule" lower-lambda = "straight" lower-mu = "toothed-serifless" lower-nu = "straight" @@ -11005,6 +11035,7 @@ long-s = "bent-hook-middle-serifed-xh" eszet = "longs-s-lig-serifless" lower-alpha = "barred-tailed" lower-gamma = "straight" +lower-theta = "capsule" lower-lambda = "straight-turn" lower-tau = "short-tailed" lower-upsilon = "straight-serifless" From 85fe85ff2e0c5bd6067bb439a16ff7ab0fb99964 Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Mon, 24 Feb 2025 09:16:35 -0500 Subject: [PATCH 19/23] Move `partial-derivative` variant selector tag to the end of Greek section. (#2688) * Move `partial-derivative` variant selector to end of Greek section. * Doc. --- changes/33.0.0.md | 2 +- params/variants.toml | 70 ++++++++++++++++++++++---------------------- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/changes/33.0.0.md b/changes/33.0.0.md index 46f29222f..5d968febb 100644 --- a/changes/33.0.0.md +++ b/changes/33.0.0.md @@ -4,7 +4,7 @@ * \[**Breaking**\] Reordered variants for `W`, `a`, `b`, `g`, `q`, `w`, `α`, Cyrillic `а`, Cyrillic `ф`, and `$`. * \[**Breaking**\] Add variants for Capital Thorn (`Þ`) with symmetric/asymmetric bowl position. * \[**Breaking**\] Add variant selector for Greek Lower Theta (#2630). - - As a result, feature tags for `cv71` ... `cv99`, `VAAA` are shifted by one place to `cv72` ... `cv99`, `VSAA`, `VSAB`. + - As a result, character variant feature tags are reordered. * Add `closed-contour` variant for Partial derivative symbol (#2148). * Refine shape of the following characters: - GREEK CAPITAL LETTER HETA (`U+0370`). diff --git a/params/variants.toml b/params/variants.toml index 0d9a93ec3..c7740c6e6 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -6287,6 +6287,28 @@ selectorAffix."cyrl/psi" = "serifed" +[prime.partial-derivative] +sampler = "∂" +samplerExplain = "Partial derivative symbol" +tagKind = "letter" + +[prime.partial-derivative.variants.straight-bar] +rank = 1 +description = "Partial derivative symbol (`∂`) with a straight upper bar" +selector."partial" = "straight-bar" + +[prime.partial-derivative.variants.curly-bar] +rank = 2 +description = "Partial derivative symbol (`∂`) with a curly upper bar" +selector."partial" = "curly-bar" + +[prime.partial-derivative.variants.closed-contour] +rank = 3 +description = "Partial derivative symbol (`∂`) with a full hook" +selector."partial" = "closed-contour" + + + [prime.cyrl-a] sampler = "а" samplerExplain = "Cyrillic Lower A" @@ -8489,28 +8511,6 @@ selector.revPilcrow = "curved" -[prime.partial-derivative] -sampler = "∂" -samplerExplain = "Partial derivative symbol" -tagKind = "symbol" - -[prime.partial-derivative.variants.straight-bar] -rank = 1 -description = "The upper bar of the partial derivative symbol is straight" -selector."partial" = "straight-bar" - -[prime.partial-derivative.variants.curly-bar] -rank = 2 -description = "The upper bar of the partial derivative symbol is curly" -selector."partial" = "curly-bar" - -[prime.partial-derivative.variants.closed-contour] -rank = 3 -description = "The upper part of the partial derivative symbol is a full hook" -selector."partial" = "closed-contour" - - - [prime.micro-sign] sampler = "µ" samplerExplain = "Micro sign" @@ -8853,6 +8853,7 @@ lower-upsilon = "casual-serifless" lower-phi = "cursive" lower-chi = "straight-serifless" lower-psi = "serifless" +partial-derivative = "curly-bar" cyrl-a = "double-storey-serifless" cyrl-ve = "standard-serifless" cyrl-capital-zhe = "symmetric-connected" @@ -8914,7 +8915,6 @@ percent = "rings-segmented-slash" bar = "natural-slope" question = "smooth" pilcrow = "high" -partial-derivative = "curly-bar" micro-sign = "toothed-serifless" decorative-angle-brackets = "middle" lig-ltgteq = "flat" @@ -9107,6 +9107,7 @@ lower-pi = "tailless" lower-tau = "tailless" lower-phi = "straight" lower-chi = "semi-chancery-straight-serifless" +partial-derivative = "closed-contour" cyrl-a = "double-storey-serifless" cyrl-ve = "standard-serifless" cyrl-capital-zhe = "straight" @@ -9133,7 +9134,6 @@ number-sign = "slanted" at = "fourfold" percent = "rings-continuous-slash" pilcrow = "low" -partial-derivative = "closed-contour" micro-sign = "toothed-serifless" [composite.ss01.slab-override.design] @@ -9216,6 +9216,7 @@ lower-iota = "serifed-flat-tailed" lower-lambda = "straight-turn" lower-xi = "rounded" lower-tau = "short-tailed" +partial-derivative = "straight-bar" cyrl-a = "double-storey-serifless" cyrl-ve = "standard-serifless" cyrl-capital-zhe = "straight" @@ -9247,7 +9248,6 @@ number-sign = "upright" at = "fourfold" cent = "through-cap" percent = "rings-continuous-slash" -partial-derivative = "straight-bar" micro-sign = "toothed-serifless" [composite.ss02.slab-override.design] @@ -9315,6 +9315,7 @@ lower-chi = "semi-chancery-straight-serifless" lower-eth = "straight-bar" lower-lambda = "tailed-turn" lower-phi = "straight" +partial-derivative = "closed-contour" cyrl-a = "double-storey-serifless" cyrl-ve = "standard-serifless" cyrl-capital-zhe = "symmetric-touching" @@ -9342,7 +9343,6 @@ cent = "slanted-through-cap" percent = "rings-continuous-slash" pilcrow = "curved" question = "corner-flat-hooked" -partial-derivative = "closed-contour" micro-sign = "tailed-serifless" [composite.ss03.italic] @@ -9445,6 +9445,7 @@ lower-tau = "flat-tailed" lower-upsilon = "casual-serifed" lower-chi = "semi-chancery-straight-serifless" lower-psi = "flat-top-serifless" +partial-derivative = "closed-contour" cyrl-a = "double-storey-serifless" cyrl-ve = "standard-serifless" cyrl-capital-zhe = "straight" @@ -9478,7 +9479,6 @@ ampersand = "upper-open" at = "threefold" percent = "rings-continuous-slash" bar = "force-upright" -partial-derivative = "closed-contour" micro-sign = "tailed-serifless" [composite.ss04.slab-override.design] @@ -9660,6 +9660,7 @@ lower-iota = "tailed-serifed" lower-lambda = "straight-turn" lower-tau = "short-tailed" lower-chi = "straight-unilateral-motion-serifed" +partial-derivative = "closed-contour" cyrl-a = "double-storey-tailed" cyrl-ve = "standard-serifless" cyrl-capital-u = "straight-turn-serifless" @@ -9686,7 +9687,6 @@ cent = "open-cap" percent = "rings-continuous-slash" bar = "force-upright" pilcrow = "low" -partial-derivative = "closed-contour" micro-sign = "toothed-serifless" [composite.ss06.slab-override.design] @@ -9865,11 +9865,12 @@ long-s = "bent-hook-middle-serifed" eszet = "longs-s-lig-serifless" capital-delta = "curly" lower-delta = "flat-top" +lower-theta = "diamond" capital-lambda = "curly-serifless" lower-lambda = "curly-tailed-turn" lower-mu = "toothed-serifless" lower-chi = "semi-chancery-curly-serifless" -lower-theta = "diamond" +partial-derivative = "closed-contour" cyrl-a = "double-storey-serifless" cyrl-capital-zhe = "curly" cyrl-zhe = "curly" @@ -9898,7 +9899,6 @@ at = "threefold" dollar = "open" cent = "open" percent = "dots" -partial-derivative = "closed-contour" micro-sign = "toothed-serifless" lig-ltgteq = "slanted" lig-neq = "slightly-slanted-dotted" @@ -9995,6 +9995,7 @@ eszet = "longs-s-lig-serifless" lower-lambda = "straight-turn" lower-tau = "short-tailed" lower-phi = "straight" +partial-derivative = "closed-contour" cyrl-a = "double-storey-serifless" cyrl-ve = "standard-serifless" cyrl-capital-u = "straight-turn-serifless" @@ -10019,7 +10020,6 @@ dollar = "open" cent = "through-cap" percent = "rings-segmented-slash" bar = "force-upright" -partial-derivative = "closed-contour" micro-sign = "tailed-serifless" [composite.ss09.italic] @@ -10254,6 +10254,7 @@ lower-pi = "small-capital" lower-upsilon = "straight-serifless" lower-phi = "neo-hellenic" lower-psi = "flat-top-serifless" +partial-derivative = "closed-contour" cyrl-a = "double-storey-tailed" cyrl-capital-zhe = "symmetric-touching" cyrl-zhe = "symmetric-touching" @@ -10282,7 +10283,6 @@ dollar = "open" cent = "open" percent = "rings-continuous-slash" pilcrow = "low" -partial-derivative = "closed-contour" micro-sign = "toothless-corner-serifless" [composite.ss12.italic] @@ -10384,6 +10384,7 @@ lower-mu = "toothed-serifless" lower-pi = "tailless" lower-tau = "tailless" lower-phi = "straight" +partial-derivative = "closed-contour" cyrl-a = "double-storey-tailed" cyrl-ve = "standard-serifless" cyrl-capital-u = "straight-turn-serifless" @@ -10408,7 +10409,6 @@ at = "threefold" cent = "through-cap" percent = "rings-continuous-slash" pilcrow = "low" -partial-derivative = "closed-contour" micro-sign = "toothed-serifless" [composite.ss13.slab-override.design] @@ -10482,8 +10482,8 @@ lower-eth = "straight-bar" lower-alpha = "barred" lower-gamma = "straight" lower-delta = "flat-top" -lower-iota = "serifed-flat-tailed" lower-theta = "capsule" +lower-iota = "serifed-flat-tailed" lower-lambda = "straight" lower-mu = "toothed-serifless" lower-nu = "straight" @@ -10878,6 +10878,7 @@ lower-iota = "serifed-flat-tailed" lower-lambda = "tailed-turn" lower-tau = "flat-tailed" lower-chi = "semi-chancery-straight-serifless" +partial-derivative = "straight-bar" cyrl-a = "double-storey-tailed" cyrl-capital-ze = "unilateral-inward-serifed" cyrl-ze = "serifless" @@ -10910,7 +10911,6 @@ dollar = "interrupted" cent = "bar-interrupted-cap" percent = "rings-segmented-slash" pilcrow = "low" -partial-derivative = "straight-bar" micro-sign = "tailed-serifless" [composite.ss17.italic] From 550f7bdd86d67a1e395a273babf2bcc10dc575cb Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Tue, 25 Feb 2025 20:26:50 -0500 Subject: [PATCH 20/23] Optimize glyph for Greek Capital Sho. (#2691) --- changes/33.0.0.md | 1 + packages/font-glyphs/src/letter/greek/phi.ptl | 13 +++++-- .../src/letter/latin-ext/thorn.ptl | 34 +++++++++++-------- 3 files changed, 31 insertions(+), 17 deletions(-) diff --git a/changes/33.0.0.md b/changes/33.0.0.md index 5d968febb..949ad9a8e 100644 --- a/changes/33.0.0.md +++ b/changes/33.0.0.md @@ -9,6 +9,7 @@ * Refine shape of the following characters: - GREEK CAPITAL LETTER HETA (`U+0370`). - GREEK SMALL LETTER HETA (`U+0371`). + - GREEK CAPITAL LETTER SHO (`U+03F7`). - CYRILLIC CAPITAL LETTER SHHA (`U+04BA`). - CYRILLIC CAPITAL LETTER KOMI DJE (`U+0502`) ... CYRILLIC SMALL LETTER KOMI ZJE (`U+0505`). - CYRILLIC CAPITAL LETTER KOMI LJE (`U+0508`) ... CYRILLIC SMALL LETTER KOMI TJE (`U+050F`). diff --git a/packages/font-glyphs/src/letter/greek/phi.ptl b/packages/font-glyphs/src/letter/greek/phi.ptl index 1c9f4e398..35fff756d 100644 --- a/packages/font-glyphs/src/letter/greek/phi.ptl +++ b/packages/font-glyphs/src/letter/greek/phi.ptl @@ -15,7 +15,10 @@ glyph-block Letter-Greek-Phi : begin include : VBar.m df.middle y2 y3 df.mvs include : if fFlatTB OShapeFlatTB y3 y2 df.leftSB df.rightSB df.mvs ada adb - Math.max (0.25 * (df.rightSB - df.leftSB)) : HSwToV df.mvs + Math.max + (df.rightSB - df.leftSB) - (y3 - y2) + (df.rightSB - df.leftSB) * 0.25 + HSwToV df.mvs OShape y3 y2 df.leftSB df.rightSB df.mvs ada adb define [CyrlEfSplitRing fFlatTB df y2 y3 ada adb] : glyph-proc @@ -100,9 +103,13 @@ glyph-block Letter-Greek-Phi : begin define [MtSerif df y sw] : tagged 'serifMT' : HSerif.lt df.middle y Jut sw define [MbSerif df y sw] : tagged 'serifMB' : HSerif.mb df.middle y Jut sw + glyph-block-export yCapitalPhiBowlBot yCapitalPhiBowlTop + define [yCapitalPhiBowlBot top slab] : mix [if slab Stroke 0] [if slab (top - Stroke) top] 0.125 + define [yCapitalPhiBowlTop top slab] : mix [if slab Stroke 0] [if slab (top - Stroke) top] 0.875 + define [GrekCapitalPhiImpl fFlatTB df] : glyph-proc - local y2 : mix [if SLAB Stroke 0] [if SLAB (CAP - Stroke) CAP] 0.125 - local y3 : mix [if SLAB Stroke 0] [if SLAB (CAP - Stroke) CAP] 0.875 + local y2 : yCapitalPhiBowlBot CAP SLAB + local y3 : yCapitalPhiBowlTop CAP SLAB include : VarPhiRing fFlatTB df y2 y3 df.archDepthA df.archDepthB include : StraightBar df 0 y2 y3 CAP diff --git a/packages/font-glyphs/src/letter/latin-ext/thorn.ptl b/packages/font-glyphs/src/letter/latin-ext/thorn.ptl index b7963a76a..5ff84b8c5 100644 --- a/packages/font-glyphs/src/letter/latin-ext/thorn.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/thorn.ptl @@ -8,29 +8,31 @@ glyph-block Letter-Latin-Thorn : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives glyph-block-import Mark-Adjustment : LeaningAnchor - glyph-block-import Letter-Shared-Shapes : OBarLeft LetterBarOverlay SerifFrame - glyph-block-import Letter-Latin-Lower-P + glyph-block-import Letter-Shared-Shapes : LetterBarOverlay SerifFrame + glyph-block-import Letter-Greek-Phi : yCapitalPhiBowlBot yCapitalPhiBowlTop define xThornLeftStroke : SB * 1.25 - define [yThornBowlSymmetricBot top slab] : top * 0.19 + [if slab (Stroke * 0.375) 0] - define [yThornBowlSymmetricTop top slab] : top - [yThornBowlSymmetricBot top slab] + define [yThornBowlBot top slab] : top * 0.19 + [if slab (Stroke * 0.375) 0] + define [yThornBowlTop top slab] : top - [yThornBowlBot top slab] define [yThornBowlAsymmetricBot top slab] : top * 0.25 + [if slab (Stroke * 0.125) 0] define [yThornBowlAsymmetricTop top slab] : top - 0.7 * [yThornBowlAsymmetricBot top slab] + [if slab (-0.125) 0.25] * Stroke define [ThornShapeImpl top slabTop slabBot yBowlBot yBowlTop] : glyph-proc - local turn : mix yBowlTop yBowlBot (ArchDepthB / (ArchDepthA + ArchDepthB)) - local turnRadius : (yBowlTop - yBowlBot) / 2 + local xTurn : Math.max + RightSB - (yBowlTop - yBowlBot) * 0.5 + mix xThornLeftStroke RightSB 0.25 + xThornLeftStroke + [HSwToV Stroke] include : dispiro widths.rhs flat xThornLeftStroke yBowlTop [heading Rightward] - curl [arch.adjust-x.top (RightSB - turnRadius)] yBowlTop + curl [arch.adjust-x.top xTurn] yBowlTop archv - g4 (RightSB - O) turn + g4 (RightSB - O) [mix yBowlTop yBowlBot (ArchDepthB / (ArchDepthA + ArchDepthB))] arcvh - flat [arch.adjust-x.bot (RightSB - turnRadius)] yBowlBot + flat [arch.adjust-x.bot xTurn] yBowlBot curl xThornLeftStroke yBowlBot [heading Leftward] include : VBar.l xThornLeftStroke 0 top @@ -43,9 +45,9 @@ glyph-block Letter-Latin-Thorn : begin include : LeaningAnchor.Above.VBar.l xThornLeftStroke include : LeaningAnchor.Below.VBar.l xThornLeftStroke - define [ThornSymmetricShape top slabTop slabBot] : ThornShapeImpl top slabTop slabBot - yThornBowlSymmetricBot top slabBot - yThornBowlSymmetricTop top slabBot + define [ThornShape top slabTop slabBot] : ThornShapeImpl top slabTop slabBot + yThornBowlBot top slabBot + yThornBowlTop top slabBot define [ThornAsymmetricShape top slabTop slabBot] : ThornShapeImpl top slabTop slabBot yThornBowlAsymmetricBot top slabBot @@ -53,7 +55,7 @@ glyph-block Letter-Latin-Thorn : begin define ThornConfig : SuffixCfg.weave object # symmetry - "" ThornSymmetricShape + "" ThornShape asymmetric ThornAsymmetricShape object # serifs serifless { false false } @@ -88,4 +90,8 @@ glyph-block Letter-Latin-Thorn : begin select-variant 'ThornStroke' 0xA764 select-variant 'ThornStrokeBottom' 0xA766 - alias 'grek/Sho' 0x3F7 : if SLAB 'Thorn.serifed' 'Thorn.serifless' + create-glyph 'grek/Sho' 0x3F7 : glyph-proc + include : MarkSet.capital + include : ThornShapeImpl CAP SLAB SLAB + yCapitalPhiBowlBot CAP SLAB + yCapitalPhiBowlTop CAP SLAB From c6eee3535e047275bd63d4219df14c8b360be5cf Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Wed, 26 Feb 2025 22:39:00 -0500 Subject: [PATCH 21/23] Make Cyrillic Capital Uk slightly wider under QP. (#2694) --- changes/33.0.0.md | 1 + packages/font-glyphs/src/auto-build/composite.ptl | 6 +++--- packages/font-glyphs/src/letter/latin/o.ptl | 5 ----- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/changes/33.0.0.md b/changes/33.0.0.md index 949ad9a8e..d2933ae3f 100644 --- a/changes/33.0.0.md +++ b/changes/33.0.0.md @@ -37,6 +37,7 @@ - LATIN CAPITAL LETTER REVERSED HALF H (`U+A7F5`). - LATIN SMALL LETTER REVERSED HALF H (`U+A7F6`). * Make certain characters slightly wider under Quasi-Proportional. Affected characters: + - CYRILLIC CAPITAL LETTER UK (`U+0478`). - LATIN SMALL LIGATURE FF (`U+FB00`) ... LATIN SMALL LIGATURE FFL (`U+FB04`). * Add Characters: - OBSERVER EYE SYMBOL (`U+23FF`). diff --git a/packages/font-glyphs/src/auto-build/composite.ptl b/packages/font-glyphs/src/auto-build/composite.ptl index 0efb3ef06..1d96d49db 100644 --- a/packages/font-glyphs/src/auto-build/composite.ptl +++ b/packages/font-glyphs/src/auto-build/composite.ptl @@ -1463,7 +1463,7 @@ glyph-block Autobuild-Ligatures : begin list 0x1F1 { 'D' 'Z' } list 0x1F2 { 'D' 'z' } list 0x1F3 { 'd' 'z' } - list 0x478 { 'cyrl/Uk/O' 'cyrl/u' } + list 0x478 { 'cyrl/O' 'cyrl/u' } list 0x479 { 'cyrl/uk/o' 'cyrl/u' } list 0x20A7 { 'P' 't' } list 0x20A8 { 'R' 's' } @@ -1618,7 +1618,7 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin define [ToLetter] : glyph-proc define stdShrink : clamp 0.625 0.9 : StrokeWidthBlend 0.625 0.9 - createPhoneticLigatures ToLetter 'phonetic1' (para.advanceScaleF * para.advanceScaleMM) 2 stdShrink 1 : list + createPhoneticLigatures ToLetter 'phonetic1' [Math.max 1 : para.advanceScaleF * para.advanceScaleMM] 2 stdShrink 1 : list list 0xFB00 { 'f' 'f' } null list 0xFB01 { 'f/compLigLeft1' 'dotlessi/compLigRight' } null list 0xFB02 { 'f/compLigLeft2' 'l/compLigRight' } null @@ -1642,7 +1642,7 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin list 0xFB05 { 'longs/compLigLeft' 't/compLigRight' } null list 0xFB06 { 's/compLigLeft' 't/compLigRight' } null - createPhoneticLigatures ToLetter 'phonetic3' (para.advanceScaleF * [mix 1 para.advanceScaleMM 2]) 3 stdShrink 1 : list + createPhoneticLigatures ToLetter 'phonetic3' [Math.max 1 : para.advanceScaleF * [mix 1 para.advanceScaleMM 2]] 3 stdShrink 1 : list list 0xFB03 { 'f/compLigLeft1' 'f/compLigLeft1' 'dotlessi/compLigRight' } null list 0xFB04 { 'f/compLigLeft3' 'f/compLigLeft2' 'l/compLigRight' } null diff --git a/packages/font-glyphs/src/letter/latin/o.ptl b/packages/font-glyphs/src/letter/latin/o.ptl index 11c5ad0b8..48483ba5e 100644 --- a/packages/font-glyphs/src/letter/latin/o.ptl +++ b/packages/font-glyphs/src/letter/latin/o.ptl @@ -37,11 +37,6 @@ glyph-block Letter-Latin-O : begin alias 'cyrl/O' 0x41E 'O' alias 'cyrl/o' 0x43E 'o' - create-glyph 'cyrl/Uk/O' : glyph-proc - local df : include : DivFrame para.advanceScaleF 2 - include : df.markSet.capital - include : OShape CAP 0 df.leftSB df.rightSB df.mvs df.archDepthA df.archDepthB - create-glyph 'cyrl/uk/o' : glyph-proc local df : include : DivFrame para.advanceScaleF 2 include : df.markSet.e From 42f1a21f7749aee54c3888093860fdf15e04e4b7 Mon Sep 17 00:00:00 2001 From: Belleve Date: Wed, 26 Feb 2025 19:42:05 -1000 Subject: [PATCH 22/23] Add almost-flat-top variant for `W` and `w` (#2693). (#2695) --- changes/33.0.0.md | 1 + packages/font-glyphs/src/letter/latin/w.ptl | 129 +++++++++++--------- params/variants.toml | 124 +++++++++++-------- 3 files changed, 144 insertions(+), 110 deletions(-) diff --git a/changes/33.0.0.md b/changes/33.0.0.md index d2933ae3f..5d30ebd81 100644 --- a/changes/33.0.0.md +++ b/changes/33.0.0.md @@ -5,6 +5,7 @@ * \[**Breaking**\] Add variants for Capital Thorn (`Þ`) with symmetric/asymmetric bowl position. * \[**Breaking**\] Add variant selector for Greek Lower Theta (#2630). - As a result, character variant feature tags are reordered. +* Add almost-flat-top variant for `W` and `w` (#2693). * Add `closed-contour` variant for Partial derivative symbol (#2148). * Refine shape of the following characters: - GREEK CAPITAL LETTER HETA (`U+0370`). diff --git a/packages/font-glyphs/src/letter/latin/w.ptl b/packages/font-glyphs/src/letter/latin/w.ptl index 71c7a9a19..9bbfc9ddc 100644 --- a/packages/font-glyphs/src/letter/latin/w.ptl +++ b/packages/font-glyphs/src/letter/latin/w.ptl @@ -13,12 +13,13 @@ glyph-block Letter-Latin-W : begin glyph-block-import Letter-Latin-Lower-M : EarlessRoundedDoubleArchSmallMShape glyph-block-import Letter-Latin-Upper-M : MShape - define FORM-CURLY 0 - define FORM-STRAIGHT 1 - define FORM-FLAT-TOP 2 - define FORM-DOUBLE-V 3 - define FORM-ASYMMETRIC 4 - define FORM-CYRL-OMEGA 5 + define FORM-CURLY 0 + define FORM-STRAIGHT 1 + define FORM-ALMOST-FLAT-TOP 2 + define FORM-FLAT-TOP 3 + define FORM-DOUBLE-V 4 + define FORM-ASYMMETRIC 5 + define FORM-CYRL-OMEGA 6 define SERIFS-NONE 0 define SERIFS-AUTO 1 @@ -47,61 +48,66 @@ glyph-block Letter-Latin-W : begin define PXBot1Curly 0.25 define PXBot1Straight 0.235 - define [WDim df top bodyType] : begin + define [WDim df top bodyType slabType] : begin local strokeOuter : match bodyType - [Just FORM-CURLY] : AdviceStroke CwOuterStrokeCurly : Math.sqrt df.adws - [Just FORM-STRAIGHT] : AdviceStroke CwOuterStrokeStraight1 : Math.sqrt df.adws - [Just FORM-FLAT-TOP] : AdviceStroke CwOuterStrokeStraight2 : Math.sqrt df.adws - [Just FORM-DOUBLE-V] : AdviceStroke CwDoubleV : Math.sqrt df.adws - [Just FORM-ASYMMETRIC] : AdviceStroke CwDoubleV : Math.sqrt df.adws - [Just FORM-CYRL-OMEGA] : AdviceStroke CwCyrlOmega : Math.sqrt df.adws + [Just FORM-CURLY] : AdviceStroke CwOuterStrokeCurly : Math.sqrt df.adws + [Just FORM-STRAIGHT] : AdviceStroke CwOuterStrokeStraight1 : Math.sqrt df.adws + [Just FORM-ALMOST-FLAT-TOP] : AdviceStroke CwOuterStrokeStraight2 : Math.sqrt df.adws + [Just FORM-FLAT-TOP] : AdviceStroke CwOuterStrokeStraight2 : Math.sqrt df.adws + [Just FORM-DOUBLE-V] : AdviceStroke CwDoubleV : Math.sqrt df.adws + [Just FORM-ASYMMETRIC] : AdviceStroke CwDoubleV : Math.sqrt df.adws + [Just FORM-CYRL-OMEGA] : AdviceStroke CwCyrlOmega : Math.sqrt df.adws local fineOuter : match bodyType - [Just FORM-CURLY] : AdviceStroke CwFineOuter df.adws - [Just FORM-STRAIGHT] : AdviceStroke CwFineOuterStraight : Math.sqrt df.adws - [Just FORM-FLAT-TOP] : AdviceStroke CwFineOuterStraight : Math.sqrt df.adws - [Just FORM-DOUBLE-V] : AdviceStroke CwDoubleV : Math.sqrt df.adws - [Just FORM-ASYMMETRIC] : AdviceStroke CwDoubleV : Math.sqrt df.adws - [Just FORM-CYRL-OMEGA] : AdviceStroke CwCyrlOmega : Math.sqrt df.adws + [Just FORM-CURLY] : AdviceStroke CwFineOuter df.adws + [Just FORM-STRAIGHT] : AdviceStroke CwFineOuterStraight : Math.sqrt df.adws + [Just FORM-ALMOST-FLAT-TOP] : AdviceStroke CwFineOuterStraight : Math.sqrt df.adws + [Just FORM-FLAT-TOP] : AdviceStroke CwFineOuterStraight : Math.sqrt df.adws + [Just FORM-DOUBLE-V] : AdviceStroke CwDoubleV : Math.sqrt df.adws + [Just FORM-ASYMMETRIC] : AdviceStroke CwDoubleV : Math.sqrt df.adws + [Just FORM-CYRL-OMEGA] : AdviceStroke CwCyrlOmega : Math.sqrt df.adws local fineInner : match bodyType - [Just FORM-CURLY] : AdviceStroke CwFineInner df.adws - [Just FORM-STRAIGHT] : AdviceStroke CwFineInnerStraight : Math.sqrt df.adws - [Just FORM-FLAT-TOP] : AdviceStroke CwFineInnerStraight : Math.sqrt df.adws - [Just FORM-DOUBLE-V] : AdviceStroke CwFineInnerDoubleV : Math.sqrt df.adws - [Just FORM-ASYMMETRIC] : AdviceStroke CwDoubleV : Math.sqrt df.adws - [Just FORM-CYRL-OMEGA] : AdviceStroke CwCyrlOmega : Math.sqrt df.adws + [Just FORM-CURLY] : AdviceStroke CwFineInner df.adws + [Just FORM-STRAIGHT] : AdviceStroke CwFineInnerStraight : Math.sqrt df.adws + [Just FORM-ALMOST-FLAT-TOP] : AdviceStroke CwFineInnerStraight : Math.sqrt df.adws + [Just FORM-FLAT-TOP] : AdviceStroke CwFineInnerStraight : Math.sqrt df.adws + [Just FORM-DOUBLE-V] : AdviceStroke CwFineInnerDoubleV : Math.sqrt df.adws + [Just FORM-ASYMMETRIC] : AdviceStroke CwDoubleV : Math.sqrt df.adws + [Just FORM-CYRL-OMEGA] : AdviceStroke CwCyrlOmega : Math.sqrt df.adws local fineHeight : (fineOuter + fineInner) / 2 local wCo : match bodyType - [Just FORM-CURLY] : AdviceStroke CwWCoCurly df.adws - [Just FORM-STRAIGHT] : AdviceStroke CwWCoStraight df.adws - [Just FORM-FLAT-TOP] : AdviceStroke CwWCoStraight df.adws - [Just FORM-DOUBLE-V] : AdviceStroke CwWCoDoubleV df.adws - [Just FORM-ASYMMETRIC] : AdviceStroke CwWCoDoubleV df.adws - [Just FORM-CYRL-OMEGA] : AdviceStroke CwWCoDoubleV df.adws + [Just FORM-CURLY] : AdviceStroke CwWCoCurly df.adws + [Just FORM-STRAIGHT] : AdviceStroke CwWCoStraight df.adws + [Just FORM-ALMOST-FLAT-TOP] : AdviceStroke CwWCoStraight df.adws + [Just FORM-FLAT-TOP] : AdviceStroke CwWCoStraight df.adws + [Just FORM-DOUBLE-V] : AdviceStroke CwWCoDoubleV df.adws + [Just FORM-ASYMMETRIC] : AdviceStroke CwWCoDoubleV df.adws + [Just FORM-CYRL-OMEGA] : AdviceStroke CwWCoDoubleV df.adws local wCo2 : match bodyType [Just FORM-CYRL-OMEGA] : AdviceStroke CwCyrlOmega df.adws _ wCo local kWCoShrink CThin local pxBot1 : match bodyType - [Just FORM-CURLY] 0.25 - [Just FORM-STRAIGHT] 0.235 - [Just FORM-FLAT-TOP] 0.235 - [Just FORM-DOUBLE-V] 0.315 - [Just FORM-ASYMMETRIC] 0.3 - [Just FORM-CYRL-OMEGA] 0.265 + [Just FORM-CURLY] 0.25 + [Just FORM-STRAIGHT] 0.235 + [Just FORM-ALMOST-FLAT-TOP] 0.235 + [Just FORM-FLAT-TOP] 0.235 + [Just FORM-DOUBLE-V] 0.315 + [Just FORM-ASYMMETRIC] 0.3 + [Just FORM-CYRL-OMEGA] 0.265 local botMixOffset : HSwToV : 0.5 * wCo2 local xBot1 : [if bodyType O 0] + [mix (df.leftSB + botMixOffset) (df.rightSB - botMixOffset) pxBot1] local xBot2 : df.width - xBot1 - local topWithoutSerif : if SLAB (top - Stroke) top local wMidHeight : match bodyType - [Just FORM-CURLY] : top * 0.6 - [Just FORM-STRAIGHT] : topWithoutSerif * 0.72 - [Just FORM-FLAT-TOP] topWithoutSerif - [Just FORM-DOUBLE-V] top - [Just FORM-ASYMMETRIC] top - [Just FORM-CYRL-OMEGA] top + [Just FORM-CURLY] : top * 0.6 + [Just FORM-STRAIGHT] : top * 0.72 + [Just FORM-ALMOST-FLAT-TOP] : top - Stroke + [Just FORM-FLAT-TOP] top + [Just FORM-DOUBLE-V] top + [Just FORM-ASYMMETRIC] top + [Just FORM-CYRL-OMEGA] top local xRight1 : match bodyType ([Just FORM-DOUBLE-V] || [Just FORM-ASYMMETRIC] || [Just FORM-CYRL-OMEGA]) @@ -133,7 +139,7 @@ glyph-block Letter-Latin-W : begin ### W and w define [WShapeImpl df top bodyType slabType] : glyph-proc - local dim : WDim df top bodyType + local dim : WDim df top bodyType slabType include : tagged 'strokeDown1' : match bodyType ([Just FORM-CURLY] || [Just FORM-CYRL-OMEGA]) : dispiro @@ -221,10 +227,10 @@ glyph-block Letter-Latin-W : begin HSerif.mtAsymmetric (df.leftSB + [HSwToV : 0.5 * dim.strokeOuter]) dim.wMidHeight jut jut HSerif.mtAsymmetric dim.xLeft2 dim.wMidHeight jut jut - define [WHooktopShape df top bodyType serifsType] : glyph-proc - include : WShapeImpl df top bodyType serifsType + define [WHooktopShape df top bodyType slabType] : glyph-proc + include : WShapeImpl df top bodyType slabType - local dim : WDim df top bodyType + local dim : WDim df top bodyType slabType # Eject unnecessary contours eject-contour 'strokeUp2' @@ -255,8 +261,8 @@ glyph-block Letter-Latin-W : begin [Just SERIFS-MOTION] : begin sf.lt.outer ___ : glyph-proc - define [WVSHookTopShape df top bodyType serifsType] : glyph-proc - include : WVertSides df top bodyType serifsType + define [WVSHookTopShape df top bodyType slabType] : glyph-proc + include : WVertSides df top bodyType slabType # Eject unnecessary contours eject-contour 'strokeLeftBar' @@ -342,21 +348,22 @@ glyph-block Letter-Latin-W : begin [Just SERIFS-MOTION] : begin sf.lt.outer ___ : glyph-proc - define [WCursiveImpl df top bodyType serifsType] : WCursiveImplImpl false df top bodyType serifsType - define [WHookTopCursive df top bodyType serifsType] : WCursiveImplImpl true df top bodyType serifsType + define [WCursiveImpl df top bodyType slabType] : WCursiveImplImpl false df top bodyType slabType + define [WHookTopCursive df top bodyType slabType] : WCursiveImplImpl true df top bodyType slabType define WConfig : SuffixCfg.weave # Body object - straight { WShapeImpl WHooktopShape FORM-STRAIGHT para.advanceScaleM para.advanceScaleM } - straightAsymmetric { WShapeImpl WHooktopShape FORM-ASYMMETRIC para.advanceScaleM para.advanceScaleM } - straightDoubleV { WShapeImpl WHooktopShape FORM-DOUBLE-V para.advanceScaleM para.advanceScaleM } - straightFlatTop { WShapeImpl WHooktopShape FORM-FLAT-TOP para.advanceScaleMM para.advanceScaleM } - straightVerticalSides { WVertSides WVSHookTopShape FORM-STRAIGHT para.advanceScaleM para.advanceScaleT } - roundedVerticalSides { WRounded WHookTopRounded FORM-CURLY para.advanceScaleMM para.advanceScaleM } - curly { WShapeImpl WHooktopShape FORM-CURLY para.advanceScaleM para.advanceScaleM } - cursive { WCursiveImpl WHookTopCursive FORM-CURLY para.advanceScaleM para.advanceScaleM } - cyrlOmega { WShapeImpl WHooktopShape FORM-CYRL-OMEGA para.advanceScaleMM para.advanceScaleM } + straight { WShapeImpl WHooktopShape FORM-STRAIGHT para.advanceScaleM para.advanceScaleM } + straightAsymmetric { WShapeImpl WHooktopShape FORM-ASYMMETRIC para.advanceScaleM para.advanceScaleM } + straightDoubleV { WShapeImpl WHooktopShape FORM-DOUBLE-V para.advanceScaleM para.advanceScaleM } + straightAlmostFlatTop { WShapeImpl WHooktopShape FORM-ALMOST-FLAT-TOP para.advanceScaleMM para.advanceScaleM } + straightFlatTop { WShapeImpl WHooktopShape FORM-FLAT-TOP para.advanceScaleMM para.advanceScaleM } + straightVerticalSides { WVertSides WVSHookTopShape FORM-STRAIGHT para.advanceScaleM para.advanceScaleT } + roundedVerticalSides { WRounded WHookTopRounded FORM-CURLY para.advanceScaleMM para.advanceScaleM } + curly { WShapeImpl WHooktopShape FORM-CURLY para.advanceScaleM para.advanceScaleM } + cursive { WCursiveImpl WHookTopCursive FORM-CURLY para.advanceScaleM para.advanceScaleM } + cyrlOmega { WShapeImpl WHooktopShape FORM-CYRL-OMEGA para.advanceScaleMM para.advanceScaleM } # Serifs function [body] : if (body == 'cyrlOmega') diff --git a/params/variants.toml b/params/variants.toml index c7740c6e6..07fbf56cf 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -1794,53 +1794,70 @@ next = "serifs" [prime.capital-w.variants-buildup.stages.body.straight] rank = 1 +groupRank = 1 descriptionAffix = "standard, straight body" selectorAffix.W = "straight" selectorAffix."W/sansSerif" = "straight" selectorAffix.WHookTop = "straight" -[prime.capital-w.variants-buildup.stages.body.curly] +[prime.capital-w.variants-buildup.stages.body.straight-almost-flat-top] rank = 2 -descriptionAffix = "curly body" -selectorAffix.W = "curly" -selectorAffix."W/sansSerif" = "curly" -selectorAffix.WHookTop = "curly" - -[prime.capital-w.variants-buildup.stages.body.straight-vertical-sides] -rank = 3 -descriptionAffix = "straight body shape with vertical sides" -selectorAffix.W = "straightVerticalSides" -selectorAffix."W/sansSerif" = "straightVerticalSides" -selectorAffix.WHookTop = "straightVerticalSides" - -[prime.capital-w.variants-buildup.stages.body.rounded-vertical-sides] -rank = 4 -descriptionAffix = "rounded body shape with vertical sides" -selectorAffix.W = "roundedVerticalSides" -selectorAffix."W/sansSerif" = "roundedVerticalSides" -selectorAffix.WHookTop = "roundedVerticalSides" +groupRank = 1 +descriptionAffix = "straight body shape that the middle is forced to be aligned the top" +selectorAffix.W = "straightAlmostFlatTop" +selectorAffix."W/sansSerif" = "straightAlmostFlatTop" +selectorAffix.WHookTop = "straightAlmostFlatTop" [prime.capital-w.variants-buildup.stages.body.straight-flat-top] -rank = 5 +rank = 3 +groupRank = 1 descriptionAffix = "straight body shape that the middle is forced to be aligned the top" selectorAffix.W = "straightFlatTop" selectorAffix."W/sansSerif" = "straightFlatTop" selectorAffix.WHookTop = "straightFlatTop" [prime.capital-w.variants-buildup.stages.body.straight-double-v] -rank = 6 +rank = 4 +groupRank = 2 descriptionAffix = "body shape like double V" selectorAffix.W = "straightDoubleV" selectorAffix."W/sansSerif" = "straightDoubleV" selectorAffix.WHookTop = "straightDoubleV" [prime.capital-w.variants-buildup.stages.body.straight-asymmetric] -rank = 7 +rank = 5 +groupRank = 2 descriptionAffix = "asymmetric shape" selectorAffix.W = "straightAsymmetric" selectorAffix."W/sansSerif" = "straightAsymmetric" selectorAffix.WHookTop = "straightAsymmetric" + +[prime.capital-w.variants-buildup.stages.body.straight-vertical-sides] +rank = 6 +groupRank = 3 +descriptionAffix = "straight body shape with vertical sides" +selectorAffix.W = "straightVerticalSides" +selectorAffix."W/sansSerif" = "straightVerticalSides" +selectorAffix.WHookTop = "straightVerticalSides" + +[prime.capital-w.variants-buildup.stages.body.rounded-vertical-sides] +rank = 7 +groupRank = 3 +descriptionAffix = "rounded body shape with vertical sides" +selectorAffix.W = "roundedVerticalSides" +selectorAffix."W/sansSerif" = "roundedVerticalSides" +selectorAffix.WHookTop = "roundedVerticalSides" + +[prime.capital-w.variants-buildup.stages.body.curly] +rank = 8 +groupRank = 3 +descriptionAffix = "curly body" +selectorAffix.W = "curly" +selectorAffix."W/sansSerif" = "curly" +selectorAffix.WHookTop = "curly" + + [prime.capital-w.variants-buildup.stages.serifs.serifless] rank = 1 descriptionAffix = "serifs" @@ -4719,40 +4736,24 @@ selectorAffix.w = "straight" selectorAffix."w/sansSerif" = "straight" selectorAffix.wHookTop = "straight" -[prime.w.variants-buildup.stages.body.curly] +[prime.w.variants-buildup.stages.body.straight-almost-flat-top] rank = 2 groupRank = 1 -descriptionAffix = "curly body" -selectorAffix.w = "curly" -selectorAffix."w/sansSerif" = "curly" -selectorAffix.wHookTop = "curly" - -[prime.w.variants-buildup.stages.body.straight-vertical-sides] -rank = 3 -groupRank = 1 -descriptionAffix = "straight body shape with vertical sides" -selectorAffix.w = "straightVerticalSides" -selectorAffix."w/sansSerif" = "straightVerticalSides" -selectorAffix.wHookTop = "straightVerticalSides" - -[prime.w.variants-buildup.stages.body.rounded-vertical-sides] -rank = 4 -groupRank = 1 -descriptionAffix = "rounded body shape with vertical sides" -selectorAffix.w = "roundedVerticalSides" -selectorAffix."w/sansSerif" = "roundedVerticalSides" -selectorAffix.wHookTop = "roundedVerticalSides" +descriptionAffix = "straight body shape that the middle is forced to be aligned the top" +selectorAffix.w = "straightAlmostFlatTop" +selectorAffix."w/sansSerif" = "straightAlmostFlatTop" +selectorAffix.wHookTop = "straightAlmostFlatTop" [prime.w.variants-buildup.stages.body.straight-flat-top] -rank = 5 -groupRank = 2 +rank = 3 +groupRank = 1 descriptionAffix = "straight body shape that the middle is forced to be aligned the top" selectorAffix.w = "straightFlatTop" selectorAffix."w/sansSerif" = "straightFlatTop" selectorAffix.wHookTop = "straightFlatTop" [prime.w.variants-buildup.stages.body.straight-double-v] -rank = 6 +rank = 4 groupRank = 2 descriptionAffix = "body shape like double V" selectorAffix.w = "straightDoubleV" @@ -4760,21 +4761,46 @@ selectorAffix."w/sansSerif" = "straightDoubleV" selectorAffix.wHookTop = "straightDoubleV" [prime.w.variants-buildup.stages.body.straight-asymmetric] -rank = 7 +rank = 5 groupRank = 2 descriptionAffix = "asymmetric shape" selectorAffix.w = "straightAsymmetric" selectorAffix."w/sansSerif" = "straightAsymmetric" selectorAffix.wHookTop = "straightAsymmetric" -[prime.w.variants-buildup.stages.body.cursive] -rank = 8 +[prime.w.variants-buildup.stages.body.straight-vertical-sides] +rank = 6 groupRank = 3 +descriptionAffix = "straight body shape with vertical sides" +selectorAffix.w = "straightVerticalSides" +selectorAffix."w/sansSerif" = "straightVerticalSides" +selectorAffix.wHookTop = "straightVerticalSides" + +[prime.w.variants-buildup.stages.body.rounded-vertical-sides] +rank = 7 +groupRank = 3 +descriptionAffix = "rounded body shape with vertical sides" +selectorAffix.w = "roundedVerticalSides" +selectorAffix."w/sansSerif" = "roundedVerticalSides" +selectorAffix.wHookTop = "roundedVerticalSides" + +[prime.w.variants-buildup.stages.body.curly] +rank = 8 +groupRank = 4 +descriptionAffix = "curly body" +selectorAffix.w = "curly" +selectorAffix."w/sansSerif" = "curly" +selectorAffix.wHookTop = "curly" + +[prime.w.variants-buildup.stages.body.cursive] +rank = 9 +groupRank = 4 descriptionAffix = "cursive shape" selectorAffix.w = "cursive" selectorAffix."w/sansSerif" = "cursive" selectorAffix.wHookTop = "cursive" + [prime.w.variants-buildup.stages.serifs.serifless] rank = 1 descriptionAffix = "serifs" From c9bc26f967936fbb8ff7de45a5d0292461450abf Mon Sep 17 00:00:00 2001 From: be5invis Date: Sat, 1 Mar 2025 06:43:57 -0800 Subject: [PATCH 23/23] Release 33.0.0 --- CHANGELOG.md | 308 +---- doc/PACKAGE-LIST.md | 230 ++-- doc/character-variants.md | 255 ++-- doc/custom-build.md | 1104 +++++++++-------- doc/cv-influences.md | 284 ++--- images/button-release.dark.svg | 18 +- images/button-release.light.svg | 18 +- images/cs-block-armenian.dark.svg | 32 +- images/cs-block-armenian.light.svg | 32 +- images/cs-block-cyrillic-extended-b.dark.svg | 2 +- images/cs-block-cyrillic-extended-b.light.svg | 2 +- images/cs-block-cyrillic-supplement.dark.svg | 26 +- images/cs-block-cyrillic-supplement.light.svg | 26 +- images/cs-block-cyrillic.dark.svg | 2 +- images/cs-block-cyrillic.light.svg | 2 +- images/cs-block-greek-and-coptic.dark.svg | 8 +- images/cs-block-greek-and-coptic.light.svg | 8 +- images/cs-block-latin-1-supplement.dark.svg | 2 +- images/cs-block-latin-1-supplement.light.svg | 2 +- images/cs-block-latin-extended-c.dark.svg | 4 +- images/cs-block-latin-extended-c.light.svg | 4 +- images/cs-block-latin-extended-d.dark.svg | 4 +- images/cs-block-latin-extended-d.light.svg | 4 +- images/cs-block-latin-extended-e.dark.svg | 138 ++- images/cs-block-latin-extended-e.light.svg | 138 ++- ...mathematical-alphanumeric-symbols.dark.svg | 6 +- ...athematical-alphanumeric-symbols.light.svg | 6 +- .../cs-block-mathematical-operators.dark.svg | 2 +- .../cs-block-mathematical-operators.light.svg | 2 +- ...cellaneous-mathematical-symbols-b.dark.svg | 10 +- ...ellaneous-mathematical-symbols-b.light.svg | 10 +- .../cs-block-miscellaneous-technical.dark.svg | 5 +- ...cs-block-miscellaneous-technical.light.svg | 5 +- ...ck-phonetic-extensions-supplement.dark.svg | 2 +- ...k-phonetic-extensions-supplement.light.svg | 2 +- .../cs-block-supplemental-arrows-c.dark.svg | 57 +- .../cs-block-supplemental-arrows-c.light.svg | 57 +- ...s-for-legacy-computing-supplement.dark.svg | 18 +- ...-for-legacy-computing-supplement.light.svg | 18 +- ...l-thorn-asymmetric-motion-serifed.dark.svg | 11 + ...-thorn-asymmetric-motion-serifed.light.svg | 11 + ...-capital-thorn-asymmetric-serifed.dark.svg | 11 + ...capital-thorn-asymmetric-serifed.light.svg | 11 + ...apital-thorn-asymmetric-serifless.dark.svg | 11 + ...pital-thorn-asymmetric-serifless.light.svg | 11 + .../cv-capital-thorn-motion-serifed.dark.svg | 2 +- .../cv-capital-thorn-motion-serifed.light.svg | 2 +- images/cv-capital-thorn-serifed.dark.svg | 2 +- images/cv-capital-thorn-serifed.light.svg | 2 +- images/cv-capital-thorn-serifless.dark.svg | 2 +- images/cv-capital-thorn-serifless.light.svg | 2 +- ...ht-almost-flat-top-motion-serifed.dark.svg | 11 + ...t-almost-flat-top-motion-serifed.light.svg | 11 + ...-straight-almost-flat-top-serifed.dark.svg | 11 + ...straight-almost-flat-top-serifed.light.svg | 11 + ...traight-almost-flat-top-serifless.dark.svg | 11 + ...raight-almost-flat-top-serifless.light.svg | 11 + images/cv-lower-theta-capsule.dark.svg | 11 + images/cv-lower-theta-capsule.light.svg | 11 + images/cv-lower-theta-diamond.dark.svg | 11 + images/cv-lower-theta-diamond.light.svg | 11 + images/cv-lower-theta-oval.dark.svg | 11 + images/cv-lower-theta-oval.light.svg | 11 + ...partial-derivative-closed-contour.dark.svg | 11 + ...artial-derivative-closed-contour.light.svg | 11 + ...ht-almost-flat-top-motion-serifed.dark.svg | 11 + ...t-almost-flat-top-motion-serifed.light.svg | 11 + ...-straight-almost-flat-top-serifed.dark.svg | 11 + ...straight-almost-flat-top-serifed.light.svg | 11 + ...traight-almost-flat-top-serifless.dark.svg | 11 + ...raight-almost-flat-top-serifless.light.svg | 11 + images/languages.dark.svg | 20 +- images/languages.light.svg | 20 +- images/package-sample-Iosevka.dark.svg | 2 +- images/package-sample-Iosevka.light.svg | 2 +- images/package-sample-IosevkaAile.dark.svg | 326 ++--- images/package-sample-IosevkaAile.light.svg | 326 ++--- images/package-sample-IosevkaCurly.dark.svg | 2 +- images/package-sample-IosevkaCurly.light.svg | 2 +- .../package-sample-IosevkaCurlySlab.dark.svg | 2 +- .../package-sample-IosevkaCurlySlab.light.svg | 2 +- images/package-sample-IosevkaEtoile.dark.svg | 330 ++--- images/package-sample-IosevkaEtoile.light.svg | 330 ++--- images/package-sample-IosevkaFixed.dark.svg | 2 +- images/package-sample-IosevkaFixed.light.svg | 2 +- .../package-sample-IosevkaFixedCurly.dark.svg | 2 +- ...package-sample-IosevkaFixedCurly.light.svg | 2 +- ...kage-sample-IosevkaFixedCurlySlab.dark.svg | 2 +- ...age-sample-IosevkaFixedCurlySlab.light.svg | 2 +- .../package-sample-IosevkaFixedSS01.dark.svg | 4 +- .../package-sample-IosevkaFixedSS01.light.svg | 4 +- .../package-sample-IosevkaFixedSS02.dark.svg | 2 +- .../package-sample-IosevkaFixedSS02.light.svg | 2 +- .../package-sample-IosevkaFixedSS03.dark.svg | 4 +- .../package-sample-IosevkaFixedSS03.light.svg | 4 +- .../package-sample-IosevkaFixedSS04.dark.svg | 4 +- .../package-sample-IosevkaFixedSS04.light.svg | 4 +- .../package-sample-IosevkaFixedSS05.dark.svg | 2 +- .../package-sample-IosevkaFixedSS05.light.svg | 2 +- .../package-sample-IosevkaFixedSS06.dark.svg | 4 +- .../package-sample-IosevkaFixedSS06.light.svg | 4 +- .../package-sample-IosevkaFixedSS07.dark.svg | 2 +- .../package-sample-IosevkaFixedSS07.light.svg | 2 +- .../package-sample-IosevkaFixedSS08.dark.svg | 4 +- .../package-sample-IosevkaFixedSS08.light.svg | 4 +- .../package-sample-IosevkaFixedSS09.dark.svg | 4 +- .../package-sample-IosevkaFixedSS09.light.svg | 4 +- .../package-sample-IosevkaFixedSS10.dark.svg | 2 +- .../package-sample-IosevkaFixedSS10.light.svg | 2 +- .../package-sample-IosevkaFixedSS11.dark.svg | 2 +- .../package-sample-IosevkaFixedSS11.light.svg | 2 +- .../package-sample-IosevkaFixedSS12.dark.svg | 4 +- .../package-sample-IosevkaFixedSS12.light.svg | 4 +- .../package-sample-IosevkaFixedSS13.dark.svg | 4 +- .../package-sample-IosevkaFixedSS13.light.svg | 4 +- .../package-sample-IosevkaFixedSS14.dark.svg | 2 +- .../package-sample-IosevkaFixedSS14.light.svg | 2 +- .../package-sample-IosevkaFixedSS15.dark.svg | 2 +- .../package-sample-IosevkaFixedSS15.light.svg | 2 +- .../package-sample-IosevkaFixedSS17.dark.svg | 2 +- .../package-sample-IosevkaFixedSS17.light.svg | 2 +- .../package-sample-IosevkaFixedSS18.dark.svg | 2 +- .../package-sample-IosevkaFixedSS18.light.svg | 2 +- .../package-sample-IosevkaFixedSlab.dark.svg | 6 +- .../package-sample-IosevkaFixedSlab.light.svg | 6 +- images/package-sample-IosevkaSS01.dark.svg | 4 +- images/package-sample-IosevkaSS01.light.svg | 4 +- images/package-sample-IosevkaSS02.dark.svg | 2 +- images/package-sample-IosevkaSS02.light.svg | 2 +- images/package-sample-IosevkaSS03.dark.svg | 4 +- images/package-sample-IosevkaSS03.light.svg | 4 +- images/package-sample-IosevkaSS04.dark.svg | 4 +- images/package-sample-IosevkaSS04.light.svg | 4 +- images/package-sample-IosevkaSS05.dark.svg | 2 +- images/package-sample-IosevkaSS05.light.svg | 2 +- images/package-sample-IosevkaSS06.dark.svg | 4 +- images/package-sample-IosevkaSS06.light.svg | 4 +- images/package-sample-IosevkaSS07.dark.svg | 2 +- images/package-sample-IosevkaSS07.light.svg | 2 +- images/package-sample-IosevkaSS08.dark.svg | 4 +- images/package-sample-IosevkaSS08.light.svg | 4 +- images/package-sample-IosevkaSS09.dark.svg | 4 +- images/package-sample-IosevkaSS09.light.svg | 4 +- images/package-sample-IosevkaSS10.dark.svg | 2 +- images/package-sample-IosevkaSS10.light.svg | 2 +- images/package-sample-IosevkaSS11.dark.svg | 2 +- images/package-sample-IosevkaSS11.light.svg | 2 +- images/package-sample-IosevkaSS12.dark.svg | 4 +- images/package-sample-IosevkaSS12.light.svg | 4 +- images/package-sample-IosevkaSS13.dark.svg | 4 +- images/package-sample-IosevkaSS13.light.svg | 4 +- images/package-sample-IosevkaSS14.dark.svg | 2 +- images/package-sample-IosevkaSS14.light.svg | 2 +- images/package-sample-IosevkaSS15.dark.svg | 2 +- images/package-sample-IosevkaSS15.light.svg | 2 +- images/package-sample-IosevkaSS17.dark.svg | 2 +- images/package-sample-IosevkaSS17.light.svg | 2 +- images/package-sample-IosevkaSS18.dark.svg | 2 +- images/package-sample-IosevkaSS18.light.svg | 2 +- images/package-sample-IosevkaSlab.dark.svg | 6 +- images/package-sample-IosevkaSlab.light.svg | 6 +- images/package-sample-IosevkaTerm.dark.svg | 2 +- images/package-sample-IosevkaTerm.light.svg | 2 +- .../package-sample-IosevkaTermCurly.dark.svg | 2 +- .../package-sample-IosevkaTermCurly.light.svg | 2 +- ...ckage-sample-IosevkaTermCurlySlab.dark.svg | 2 +- ...kage-sample-IosevkaTermCurlySlab.light.svg | 2 +- .../package-sample-IosevkaTermSS01.dark.svg | 4 +- .../package-sample-IosevkaTermSS01.light.svg | 4 +- .../package-sample-IosevkaTermSS02.dark.svg | 2 +- .../package-sample-IosevkaTermSS02.light.svg | 2 +- .../package-sample-IosevkaTermSS03.dark.svg | 4 +- .../package-sample-IosevkaTermSS03.light.svg | 4 +- .../package-sample-IosevkaTermSS04.dark.svg | 4 +- .../package-sample-IosevkaTermSS04.light.svg | 4 +- .../package-sample-IosevkaTermSS05.dark.svg | 2 +- .../package-sample-IosevkaTermSS05.light.svg | 2 +- .../package-sample-IosevkaTermSS06.dark.svg | 4 +- .../package-sample-IosevkaTermSS06.light.svg | 4 +- .../package-sample-IosevkaTermSS07.dark.svg | 2 +- .../package-sample-IosevkaTermSS07.light.svg | 2 +- .../package-sample-IosevkaTermSS08.dark.svg | 4 +- .../package-sample-IosevkaTermSS08.light.svg | 4 +- .../package-sample-IosevkaTermSS09.dark.svg | 4 +- .../package-sample-IosevkaTermSS09.light.svg | 4 +- .../package-sample-IosevkaTermSS10.dark.svg | 2 +- .../package-sample-IosevkaTermSS10.light.svg | 2 +- .../package-sample-IosevkaTermSS11.dark.svg | 2 +- .../package-sample-IosevkaTermSS11.light.svg | 2 +- .../package-sample-IosevkaTermSS12.dark.svg | 4 +- .../package-sample-IosevkaTermSS12.light.svg | 4 +- .../package-sample-IosevkaTermSS13.dark.svg | 4 +- .../package-sample-IosevkaTermSS13.light.svg | 4 +- .../package-sample-IosevkaTermSS14.dark.svg | 2 +- .../package-sample-IosevkaTermSS14.light.svg | 2 +- .../package-sample-IosevkaTermSS15.dark.svg | 2 +- .../package-sample-IosevkaTermSS15.light.svg | 2 +- .../package-sample-IosevkaTermSS17.dark.svg | 2 +- .../package-sample-IosevkaTermSS17.light.svg | 2 +- .../package-sample-IosevkaTermSS18.dark.svg | 2 +- .../package-sample-IosevkaTermSS18.light.svg | 2 +- .../package-sample-IosevkaTermSlab.dark.svg | 6 +- .../package-sample-IosevkaTermSlab.light.svg | 6 +- images/ss-i-off-0.dark.svg | 2 +- images/ss-i-off-0.light.svg | 2 +- images/ss-i-ss01-1.dark.svg | 10 +- images/ss-i-ss01-1.light.svg | 10 +- images/ss-i-ss02-1.dark.svg | 2 +- images/ss-i-ss02-1.light.svg | 2 +- images/ss-i-ss03-1.dark.svg | 10 +- images/ss-i-ss03-1.light.svg | 10 +- images/ss-i-ss04-1.dark.svg | 10 +- images/ss-i-ss04-1.light.svg | 10 +- images/ss-i-ss05-1.dark.svg | 2 +- images/ss-i-ss05-1.light.svg | 2 +- images/ss-i-ss06-1.dark.svg | 10 +- images/ss-i-ss06-1.light.svg | 10 +- images/ss-i-ss07-1.dark.svg | 2 +- images/ss-i-ss07-1.light.svg | 2 +- images/ss-i-ss08-1.dark.svg | 10 +- images/ss-i-ss08-1.light.svg | 10 +- images/ss-i-ss09-1.dark.svg | 10 +- images/ss-i-ss09-1.light.svg | 10 +- images/ss-i-ss10-1.dark.svg | 2 +- images/ss-i-ss10-1.light.svg | 2 +- images/ss-i-ss11-1.dark.svg | 2 +- images/ss-i-ss11-1.light.svg | 2 +- images/ss-i-ss12-1.dark.svg | 10 +- images/ss-i-ss12-1.light.svg | 10 +- images/ss-i-ss13-1.dark.svg | 10 +- images/ss-i-ss13-1.light.svg | 10 +- images/ss-i-ss14-1.dark.svg | 2 +- images/ss-i-ss14-1.light.svg | 2 +- images/ss-i-ss15-1.dark.svg | 2 +- images/ss-i-ss15-1.light.svg | 2 +- images/ss-i-ss16-1.dark.svg | 5 +- images/ss-i-ss16-1.light.svg | 5 +- images/ss-i-ss17-1.dark.svg | 2 +- images/ss-i-ss17-1.light.svg | 2 +- images/ss-i-ss18-1.dark.svg | 2 +- images/ss-i-ss18-1.light.svg | 2 +- images/ss-i-ss20-1.dark.svg | 2 +- images/ss-i-ss20-1.light.svg | 2 +- images/ss-u-off-0.dark.svg | 2 +- images/ss-u-off-0.light.svg | 2 +- images/ss-u-ss01-1.dark.svg | 10 +- images/ss-u-ss01-1.light.svg | 10 +- images/ss-u-ss02-1.dark.svg | 2 +- images/ss-u-ss02-1.light.svg | 2 +- images/ss-u-ss03-1.dark.svg | 10 +- images/ss-u-ss03-1.light.svg | 10 +- images/ss-u-ss04-1.dark.svg | 10 +- images/ss-u-ss04-1.light.svg | 10 +- images/ss-u-ss05-1.dark.svg | 2 +- images/ss-u-ss05-1.light.svg | 2 +- images/ss-u-ss06-1.dark.svg | 10 +- images/ss-u-ss06-1.light.svg | 10 +- images/ss-u-ss07-1.dark.svg | 2 +- images/ss-u-ss07-1.light.svg | 2 +- images/ss-u-ss08-1.dark.svg | 10 +- images/ss-u-ss08-1.light.svg | 10 +- images/ss-u-ss09-1.dark.svg | 10 +- images/ss-u-ss09-1.light.svg | 10 +- images/ss-u-ss10-1.dark.svg | 2 +- images/ss-u-ss10-1.light.svg | 2 +- images/ss-u-ss11-1.dark.svg | 2 +- images/ss-u-ss11-1.light.svg | 2 +- images/ss-u-ss12-1.dark.svg | 10 +- images/ss-u-ss12-1.light.svg | 10 +- images/ss-u-ss13-1.dark.svg | 10 +- images/ss-u-ss13-1.light.svg | 10 +- images/ss-u-ss14-1.dark.svg | 2 +- images/ss-u-ss14-1.light.svg | 2 +- images/ss-u-ss15-1.dark.svg | 2 +- images/ss-u-ss15-1.light.svg | 2 +- images/ss-u-ss16-1.dark.svg | 5 +- images/ss-u-ss16-1.light.svg | 5 +- images/ss-u-ss17-1.dark.svg | 2 +- images/ss-u-ss17-1.light.svg | 2 +- images/ss-u-ss18-1.dark.svg | 2 +- images/ss-u-ss18-1.light.svg | 2 +- images/ss-u-ss20-1.dark.svg | 2 +- images/ss-u-ss20-1.light.svg | 2 +- package-lock.json | 80 +- package.json | 2 +- packages/font-glyphs/package.json | 12 +- packages/font-kits/package.json | 8 +- packages/font-otl/package.json | 6 +- packages/font/package.json | 16 +- packages/geometry-cache/package.json | 4 +- packages/geometry/package.json | 4 +- packages/glyph/package.json | 4 +- packages/param/package.json | 4 +- packages/util/package.json | 2 +- tools/amend-readme/package.json | 4 +- tools/data-export/package.json | 4 +- tools/generate-samples/package.json | 4 +- tools/misc/package.json | 4 +- 298 files changed, 2838 insertions(+), 2623 deletions(-) create mode 100644 images/cv-capital-thorn-asymmetric-motion-serifed.dark.svg create mode 100644 images/cv-capital-thorn-asymmetric-motion-serifed.light.svg create mode 100644 images/cv-capital-thorn-asymmetric-serifed.dark.svg create mode 100644 images/cv-capital-thorn-asymmetric-serifed.light.svg create mode 100644 images/cv-capital-thorn-asymmetric-serifless.dark.svg create mode 100644 images/cv-capital-thorn-asymmetric-serifless.light.svg create mode 100644 images/cv-capital-w-straight-almost-flat-top-motion-serifed.dark.svg create mode 100644 images/cv-capital-w-straight-almost-flat-top-motion-serifed.light.svg create mode 100644 images/cv-capital-w-straight-almost-flat-top-serifed.dark.svg create mode 100644 images/cv-capital-w-straight-almost-flat-top-serifed.light.svg create mode 100644 images/cv-capital-w-straight-almost-flat-top-serifless.dark.svg create mode 100644 images/cv-capital-w-straight-almost-flat-top-serifless.light.svg create mode 100644 images/cv-lower-theta-capsule.dark.svg create mode 100644 images/cv-lower-theta-capsule.light.svg create mode 100644 images/cv-lower-theta-diamond.dark.svg create mode 100644 images/cv-lower-theta-diamond.light.svg create mode 100644 images/cv-lower-theta-oval.dark.svg create mode 100644 images/cv-lower-theta-oval.light.svg create mode 100644 images/cv-partial-derivative-closed-contour.dark.svg create mode 100644 images/cv-partial-derivative-closed-contour.light.svg create mode 100644 images/cv-w-straight-almost-flat-top-motion-serifed.dark.svg create mode 100644 images/cv-w-straight-almost-flat-top-motion-serifed.light.svg create mode 100644 images/cv-w-straight-almost-flat-top-serifed.dark.svg create mode 100644 images/cv-w-straight-almost-flat-top-serifed.light.svg create mode 100644 images/cv-w-straight-almost-flat-top-serifless.dark.svg create mode 100644 images/cv-w-straight-almost-flat-top-serifless.light.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index 64188cb50..395404088 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,280 +1,56 @@ ## Modifications since last major version -### 32.5.0 +### 33.0.0 -* Add variant selector for decorative angle brackets (U+276C...U+2771) (#2603, #2623). +* \[**Breaking**\] Adjusted width of spaces in quasi-porportional + - Slightly narrower by default + - Adjustable via metric override +* \[**Breaking**\] Reordered variants for `W`, `a`, `b`, `g`, `q`, `w`, `α`, Cyrillic `а`, Cyrillic `ф`, and `$`. +* \[**Breaking**\] Add variants for Capital Thorn (`Þ`) with symmetric/asymmetric bowl position. +* \[**Breaking**\] Add variant selector for Greek Lower Theta (#2630). + - As a result, character variant feature tags are reordered. +* Add almost-flat-top variant for `W` and `w` (#2693). +* Add `closed-contour` variant for Partial derivative symbol (#2148). * Refine shape of the following characters: - - GREEK PHI SYMBOL (`U+03D5`). - - CYRILLIC SMALL LETTER EF (`U+0444`). - - ARMENIAN CAPITAL LETTER KEH (`U+0554`). - - ARMENIAN SMALL LETTER CA (`U+056E`). - - ARMENIAN SMALL LETTER KEH (`U+0584`). - - VERTICAL ZIGZAG LINE (`U+299A`). - - LEFT WIGGLY FENCE (`U+29D8`). - - RIGHT WIGGLY FENCE (`U+29D9`). - - LEFT DOUBLE WIGGLY FENCE (`U+29DA`). - - RIGHT DOUBLE WIGGLY FENCE (`U+29DB`). - - HORIZONTAL RESISTOR SEGMENT (`U+1CC09`). - - VERTICAL RESISTOR SEGMENT (`U+1CC0A`). - - HORIZONTAL ZIGZAG LINE (`U+1CEB0`). -* Add italic form for Cyrillic Small Letter Ghe with Upturn (`ґ`). -* Add characters: - - ELECTRIC ARROW (`U+2301`). - - UP ARROWHEAD (`U+2303`). - - DOWN ARROWHEAD (`U+2304`). - - POSITION INDICATOR (`U+2316`). - - UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS (`U+2324`). - - OPTION KEY (`U+2325`). - - CYLINDRICITY (`U+232D`). - - ALL AROUND-PROFILE (`U+232E`). - - TOTAL RUNOUT (`U+2330`). - - DIMENSION ORIGIN (`U+2331`). - - ENTER SYMBOL (`U+2386`). - - ALTERNATIVE KEY SYMBOL (`U+2387`). - - SQUARE POSITION INDICATOR (`U+2BD0`). - * Descriptions of stylistic sets are added to font files (#2664). - - -### 32.4.0 - -* Add `curved` variant for `¶` (#2045). -* Add `top-cut` variants for `a`/`g`/`q`. -* Add `bottom-cut` variants for `b`. -* Refine shape of `Չ`. -* Make certain characters slightly wider under Quasi-Proportional. Affected characters: - - LATIN SMALL LETTER SCHWA WITH HOOK (`U+025A`). - - LATIN SMALL LETTER REVERSED OPEN E WITH HOOK (`U+025D`). - - LATIN LETTER SMALL CAPITAL OE (`U+0276`). - - LATIN LETTER SMALL CAPITAL AE (`U+1D01`). - - LATIN LETTER SMALL CAPITAL W (`U+1D21`). - - TELEPHONE SIGN (`U+2121`). - - FACSIMILE SIGN (`U+213B`). - - MODIFIER LETTER SMALL CAPITAL AA (`U+01780`). - - MODIFIER LETTER SMALL CAPITAL OE (`U+107A3`). -* Add characters: - - NEW SHEQEL SIGN (`U+20AA`) (#2097). - - TURKISH LIRA SIGN (`U+20BA`) (#2097). - - MANAT SIGN (`U+20BC`) (#2097). - - LARI SIGN (`U+20BE`) (#2097). - - VIEWDATA SQUARE (`U+2317`). - - PLACE OF INTEREST SIGN (`U+2318`). - - CURVED STEM PARAGRAPH SIGN ORNAMENT (`U+2761`). -* Add new spacing option `wide-mosaic` for custom build (#2637). - - -### 32.3.1 - -* Make certain characters slightly narrower under Quasi-Proportional. Affected characters: - GREEK CAPITAL LETTER HETA (`U+0370`). - GREEK SMALL LETTER HETA (`U+0371`). - - LATIN CAPITAL LETTER HALF H (`U+2C75`). - - LATIN SMALL LETTER HALF H (`U+2C76`). - - LATIN CAPITAL LETTER REVERSED HALF H (`U+A7F5`). - - LATIN SMALL LETTER REVERSED HALF H (`U+A7F6`). -* Fix shape of `U+276E` and `U+276E` (#2603). -* Improve serifs of Bulgarian Cyrillic Lower Zhe (`ж`). -* Add characters: - - OPEN CENTRE CROSS (`U+271B`). - - HEAVY OPEN CENTRE CROSS (`U+271C`). - - MALTESE CROSS (`U+2720`). - - FOUR TEARDROP-SPOKED ASTERISK (`U+2722`) ... FOUR CLUB-SPOKED ASTERISK (`U+2725`). - - OPEN CENTRE ASTERISK (`U+2732`). - - TEARDROP-SPOKED ASTERISK (`U+273B`) ... HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK (`U+274B`). - - -### 32.3.0 - -* Make Cyrillic Capital/Small Letter Yn (U+A65E‥U+A65F) to follow Greek Capital Lambda (cv72) instead of V/v. (#2539) -* Make certain M-width characters slightly wider under Quasi-Proportional. Affected characters: - - LATIN CAPITAL LETTER W (`U+0057`). - - LATIN SMALL LETTER M (`U+006D`). - - LATIN CAPITAL LETTER AE (`U+00C6`). - - LATIN SMALL LETTER AE (`U+00E6`). - - LATIN CAPITAL LIGATURE OE (`U+0152`) ... LATIN SMALL LIGATURE OE (`U+0153`). - - LATIN CAPITAL LETTER W WITH CIRCUMFLEX (`U+0174`). - - LATIN SMALL LETTER HV (`U+0195`). - - LATIN CAPITAL LETTER TURNED M (`U+019C`). - - LATIN CAPITAL LETTER AE WITH MACRON (`U+01E2`) ... LATIN SMALL LETTER AE WITH MACRON (`U+01E3`). - - LATIN CAPITAL LETTER HWAIR (`U+01F6`). - - LATIN CAPITAL LETTER AE WITH ACUTE (`U+01FC`) ... LATIN SMALL LETTER AE WITH ACUTE (`U+01FD`). - - LATIN SMALL LETTER DB DIGRAPH (`U+0238`) ... LATIN SMALL LETTER QP DIGRAPH (`U+0239`). - - LATIN SMALL LETTER TURNED M (`U+026F`) ... LATIN SMALL LETTER M WITH HOOK (`U+0271`). - - LATIN SMALL LETTER DZ DIGRAPH (`U+02A3`) ... LATIN SMALL LETTER LZ DIGRAPH (`U+02AB`). - - CYRILLIC CAPITAL LETTER LJE (`U+0409`) ... CYRILLIC CAPITAL LETTER NJE (`U+040A`). - - CYRILLIC CAPITAL LETTER SHA (`U+0428`) ... CYRILLIC CAPITAL LETTER SHCHA (`U+0429`). - - CYRILLIC SMALL LETTER EF (`U+0444`). - - CYRILLIC SMALL LETTER SHA (`U+0448`) ... CYRILLIC SMALL LETTER SHCHA (`U+0449`). - - CYRILLIC SMALL LETTER LJE (`U+0459`) ... CYRILLIC SMALL LETTER NJE (`U+045A`). - - CYRILLIC CAPITAL LETTER OMEGA (`U+0460`). - - CYRILLIC CAPITAL LETTER OMEGA WITH TITLO (`U+047C`). - - CYRILLIC CAPITAL LETTER OT (`U+047E`). - - CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK (`U+04A6`) ... CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK (`U+04A7`). - - CYRILLIC CAPITAL LIGATURE A IE (`U+04D4`) ... CYRILLIC SMALL LIGATURE A IE (`U+04D5`). + - GREEK CAPITAL LETTER SHO (`U+03F7`). + - CYRILLIC CAPITAL LETTER SHHA (`U+04BA`). - CYRILLIC CAPITAL LETTER KOMI DJE (`U+0502`) ... CYRILLIC SMALL LETTER KOMI ZJE (`U+0505`). - - CYRILLIC CAPITAL LETTER KOMI LJE (`U+0508`) ... CYRILLIC SMALL LETTER KOMI NJE (`U+050B`). - - CYRILLIC CAPITAL LETTER YAE (`U+0518`) ... CYRILLIC SMALL LETTER YAE (`U+0519`). - - CYRILLIC CAPITAL LETTER WE (`U+051C`). - - CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK (`U+0520`) ... CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK (`U+0523`). - - CYRILLIC CAPITAL LETTER DZZHE (`U+052A`) ... CYRILLIC SMALL LETTER DZZHE (`U+052B`). + - CYRILLIC CAPITAL LETTER KOMI LJE (`U+0508`) ... CYRILLIC SMALL LETTER KOMI TJE (`U+050F`). + - CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER (`U+0526`). + - ARMENIAN CAPITAL LETTER EH (`U+0537`). + - ARMENIAN CAPITAL LETTER INI (`U+053B`). - ARMENIAN CAPITAL LETTER XEH (`U+053D`). - - ARMENIAN SMALL LETTER TURNED AYB (`U+0560`) ... ARMENIAN SMALL LETTER AYB (`U+0561`). + - ARMENIAN CAPITAL LETTER CA (`U+053E`). + - ARMENIAN CAPITAL LETTER HO (`U+0540`). + - ARMENIAN CAPITAL LETTER CO (`U+0551`). + - ARMENIAN CAPITAL LETTER FEH (`U+0556`). + - ARMENIAN SMALL LETTER BEN (`U+0562`). + - ARMENIAN SMALL LETTER ECH (`U+0565`). + - ARMENIAN SMALL LETTER EH (`U+0567`). + - ARMENIAN SMALL LETTER ZHE (`U+056A`). - ARMENIAN SMALL LETTER XEH (`U+056D`). - - ARMENIAN SMALL LETTER PEH (`U+057A`). + - ARMENIAN SMALL LETTER CHA (`U+0579`). - ARMENIAN SMALL LETTER TIWN (`U+057F`). - ARMENIAN SMALL LETTER PIWR (`U+0583`). + - ARMENIAN SMALL LETTER FEH (`U+0586`). - ARMENIAN SMALL LIGATURE ECH YIWN (`U+0587`). - - CYRILLIC SMALL LETTER THREE-LEGGED TE (`U+1C85`). - - LATIN SMALL LETTER TURNED AE (`U+1D02`). - - LATIN SMALL LETTER TURNED OE (`U+1D14`). - - MODIFIER LETTER CAPITAL AE (`U+1D2D`). - - MODIFIER LETTER CAPITAL W (`U+1D42`). - - MODIFIER LETTER SMALL TURNED AE (`U+1D46`). - - MODIFIER LETTER SMALL M (`U+1D50`). - - MODIFIER LETTER SMALL TURNED M (`U+1D5A`). - - LATIN SMALL LETTER UE (`U+1D6B`). - - LATIN SMALL LETTER M WITH MIDDLE TILDE (`U+1D6F`). - - LATIN SMALL LETTER M WITH PALATAL HOOK (`U+1D86`). - - LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK (`U+1D95`). - - MODIFIER LETTER SMALL M WITH HOOK (`U+1DAC`) ... MODIFIER LETTER SMALL TURNED M WITH LONG LEG (`U+1DAD`). - - LATIN SMALL LETTER M WITH ACUTE (`U+1E3F`). - - LATIN SMALL LETTER M WITH DOT ABOVE (`U+1E41`). - - LATIN SMALL LETTER M WITH DOT BELOW (`U+1E43`). - - LATIN CAPITAL LETTER W WITH GRAVE (`U+1E80`). - - LATIN CAPITAL LETTER W WITH ACUTE (`U+1E82`). - - LATIN CAPITAL LETTER W WITH DIAERESIS (`U+1E84`). - - LATIN CAPITAL LETTER W WITH DOT ABOVE (`U+1E86`). - - LATIN CAPITAL LETTER W WITH DOT BELOW (`U+1E88`). - - LATIN SUBSCRIPT SMALL LETTER M (`U+2098`). - - TELEPHONE SIGN (`U+2121`). - - FACSIMILE SIGN (`U+213B`). - - MILL SIGN (`U+20A5`). - - WON SIGN (`U+20A9`). - - SMALL ROMAN NUMERAL ONE THOUSAND (`U+217F`) ... ROMAN NUMERAL ONE THOUSAND C D (`U+2180`). - - ROMAN NUMERAL TEN THOUSAND (`U+2182`). - - ROMAN NUMERAL ONE HUNDRED THOUSAND (`U+2188`). - - VERY MUCH LESS-THAN (`U+22D8`) ... VERY MUCH GREATER-THAN (`U+22D9`). - - LEFT AND RIGHT DOUBLE TURNSTILE (`U+27DA`) ... LEFT AND RIGHT TACK (`U+27DB`). - - SHUFFLE PRODUCT (`U+29E2`). - - LATIN CAPITAL LETTER W WITH HOOK (`U+2C72`). - - CYRILLIC CAPITAL LETTER BROAD OMEGA (`U+A64C`). - - CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O (`U+A66C`) ... CYRILLIC LETTER MULTIOCULAR O (`U+A66E`). - - CYRILLIC CAPITAL LETTER ZHWE (`U+A684`) ... CYRILLIC SMALL LETTER CCHE (`U+A687`). - - CYRILLIC CAPITAL LETTER DOUBLE O (`U+A698`) ... CYRILLIC SMALL LETTER DOUBLE O (`U+A699`). - - LATIN CAPITAL LETTER AA (`U+A732`) ... LATIN SMALL LETTER AU (`U+A737`). - - LATIN CAPITAL LETTER OO (`U+A74E`) ... LATIN SMALL LETTER OO (`U+A74F`). - - LATIN CAPITAL LETTER OMEGA (`U+A7B6`). - - MODIFIER LETTER SMALL LIGATURE OE (`U+A7F9`) ... LATIN SMALL CAPITAL LETTER TURNED M (`U+A7FA`). - - LATIN EPIGRAPHIC LETTER ARCHAIC M (`U+A7FF`). - - LATIN SMALL LETTER A REVERSED SCHWA (`U+AB31`). - - LATIN SMALL LETTER M WITH CROSSED-TAIL (`U+AB3A`). - - LATIN SMALL LETTER INVERTED OE (`U+AB40`) ... LATIN SMALL LETTER TURNED OE WITH HORIZONTAL STROKE (`U+AB42`). - - LATIN SMALL LETTER SAKHA YAT (`U+AB60`). - - LATIN SMALL LETTER UO (`U+AB63`). - - LATIN SMALL LETTER DZ DIGRAPH WITH RETROFLEX HOOK (`U+AB66`) ... LATIN SMALL LETTER TS DIGRAPH WITH RETROFLEX HOOK (`U+AB67`). - - LATIN SMALL LIGATURE FFI (`U+FB03`) ... LATIN SMALL LIGATURE ST (`U+FB06`). - - MODIFIER LETTER SMALL AE (`U+10783`). - - LATIN SMALL LETTER DEZH DIGRAPH WITH PALATAL HOOK (`U+1DF12`). - - LATIN SMALL LETTER TESH DIGRAPH WITH PALATAL HOOK (`U+1DF17`). - - MODIFIER LETTER CYRILLIC SMALL EF (`U+1E042`). - - MODIFIER LETTER CYRILLIC SMALL SHA (`U+1E046`). - - CYRILLIC SUBSCRIPT SMALL LETTER EF (`U+1E060`). - - CYRILLIC SUBSCRIPT SMALL LETTER SHA (`U+1E064`). -* Add characters: - - MARRIAGE SYMBOL (`U+26AD`) ... UNMARRIED PARTNERSHIP SYMBOL (`U+26AF`). - - LEFT OUTER JOIN (`U+27D5`) ... FULL OUTER JOIN (`U+27D7`). - - Z NOTATION LEFT BINDING BRACKET (`U+2989`). - - Z NOTATION RIGHT BINDING BRACKET (`U+298A`). - - TRIANGLE WITH DOT ABOVE (`U+29CA`). - - TRIANGLE WITH UNDERBAR (`U+29CB`). - - TRIANGLE WITH SERIFS AT BOTTOM (`U+29CD`). - - N-ARY TIMES OPERATOR (`U+2A09`). - - JOIN (`U+2A1D`). - - LARGE LEFT TRIANGLE OPERATOR (`U+2A1E`). - - CLOSED UNION WITH SERIFS (`U+2A4C`) ... DOUBLE SQUARE UNION (`U+2A4F`). - - SLOPING LARGE OR (`U+2A57`). - - SLOPING LARGE AND (`U+2A58`). - - LOGICAL AND WITH MIDDLE STEM (`U+2A5A`). - - LOGICAL OR WITH MIDDLE STEM (`U+2A5B`). - - Z NOTATION DOMAIN ANTIRESTRICTION (`U+2A64`). - - Z NOTATION RANGE ANTIRESTRICTION (`U+2A65`). - - SMALLER THAN (`U+2AAA`) ... LARGER THAN OR EQUAL TO (`U+2AAD`). - - CLOSED SUBSET (`U+2ACF`) ... CLOSED SUPERSET OR EQUAL TO (`U+2AD2`). - - ANTICLOCKWISE TRIANGLE-HEADED RIGHT U-SHAPED ARROW (`U+2B8C`) ... FOUR CORNER ARROWS CIRCLING ANTICLOCKWISE (`U+2B94`). - - DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS (`U+2BA0`) ... RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS (`U+2BA7`). - - UNITED SYMBOL (`U+2BFA`) ... PASSED SYMBOL (`U+2BFD`). - - MUSICAL SYMBOL FLAT UP (`U+1D12C`) ... MUSICAL SYMBOL SHARP DOWN (`U+1D131`). - - LATIN SMALL LETTER DEZH DIGRAPH WITH RETROFLEX HOOK (`U+1DF19`). - - LATIN SMALL LETTER TESH DIGRAPH WITH RETROFLEX HOOK (`U+1DF1C`). - - -### 32.2.1 - + - LATIN CAPITAL LETTER HALF H (`U+2C75`). + - LATIN SMALL LETTER HALF H (`U+2C76`). + - CYRILLIC CAPITAL LETTER HWE (`U+A694`). + - LATIN CAPITAL LETTER REVERSED HALF H (`U+A7F5`). + - LATIN SMALL LETTER REVERSED HALF H (`U+A7F6`). * Make certain characters slightly wider under Quasi-Proportional. Affected characters: - - CYRILLIC CAPITAL LETTER DJE (`U+0402`). - - CYRILLIC CAPITAL LETTER TSHE (`U+040B`). - - CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS (`U+0468`). - - CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS (`U+046C`). - - CYRILLIC CAPITAL LETTER BASHKIR KA (`U+04A0`). - - CYRILLIC SMALL LETTER BASHKIR KA (`U+04A1`). - - CYRILLIC CAPITAL LIGATURE TE TSE (`U+04B4`). - - CYRILLIC SMALL LIGATURE TE TSE (`U+04B5`). - - CYRILLIC CAPITAL LETTER YERU WITH BACK YER (`U+A650`). - - CYRILLIC SMALL LETTER YERU WITH BACK YER (`U+A651`). - - CYRILLIC CAPITAL LETTER TCHE (`U+A692`). - - CYRILLIC SMALL LETTER TCHE (`U+A693`). - - LATIN EPIGRAPHIC LETTER ARCHAIC M (`U+A7FF`). - - MODIFIER LETTER CYRILLIC SMALL YERU WITH BACK YER (`U+1E06C`). - - -### 32.2.0 - -* Make M-width small-capital characters slightly narrower under Quasi-Proportional. Affected characters: - - LATIN LETTER SMALL CAPITAL OE (`U+0276`). - - GREEK SMALL LETTER SAN (`U+03FB`). - - CYRILLIC SMALL LETTER EM (`U+043C`). - - CYRILLIC SMALL LETTER EM WITH TAIL (`U+04CE`). - - LATIN LETTER SMALL CAPITAL AE (`U+1D01`). - - LATIN LETTER SMALL CAPITAL M (`U+1D0D`). - - LATIN LETTER SMALL CAPITAL W (`U+1D21`). - - GREEK LETTER SMALL CAPITAL PSI (`U+1D2A`). - - TELEPHONE SIGN (`U+2121`). - - FACSIMILE SIGN (`U+213B`). - - CYRILLIC SMALL LETTER SOFT EM (`U+A667`). - - LATIN LETTER SMALL CAPITAL TURNED M (`U+A7FA`). - - MODIFIER LETTER SMALL CAPITAL AA (`U+10780`). - - MODIFIER LETTER SMALL CAPITAL OE (`U+107A3`). - - MODIFIER LETTER CYRILLIC SMALL EM (`U+1E03B`). -* Make LATIN SMALL LIGATURE FF (`U+FB00`) ... LATIN SMALL LIGATURE FFL (`U+FB04`) slightly narrower under Quasi-Proportional. -* Optimize glyphs for Bulgarian Cyrillic Capital/Small Letter Ef (`U+0424`, `U+0444`). - - -### 32.1.0 - -* Make dense letters less outstanding (#2581). -* Optimize glyphs for Armenian Capital Ini (`U+053B`), Ken (`U+053F`), and Vew (`U+054E`). -* Remove bottom-right serif from Armenian Capital Now (`U+0546`). -* Remove top-right serif from Armenian Lower Ben (`U+0562`). -* Make serif of Armenian Lower Yi (`U+0575`) consistent with Armenian Lower Liwn (`U+056C`). -* Make hook of Armenian Lower Co (`U+0581`) consistent with Armenian Lower Yi (`U+0575`). - - -### 32.0.1 - -* Fix inconsistent serifs of `U+0284` and `U+10798` with the variants of `j` (#2569). - - -### 32.0.0 - -* Add Armenian letters: - - ARMENIAN CAPITAL LETTER AYB (`U+0531`) ... ARMENIAN DRAM SIGN (`U+058F`). -* Add characters: - - LEFT AND RIGHT DOUBLE TURNSTILE (`U+27DA`). - - LEFT AND RIGHT TACK (`U+27DB`). - - LONG RIGHT TACK (`U+27DD`). - - LONG LEFT TACK (`U+27DE`). - - UP ARROW THROUGH CIRCLE (`U+29BD`). - - UPPER LEFT QUADRANT STANDING KNIGHT (`U+1CCD2`) ... LOWER RIGHT QUADRANT STANDING KNIGHT (`U+1CCD5`). - - HORIZONTAL ZIGZAG LINE (`U+1CEB0`). -* Optimize `semi-chancery-straight-serifed` and `semi-chancery-curly-serifed` variants for `x` (`cv58`). -* Make Dotless J with Stroke and Hook (`U+0284`) have a serif under slab. + - CYRILLIC CAPITAL LETTER UK (`U+0478`). + - LATIN SMALL LIGATURE FF (`U+FB00`) ... LATIN SMALL LIGATURE FFL (`U+FB04`). +* Add Characters: + - OBSERVER EYE SYMBOL (`U+23FF`). + - LATIN SMALL LETTER SCRIPT R (`U+AB4B`). + - LATIN SMALL LETTER SCRIPT R WITH RING (`U+AB4C`). + - KEYHOLE (`U+1CEB1`). + - BLACK RIGHT TRIANGLE CARET (`U+1CEB3`). + - RIGHTWARDS ARROW WITH LOWER HOOK (`U+1F8B2`). + - LEFTWARDS ARROW FROM DOWNWARDS ARROW (`U+1F8C0`). + - RIGHTWARDS ARROW FROM DOWNWARDS ARROW (`U+1F8C1`). diff --git a/doc/PACKAGE-LIST.md b/doc/PACKAGE-LIST.md index 58f29b4a6..3a20bbeae 100644 --- a/doc/PACKAGE-LIST.md +++ b/doc/PACKAGE-LIST.md @@ -1,7 +1,7 @@ -# Package list of Release 32.5.0 +# Package list of Release 33.0.0 ## Prebuilt Packages Iosevka provides a large variety of variants. Prebuilt variants are listed below. For all Monospace variants' packages, it will contain three _spacing variants_. You can either download the package containing all the spacing variants (recommended), or cherry-pick the variant with specific spacing. @@ -22,146 +22,146 @@ Iosevka provides various packaging formats, here is the list of them: - + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - + + - - + +
📦 IosevkaMonospace, DefaultSuper TTCTTC 
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka AileQuasi-proportional, Sans-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka EtoileQuasi-proportional, Slab-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
diff --git a/doc/character-variants.md b/doc/character-variants.md index 3e03f20c9..ab381ffad 100644 --- a/doc/character-variants.md +++ b/doc/character-variants.md @@ -894,9 +894,9 @@ - - - + + + @@ -928,7 +928,9 @@ - + + + 13 @@ -940,7 +942,9 @@ 19 20 21 - +22 +23 +24 cv33 @@ -1090,15 +1094,15 @@ + + + - - - 13 @@ -1119,12 +1123,12 @@ + + - - @@ -1251,14 +1255,14 @@ + + - - 1 @@ -1648,10 +1652,10 @@ - - - - + + + + 1 @@ -1668,14 +1672,14 @@ 12 + + + + - - - - @@ -1875,19 +1879,19 @@ -cv57 +cv57 - - - - - - + + + + + + 1 @@ -1904,18 +1908,18 @@ 12 - - - - - + + + - + + + 13 @@ -1929,7 +1933,17 @@ 21 22 23 - +24 + + + + + + + +25 +26 + cv58 @@ -2299,13 +2313,19 @@ - + + + + 1 2 3 - +4 +5 +6 + cv66 @@ -2328,12 +2348,12 @@ + + + - - - 1 @@ -2350,9 +2370,9 @@ 12 - - - + + + @@ -2362,7 +2382,7 @@ -VXAC +cv68 @@ -2373,7 +2393,7 @@ -cv68 +cv69 @@ -2388,7 +2408,7 @@ -VXAD +cv70 @@ -2401,7 +2421,7 @@ -cv69 +cv71 @@ -2412,7 +2432,7 @@ -cv70 +cv72 @@ -2423,7 +2443,20 @@ -cv71 +cv73 + + + + + + +1 +2 +3 + + + +cv74 @@ -2452,7 +2485,7 @@ 12 -cv72 +cv75 @@ -2475,7 +2508,7 @@ -cv73 +cv76 @@ -2494,7 +2527,7 @@ -cv74 +cv77 @@ -2531,7 +2564,7 @@ -VXAE +cv78 @@ -2544,7 +2577,7 @@ -cv75 +cv79 @@ -2555,7 +2588,7 @@ -cv76 +cv80 @@ -2568,7 +2601,7 @@ -cv77 +cv81 @@ -2587,7 +2620,7 @@ -VXAF +cv82 @@ -2602,7 +2635,7 @@ -VXAG +cv83 @@ -2615,7 +2648,7 @@ -cv78 +cv84 @@ -2652,7 +2685,7 @@ -VXAH +cv85 @@ -2667,7 +2700,20 @@ -cv79 +cv86 + + + + + + +1 +2 +3 + + + +cv87 @@ -2699,15 +2745,15 @@ + + + - - - 13 @@ -2724,7 +2770,7 @@ 24 -cv80 +cv88 @@ -2747,7 +2793,7 @@ -cv81 +cv89 @@ -2764,7 +2810,7 @@ -cv82 +cv90 @@ -2781,7 +2827,7 @@ -cv83 +cv91 @@ -2802,7 +2848,7 @@ -cv84 +cv92 @@ -2823,7 +2869,7 @@ -cv85 +cv93 @@ -2874,7 +2920,7 @@ -cv86 +cv94 @@ -2925,7 +2971,7 @@ -cv87 +cv95 @@ -2936,7 +2982,7 @@ -cv88 +cv96 @@ -2965,7 +3011,7 @@ 12 -VXAA +cv97 @@ -2980,7 +3026,7 @@ -cv89 +cv98 @@ -3001,7 +3047,7 @@ -VXAB +cv99 @@ -3020,7 +3066,7 @@ -cv90 +VAAA @@ -3041,7 +3087,7 @@ -cv91 +VAAB @@ -3088,7 +3134,7 @@ -cv92 +VAAC @@ -3135,16 +3181,16 @@ -cv93 +VAAD + - @@ -3162,7 +3208,7 @@ -cv94 +VAAE @@ -3173,7 +3219,7 @@ -cv95 +VAAF @@ -3186,7 +3232,7 @@ -cv96 +VAAG @@ -3205,7 +3251,7 @@ -cv97 +VAAH @@ -3226,7 +3272,7 @@ -cv98 +VAAI @@ -3247,7 +3293,7 @@ -cv99 +VAAJ @@ -3294,7 +3340,7 @@ -VAAA +VAAK @@ -3621,16 +3667,16 @@ VSAM - - - - - + + + + + @@ -3650,16 +3696,16 @@ VSAN - - - - - + + + + + @@ -3729,18 +3775,7 @@ -VSAS - - - - - -1 -2 - - - -VSAT +VSAS @@ -3777,7 +3812,7 @@ -VSAU +VSAT diff --git a/doc/custom-build.md b/doc/custom-build.md index f8ee80a20..71d41426d 100644 --- a/doc/custom-build.md +++ b/doc/custom-build.md @@ -1008,7 +1008,7 @@ Subsection `variants` is used to configure character variants in the font. Prope V with curly shape, and serifs - Styles for `W` -
21 variants +
24 variants @@ -1016,12 +1016,12 @@ Subsection `variants` is used to configure character variants in the font. Prope - - - - - - + + + + + + @@ -1052,6 +1052,12 @@ Subsection `variants` is used to configure character variants in the font. Prope + + + + + +
capital-w = 'straight-serifless', cv32 = 1
W with standard, straight body; without serifs (default for Sans)
W with standard, straight body, and motion serifs
capital-w = 'straight-serifed', cv32 = 3
W with standard, straight body, and serifs (default for Slab)
capital-w = 'curly-serifless', cv32 = 4
W with curly body; without serifs
capital-w = 'curly-motion-serifed', cv32 = 5
W with curly body, and motion serifs
capital-w = 'curly-serifed', cv32 = 6
W with curly body, and serifs
capital-w = 'straight-almost-flat-top-serifless', cv32 = 4
W with straight body shape that the middle is forced to be aligned the top; without serifs
capital-w = 'straight-almost-flat-top-motion-serifed', cv32 = 5
W with straight body shape that the middle is forced to be aligned the top, and motion serifs
capital-w = 'straight-almost-flat-top-serifed', cv32 = 6
W with straight body shape that the middle is forced to be aligned the top, and serifs
capital-w = 'straight-flat-top-serifless', cv32 = 7
W with straight body shape that the middle is forced to be aligned the top; without serifs
capital-w = 'straight-flat-top-motion-serifed', cv32 = 8
W with rounded body shape with vertical sides, and motion serifs
capital-w = 'rounded-vertical-sides-serifed', cv32 = 21
W with rounded body shape with vertical sides, and serifs
capital-w = 'curly-serifless', cv32 = 22
W with curly body; without serifs
capital-w = 'curly-motion-serifed', cv32 = 23
W with curly body, and motion serifs
capital-w = 'curly-serifed', cv32 = 24
W with curly body, and serifs
- Styles for `X`
8 variants @@ -1184,24 +1190,24 @@ Subsection `variants` is used to configure character variants in the font. Prope a with single-storey body, and curly tail (default for Italic) a = 'single-storey-tailed-serifed', cv36 = 15 a with single-storey body, and curly tail; with serifs at top and bottom - a = 'single-storey-earless-corner-serifless', cv36 = 16 - a with single-storey body, and earless (cornered top-right); without serif at terminal - a = 'single-storey-earless-corner-serifed', cv36 = 17 - a with single-storey body, earless (cornered top-right), and serif at terminal - a = 'single-storey-earless-corner-tailed', cv36 = 18 - a with single-storey body, earless (cornered top-right), and curly tail - a = 'single-storey-earless-rounded-serifless', cv36 = 19 - a with single-storey body, and earless (rounded top-right); without serif at terminal - a = 'single-storey-earless-rounded-serifed', cv36 = 20 - a with single-storey body, earless (rounded top-right), and serif at terminal - a = 'single-storey-earless-rounded-tailed', cv36 = 21 - a with single-storey body, earless (rounded top-right), and curly tail - a = 'single-storey-top-cut-serifless', cv36 = 22 + a = 'single-storey-top-cut-serifless', cv36 = 16 a with single-storey body, and a diagonal cut at top; without serif at terminal - a = 'single-storey-top-cut-serifed', cv36 = 23 + a = 'single-storey-top-cut-serifed', cv36 = 17 a with single-storey body, a diagonal cut at top, and serif at terminal - a = 'single-storey-top-cut-tailed', cv36 = 24 + a = 'single-storey-top-cut-tailed', cv36 = 18 a with single-storey body, a diagonal cut at top, and curly tail + a = 'single-storey-earless-corner-serifless', cv36 = 19 + a with single-storey body, and earless (cornered top-right); without serif at terminal + a = 'single-storey-earless-corner-serifed', cv36 = 20 + a with single-storey body, earless (cornered top-right), and serif at terminal + a = 'single-storey-earless-corner-tailed', cv36 = 21 + a with single-storey body, earless (cornered top-right), and curly tail + a = 'single-storey-earless-rounded-serifless', cv36 = 22 + a with single-storey body, and earless (rounded top-right); without serif at terminal + a = 'single-storey-earless-rounded-serifed', cv36 = 23 + a with single-storey body, earless (rounded top-right), and serif at terminal + a = 'single-storey-earless-rounded-tailed', cv36 = 24 + a with single-storey body, earless (rounded top-right), and curly tail
- Styles for `b`
9 variants @@ -1212,18 +1218,18 @@ Subsection `variants` is used to configure character variants in the font. Prope b with toothed shape, and motion serifs (default for Slab Italic) b = 'toothed-serifed', cv37 = 3 b with toothed shape, and serifs (default for Slab Upright) - b = 'toothless-corner-serifless', cv37 = 4 - b with toothless (cornered) shape; without serifs - b = 'toothless-corner-serifed', cv37 = 5 - b with toothless (cornered) shape, and serifs - b = 'toothless-rounded-serifless', cv37 = 6 - b with toothless (rounded) shape; without serifs - b = 'toothless-rounded-serifed', cv37 = 7 - b with toothless (rounded) shape, and serifs - b = 'bottom-cut-serifless', cv37 = 8 + b = 'bottom-cut-serifless', cv37 = 4 b with a diagonal cut at bottom; without serifs - b = 'bottom-cut-serifed', cv37 = 9 + b = 'bottom-cut-serifed', cv37 = 5 b with a diagonal cut at bottom, and serifs + b = 'toothless-corner-serifless', cv37 = 6 + b with toothless (cornered) shape; without serifs + b = 'toothless-corner-serifed', cv37 = 7 + b with toothless (cornered) shape, and serifs + b = 'toothless-rounded-serifless', cv37 = 8 + b with toothless (rounded) shape; without serifs + b = 'toothless-rounded-serifed', cv37 = 9 + b with toothless (rounded) shape, and serifs
- Styles for `c`
5 variants @@ -1326,22 +1332,22 @@ Subsection `variants` is used to configure character variants in the font. Prope g with single-storey shape (default for Sans Upright, Sans Italic, Slab Italic) g = 'single-storey-serifed', cv42 = 4 g with single-storey shape, and top-right serif (default for Slab Upright) - g = 'single-storey-earless-corner', cv42 = 5 - g with single-storey shape, and earless (cornered top-right) - g = 'single-storey-earless-rounded', cv42 = 6 - g with single-storey shape, and earless (rounded top-right) - g = 'single-storey-flat-hook-serifless', cv42 = 7 - g with single-storey shape, and flat bottom hook - g = 'single-storey-flat-hook-serifed', cv42 = 8 - g with single-storey shape, flat bottom hook, and top-right serif - g = 'single-storey-flat-hook-earless-corner', cv42 = 9 - g with single-storey shape, flat bottom hook, and earless (cornered top-right) - g = 'single-storey-flat-hook-earless-rounded', cv42 = 10 - g with single-storey shape, flat bottom hook, and earless (rounded top-right) - g = 'single-storey-top-cut', cv42 = 11 + g = 'single-storey-top-cut', cv42 = 5 g with single-storey shape, and a diagonal cut at top - g = 'single-storey-flat-hook-top-cut', cv42 = 12 + g = 'single-storey-earless-corner', cv42 = 6 + g with single-storey shape, and earless (cornered top-right) + g = 'single-storey-earless-rounded', cv42 = 7 + g with single-storey shape, and earless (rounded top-right) + g = 'single-storey-flat-hook-serifless', cv42 = 8 + g with single-storey shape, and flat bottom hook + g = 'single-storey-flat-hook-serifed', cv42 = 9 + g with single-storey shape, flat bottom hook, and top-right serif + g = 'single-storey-flat-hook-top-cut', cv42 = 10 g with single-storey shape, flat bottom hook, and a diagonal cut at top + g = 'single-storey-flat-hook-earless-corner', cv42 = 11 + g with single-storey shape, flat bottom hook, and earless (cornered top-right) + g = 'single-storey-flat-hook-earless-rounded', cv42 = 12 + g with single-storey shape, flat bottom hook, and earless (rounded top-right)
- Styles for `h`
7 variants @@ -1670,30 +1676,30 @@ Subsection `variants` is used to configure character variants in the font. Prope q with diagonally tailed terminal; without serifs q = 'diagonal-tailed-motion-serifed', cv51 = 8 q with diagonally tailed terminal, and motion serifs - q = 'earless-corner-straight-serifless', cv51 = 9 - q with earless (cornered) shape, and straight terminal; without serifs - q = 'earless-corner-straight-serifed', cv51 = 10 - q with earless (cornered) shape, straight terminal, and serifs - q = 'earless-corner-tailed-serifless', cv51 = 11 - q with earless (cornered) shape, and tailed terminal; without serifs - q = 'earless-corner-diagonal-tailed-serifless', cv51 = 12 - q with earless (cornered) shape, and diagonally tailed terminal; without serifs - q = 'earless-rounded-straight-serifless', cv51 = 13 - q with earless (rounded) shape, and straight terminal; without serifs - q = 'earless-rounded-straight-serifed', cv51 = 14 - q with earless (rounded) shape, straight terminal, and serifs - q = 'earless-rounded-tailed-serifless', cv51 = 15 - q with earless (rounded) shape, and tailed terminal; without serifs - q = 'earless-rounded-diagonal-tailed-serifless', cv51 = 16 - q with earless (rounded) shape, and diagonally tailed terminal; without serifs - q = 'top-cut-straight-serifless', cv51 = 17 + q = 'top-cut-straight-serifless', cv51 = 9 q with a diagonal cut at top, and straight terminal; without serifs - q = 'top-cut-straight-serifed', cv51 = 18 + q = 'top-cut-straight-serifed', cv51 = 10 q with a diagonal cut at top, straight terminal, and serifs - q = 'top-cut-tailed-serifless', cv51 = 19 + q = 'top-cut-tailed-serifless', cv51 = 11 q with a diagonal cut at top, and tailed terminal; without serifs - q = 'top-cut-diagonal-tailed-serifless', cv51 = 20 + q = 'top-cut-diagonal-tailed-serifless', cv51 = 12 q with a diagonal cut at top, and diagonally tailed terminal; without serifs + q = 'earless-corner-straight-serifless', cv51 = 13 + q with earless (cornered) shape, and straight terminal; without serifs + q = 'earless-corner-straight-serifed', cv51 = 14 + q with earless (cornered) shape, straight terminal, and serifs + q = 'earless-corner-tailed-serifless', cv51 = 15 + q with earless (cornered) shape, and tailed terminal; without serifs + q = 'earless-corner-diagonal-tailed-serifless', cv51 = 16 + q with earless (cornered) shape, and diagonally tailed terminal; without serifs + q = 'earless-rounded-straight-serifless', cv51 = 17 + q with earless (rounded) shape, and straight terminal; without serifs + q = 'earless-rounded-straight-serifed', cv51 = 18 + q with earless (rounded) shape, straight terminal, and serifs + q = 'earless-rounded-tailed-serifless', cv51 = 19 + q with earless (rounded) shape, and tailed terminal; without serifs + q = 'earless-rounded-diagonal-tailed-serifless', cv51 = 20 + q with earless (rounded) shape, and diagonally tailed terminal; without serifs
- Styles for `r`
20 variants @@ -1856,7 +1862,7 @@ Subsection `variants` is used to configure character variants in the font. Prope v with cursive body, and serifs
- Styles for `w` -
23 variants +
26 variants @@ -1864,46 +1870,52 @@ Subsection `variants` is used to configure character variants in the font. Prope - - - - - - - - - - - - - + - + - + - + + + + + + + - + - + - + - + - + - - - - - + + + + + + + - + - + + + + + + + + + + +
w = 'straight-serifless', cv57 = 1
w with standard, straight body; without serifs (default for Sans)
w with standard, straight body, and motion serifs (default for Slab Italic)
w = 'straight-serifed', cv57 = 3
w with standard, straight body, and serifs (default for Slab Upright)
w = 'curly-serifless', cv57 = 4
w with curly body; without serifs
w = 'curly-motion-serifed', cv57 = 5
w with curly body, and motion serifs
w = 'curly-serifed', cv57 = 6
w with curly body, and serifs
w = 'straight-vertical-sides-serifless', cv57 = 7
w with straight body shape with vertical sides; without serifs
w = 'straight-vertical-sides-motion-serifed', cv57 = 8
w with straight body shape with vertical sides, and motion serifs
w = 'straight-vertical-sides-serifed', cv57 = 9
w with straight body shape with vertical sides, and serifs
w = 'straight-flat-top-serifless', cv57 = 10
w = 'straight-almost-flat-top-serifless', cv57 = 4
w with straight body shape that the middle is forced to be aligned the top; without serifs
w = 'straight-flat-top-motion-serifed', cv57 = 11
w = 'straight-almost-flat-top-motion-serifed', cv57 = 5
w with straight body shape that the middle is forced to be aligned the top, and motion serifs
w = 'straight-flat-top-serifed', cv57 = 12
w = 'straight-almost-flat-top-serifed', cv57 = 6
w with straight body shape that the middle is forced to be aligned the top, and serifs
w = 'straight-double-v-serifless', cv57 = 13
w = 'straight-flat-top-serifless', cv57 = 7
w with straight body shape that the middle is forced to be aligned the top; without serifs
w = 'straight-flat-top-motion-serifed', cv57 = 8
w with straight body shape that the middle is forced to be aligned the top, and motion serifs
w = 'straight-flat-top-serifed', cv57 = 9
w with straight body shape that the middle is forced to be aligned the top, and serifs
w = 'straight-double-v-serifless', cv57 = 10
w with body shape like double V; without serifs
w = 'straight-double-v-motion-serifed', cv57 = 14
w = 'straight-double-v-motion-serifed', cv57 = 11
w with body shape like double V, and motion serifs
w = 'straight-double-v-serifed', cv57 = 15
w = 'straight-double-v-serifed', cv57 = 12
w with body shape like double V, and serifs
w = 'straight-asymmetric-serifless', cv57 = 16
w = 'straight-asymmetric-serifless', cv57 = 13
w with asymmetric shape; without serifs
w = 'straight-asymmetric-motion-serifed', cv57 = 17
w = 'straight-asymmetric-motion-serifed', cv57 = 14
w with asymmetric shape, and motion serifs
w = 'straight-asymmetric-serifed', cv57 = 18
w = 'straight-asymmetric-serifed', cv57 = 15
w with asymmetric shape, and serifs
w = 'cursive-serifless', cv57 = 19
w with cursive shape; without serifs
w = 'cursive-serifed', cv57 = 20
w with cursive shape, and serifs
w = 'rounded-vertical-sides-serifless', cv57 = 21
w = 'straight-vertical-sides-serifless', cv57 = 16
w with straight body shape with vertical sides; without serifs
w = 'straight-vertical-sides-motion-serifed', cv57 = 17
w with straight body shape with vertical sides, and motion serifs
w = 'straight-vertical-sides-serifed', cv57 = 18
w with straight body shape with vertical sides, and serifs
w = 'rounded-vertical-sides-serifless', cv57 = 19
w with rounded body shape with vertical sides; without serifs
w = 'rounded-vertical-sides-motion-serifed', cv57 = 22
w = 'rounded-vertical-sides-motion-serifed', cv57 = 20
w with rounded body shape with vertical sides, and motion serifs
w = 'rounded-vertical-sides-serifed', cv57 = 23
w = 'rounded-vertical-sides-serifed', cv57 = 21
w with rounded body shape with vertical sides, and serifs
w = 'curly-serifless', cv57 = 22
w with curly body; without serifs
w = 'curly-motion-serifed', cv57 = 23
w with curly body, and motion serifs
w = 'curly-serifed', cv57 = 24
w with curly body, and serifs
w = 'cursive-serifless', cv57 = 25
w with cursive shape; without serifs
w = 'cursive-serifed', cv57 = 26
w with cursive shape, and serifs
- Styles for `x`
14 variants @@ -2123,7 +2135,7 @@ Subsection `variants` is used to configure character variants in the font. Prope
40 variants - + @@ -2131,15 +2143,15 @@ Subsection `variants` is used to configure character variants in the font. Prope - + - + - + @@ -2147,15 +2159,15 @@ Subsection `variants` is used to configure character variants in the font. Prope - + - + - + @@ -2167,19 +2179,19 @@ Subsection `variants` is used to configure character variants in the font. Prope - + - + - + @@ -2191,13 +2203,13 @@ Subsection `variants` is used to configure character variants in the font. Prope - + - + @@ -2211,8 +2223,8 @@ Subsection `variants` is used to configure character variants in the font. Prope
eszet = 'traditional-serifless', cv63 = 1
Eszet (ß) with traditional, Fraktur-like shape
Eszet (ß) with traditional, Fraktur-like shape; without serifs
eszet = 'traditional-middle-serifed', cv63 = 2
Eszet (ß) with traditional, Fraktur-like shape, and serif at middle
eszet = 'traditional-bottom-serifed', cv63 = 3
eszet = 'traditional-dual-serifed', cv63 = 4
Eszet (ß) with traditional, Fraktur-like shape, and serif at middle and bottom
eszet = 'traditional-descending-serifless', cv63 = 5
Eszet (ß) with traditional, Fraktur-like shape, and terminal descends baseline
Eszet (ß) with traditional, Fraktur-like shape, and terminal descends baseline; without serifs
eszet = 'traditional-descending-middle-serifed', cv63 = 6
Eszet (ß) with traditional, Fraktur-like shape, terminal descends baseline, and serif at middle
eszet = 'traditional-tailed-serifless', cv63 = 7
Eszet (ß) with traditional, Fraktur-like shape, and terminal containing tail
Eszet (ß) with traditional, Fraktur-like shape, and terminal containing tail; without serifs
eszet = 'traditional-tailed-middle-serifed', cv63 = 8
Eszet (ß) with traditional, Fraktur-like shape, terminal containing tail, and serif at middle
eszet = 'traditional-flat-hook-serifless', cv63 = 9
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook)
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook); without serifs
eszet = 'traditional-flat-hook-middle-serifed', cv63 = 10
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook), and serif at middle
eszet = 'traditional-flat-hook-bottom-serifed', cv63 = 11
eszet = 'traditional-flat-hook-dual-serifed', cv63 = 12
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook), and serif at middle and bottom
eszet = 'traditional-flat-hook-descending-serifless', cv63 = 13
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook), and terminal descends baseline
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook), and terminal descends baseline; without serifs
eszet = 'traditional-flat-hook-descending-middle-serifed', cv63 = 14
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook), terminal descends baseline, and serif at middle
eszet = 'traditional-flat-hook-tailed-serifless', cv63 = 15
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook), and terminal containing tail
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook), and terminal containing tail; without serifs
eszet = 'traditional-flat-hook-tailed-middle-serifed', cv63 = 16
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook), terminal containing tail, and serif at middle
eszet = 'sulzbacher-serifless', cv63 = 17
Eszet (ß) with more modern, beta-like shape (default for Sans Upright)
Eszet (ß) with more modern, beta-like shape; without serifs (default for Sans Upright)
eszet = 'sulzbacher-middle-serifed', cv63 = 18
Eszet (ß) with more modern, beta-like shape, and serif at middle
eszet = 'sulzbacher-middle-serifed-xh', cv63 = 19
eszet = 'sulzbacher-dual-serifed-xh', cv63 = 22
Eszet (ß) with more modern, beta-like shape, and serif at middle (x-height) and bottom
eszet = 'sulzbacher-descending-serifless', cv63 = 23
Eszet (ß) with more modern, beta-like shape, and terminal descends baseline
Eszet (ß) with more modern, beta-like shape, and terminal descends baseline; without serifs
eszet = 'sulzbacher-descending-middle-serifed', cv63 = 24
Eszet (ß) with more modern, beta-like shape, terminal descends baseline, and serif at middle
eszet = 'sulzbacher-descending-middle-serifed-xh', cv63 = 25
Eszet (ß) with more modern, beta-like shape, terminal descends baseline, and serif at middle at x-height
eszet = 'sulzbacher-tailed-serifless', cv63 = 26
Eszet (ß) with more modern, beta-like shape, and terminal containing tail (default for Italic)
Eszet (ß) with more modern, beta-like shape, and terminal containing tail; without serifs (default for Italic)
eszet = 'sulzbacher-tailed-middle-serifed', cv63 = 27
Eszet (ß) with more modern, beta-like shape, terminal containing tail, and serif at middle
eszet = 'sulzbacher-tailed-middle-serifed-xh', cv63 = 28
Eszet (ß) with more modern, beta-like shape, terminal containing tail, and serif at middle at x-height
eszet = 'longs-s-lig-serifless', cv63 = 29
Eszet (ß) with ligature of long-S (ſ) and s
Eszet (ß) with ligature of long-S (ſ) and s; without serifs
eszet = 'longs-s-lig-middle-serifed', cv63 = 30
Eszet (ß) with ligature of long-S (ſ) and s, and serif at middle
eszet = 'longs-s-lig-middle-serifed-xh', cv63 = 31
eszet = 'longs-s-lig-dual-serifed-xh', cv63 = 34
Eszet (ß) with ligature of long-S (ſ) and s, and serif at middle (x-height) and bottom
eszet = 'longs-s-lig-descending-serifless', cv63 = 35
Eszet (ß) with ligature of long-S (ſ) and s, and terminal descends baseline
Eszet (ß) with ligature of long-S (ſ) and s, and terminal descends baseline; without serifs
eszet = 'longs-s-lig-descending-middle-serifed', cv63 = 36
Eszet (ß) with ligature of long-S (ſ) and s, terminal descends baseline, and serif at middle
eszet = 'longs-s-lig-descending-middle-serifed-xh', cv63 = 37
Eszet (ß) with ligature of long-S (ſ) and s, terminal descends baseline, and serif at middle at x-height
eszet = 'longs-s-lig-tailed-serifless', cv63 = 38
Eszet (ß) with ligature of long-S (ſ) and s, and terminal containing tail
Eszet (ß) with ligature of long-S (ſ) and s, and terminal containing tail; without serifs
eszet = 'longs-s-lig-tailed-middle-serifed', cv63 = 39
Eszet (ß) with ligature of long-S (ſ) and s, terminal containing tail, and serif at middle
eszet = 'longs-s-lig-tailed-middle-serifed-xh', cv63 = 40
lower-eth = 'curly-bar', cv64 = 2
Lowercase Eth (ð) with a curly bar (default)
- - Styles for `Þ` (Capital Thorn (`Þ`)) -
3 variants + - Styles for `Þ` (Capital Thorn) +
6 variants @@ -2220,6 +2232,12 @@ Subsection `variants` is used to configure character variants in the font. Prope + + + + + +
capital-thorn = 'serifless', cv65 = 1
Capital Thorn (Þ) without serifs (default for Sans)
Capital Thorn (Þ) with motion serifs
capital-thorn = 'serifed', cv65 = 3
Capital Thorn (Þ) with serifs (default for Slab)
capital-thorn = 'asymmetric-serifless', cv65 = 4
Capital Thorn (Þ) with asymmetric shape; without serifs
capital-thorn = 'asymmetric-motion-serifed', cv65 = 5
Capital Thorn (Þ) with asymmetric shape, and motion serifs
capital-thorn = 'asymmetric-serifed', cv65 = 6
Capital Thorn (Þ) with asymmetric shape, and serifs
- Styles for `þ` (Lowercase Thorn (`þ`))
3 variants @@ -2246,885 +2264,905 @@ Subsection `variants` is used to configure character variants in the font. Prope Greek lower Alpha (α) with straight right bar, and curly tail lower-alpha = 'barred-tailed-serifed', cv67 = 6 Greek lower Alpha (α) with straight right bar, and curly tail; with serifs at top and bottom - lower-alpha = 'barred-earless-corner', cv67 = 7 - Greek lower Alpha (α) with straight right bar, and earless (cornered top-right) - lower-alpha = 'barred-earless-corner-serifed', cv67 = 8 - Greek lower Alpha (α) with straight right bar, earless (cornered top-right), and serif at terminal - lower-alpha = 'barred-earless-corner-tailed', cv67 = 9 - Greek lower Alpha (α) with straight right bar, earless (cornered top-right), and curly tail - lower-alpha = 'barred-earless-rounded', cv67 = 10 - Greek lower Alpha (α) with straight right bar, and earless (rounded top-right) - lower-alpha = 'barred-earless-rounded-serifed', cv67 = 11 - Greek lower Alpha (α) with straight right bar, earless (rounded top-right), and serif at terminal - lower-alpha = 'barred-earless-rounded-tailed', cv67 = 12 - Greek lower Alpha (α) with straight right bar, earless (rounded top-right), and curly tail - lower-alpha = 'barred-top-cut', cv67 = 13 + lower-alpha = 'barred-top-cut', cv67 = 7 Greek lower Alpha (α) with straight right bar, and a diagonal cut at top - lower-alpha = 'barred-top-cut-serifed', cv67 = 14 + lower-alpha = 'barred-top-cut-serifed', cv67 = 8 Greek lower Alpha (α) with straight right bar, a diagonal cut at top, and serif at terminal - lower-alpha = 'barred-top-cut-tailed', cv67 = 15 + lower-alpha = 'barred-top-cut-tailed', cv67 = 9 Greek lower Alpha (α) with straight right bar, a diagonal cut at top, and curly tail + lower-alpha = 'barred-earless-corner', cv67 = 10 + Greek lower Alpha (α) with straight right bar, and earless (cornered top-right) + lower-alpha = 'barred-earless-corner-serifed', cv67 = 11 + Greek lower Alpha (α) with straight right bar, earless (cornered top-right), and serif at terminal + lower-alpha = 'barred-earless-corner-tailed', cv67 = 12 + Greek lower Alpha (α) with straight right bar, earless (cornered top-right), and curly tail + lower-alpha = 'barred-earless-rounded', cv67 = 13 + Greek lower Alpha (α) with straight right bar, and earless (rounded top-right) + lower-alpha = 'barred-earless-rounded-serifed', cv67 = 14 + Greek lower Alpha (α) with straight right bar, earless (rounded top-right), and serif at terminal + lower-alpha = 'barred-earless-rounded-tailed', cv67 = 15 + Greek lower Alpha (α) with straight right bar, earless (rounded top-right), and curly tail
- Styles for `β` (Greek lower Beta)
2 variants - + - +
lower-beta = 'standard', VXAC = 1
lower-beta = 'standard', cv68 = 1
Greek lower Beta (β) with standard shape (default)
lower-beta = 'cursive', VXAC = 2
lower-beta = 'cursive', cv68 = 2
Greek lower Beta (β) with cursive shape
- Styles for `Γ` (Greek capital Gamma)
4 variants - + - + - + - +
capital-gamma = 'serifless', cv68 = 1
capital-gamma = 'serifless', cv69 = 1
Greek capital Gamma (Γ) without serifs (default for Sans)
capital-gamma = 'top-right-serifed', cv68 = 2
capital-gamma = 'top-right-serifed', cv69 = 2
Greek capital Gamma (Γ) with serifs at top right
capital-gamma = 'bottom-serifed', cv68 = 3
capital-gamma = 'bottom-serifed', cv69 = 3
Greek capital Gamma (Γ) with bottom serif
capital-gamma = 'serifed', cv68 = 4
capital-gamma = 'serifed', cv69 = 4
Greek capital Gamma (Γ) with motion serifs at top and bottom (default for Slab)
- Styles for `γ` (Greek lower Gamma)
3 variants - + - + - +
lower-gamma = 'straight', VXAD = 1
lower-gamma = 'straight', cv70 = 1
Greek lower Gamma (γ) with straight shape
lower-gamma = 'curly', VXAD = 2
lower-gamma = 'curly', cv70 = 2
Greek lower Gamma (γ) with curly shape
lower-gamma = 'casual', VXAD = 3
lower-gamma = 'casual', cv70 = 3
Greek lower Gamma (γ) with casual shape (default)
- Styles for `Δ` (Greek capital Delta (`Δ`))
2 variants - + - +
capital-delta = 'straight', cv69 = 1
capital-delta = 'straight', cv71 = 1
Standard, straight Greek capital Delta (Δ) (default)
capital-delta = 'curly', cv69 = 2
capital-delta = 'curly', cv71 = 2
Slightly curly Greek capital Delta (Δ), like Iosevka 2.x
- Styles for `δ` (Greek lower Delta)
2 variants - + - +
lower-delta = 'rounded', cv70 = 1
lower-delta = 'rounded', cv72 = 1
Greek lower Delta (δ) with rounded top (default)
lower-delta = 'flat-top', cv70 = 2
lower-delta = 'flat-top', cv72 = 2
Greek lower Delta (δ) with flat top
+ - Styles for `θ` (Greek lower Theta) +
3 variants + + + + + + + +
lower-theta = 'capsule', cv73 = 1
Greek lower Theta (θ) with a capsule (O-like) body shape
lower-theta = 'oval', cv73 = 2
Greek lower Theta (θ) with a standard (oval) body shape (default)
lower-theta = 'diamond', cv73 = 3
Greek lower Theta (θ) with a diamond body shape
- Styles for `ι` (Greek lower Iota)
12 variants - + - + - + - + - + - + - + - + - + - + - + - +
lower-iota = 'tailless', cv71 = 1
lower-iota = 'tailless', cv74 = 1
Greek lower Iota (ι) like a straight line
lower-iota = 'tailless-serifed', cv71 = 2
lower-iota = 'tailless-serifed', cv74 = 2
Greek lower Iota (ι) like a straight line with top serif
lower-iota = 'hooky-bottom', cv71 = 3
lower-iota = 'hooky-bottom', cv74 = 3
Greek lower Iota (ι) with a sharp-turning horizontal tail
lower-iota = 'zshaped', cv71 = 4
lower-iota = 'zshaped', cv74 = 4
Z-shaped Greek lower Iota (ι)
lower-iota = 'tailed', cv71 = 5
lower-iota = 'tailed', cv74 = 5
Greek lower Iota (ι) with curly tail
lower-iota = 'tailed-serifed', cv71 = 6
lower-iota = 'tailed-serifed', cv74 = 6
Greek lower Iota (ι) with top serif and curly tail (default for Italic)
lower-iota = 'flat-tailed', cv71 = 7
lower-iota = 'flat-tailed', cv74 = 7
Greek lower Iota (ι) with a curly-then-flat tail
lower-iota = 'serifed-flat-tailed', cv71 = 8
lower-iota = 'serifed-flat-tailed', cv74 = 8
Greek lower Iota (ι) with top serif and a curly-then-flat tail
lower-iota = 'diagonal-tailed', cv71 = 9
lower-iota = 'diagonal-tailed', cv74 = 9
Greek lower Iota (ι) with a diagonal tail
lower-iota = 'serifed-diagonal-tailed', cv71 = 10
lower-iota = 'serifed-diagonal-tailed', cv74 = 10
Greek lower Iota (ι) with top serif and a diagonal tail
lower-iota = 'semi-tailed', cv71 = 11
lower-iota = 'semi-tailed', cv74 = 11
Greek lower Iota (ι) with a slightly curly tail
lower-iota = 'serifed-semi-tailed', cv71 = 12
lower-iota = 'serifed-semi-tailed', cv74 = 12
Greek lower Iota (ι) with top serif and a slightly curly tail (default for Upright)
- Styles for `Λ` (Greek capital Lambda (`Λ`))
8 variants - + - + - + - + - + - + - + - +
capital-lambda = 'straight-serifless', cv72 = 1
capital-lambda = 'straight-serifless', cv75 = 1
Greek capital Lambda (Λ) with straight shape; without serifs (default for Sans)
capital-lambda = 'straight-top-serifed', cv72 = 2
capital-lambda = 'straight-top-serifed', cv75 = 2
Greek capital Lambda (Λ) with straight shape, and serifs at top
capital-lambda = 'straight-base-serifed', cv72 = 3
capital-lambda = 'straight-base-serifed', cv75 = 3
Greek capital Lambda (Λ) with straight shape, and serifs at base (default for Slab)
capital-lambda = 'straight-tri-serifed', cv72 = 4
capital-lambda = 'straight-tri-serifed', cv75 = 4
Greek capital Lambda (Λ) with straight shape, and serifs at both top and base
capital-lambda = 'curly-serifless', cv72 = 5
capital-lambda = 'curly-serifless', cv75 = 5
Greek capital Lambda (Λ) with curly shape; without serifs
capital-lambda = 'curly-top-serifed', cv72 = 6
capital-lambda = 'curly-top-serifed', cv75 = 6
Greek capital Lambda (Λ) with curly shape, and serifs at top
capital-lambda = 'curly-base-serifed', cv72 = 7
capital-lambda = 'curly-base-serifed', cv75 = 7
Greek capital Lambda (Λ) with curly shape, and serifs at base
capital-lambda = 'curly-tri-serifed', cv72 = 8
capital-lambda = 'curly-tri-serifed', cv75 = 8
Greek capital Lambda (Λ) with curly shape, and serifs at both top and base
- Styles for `λ` (Greek lower Lambda)
6 variants - + - + - + - + - + - +
lower-lambda = 'straight', cv73 = 1
lower-lambda = 'straight', cv76 = 1
More-straight Greek lower Lambda (λ) (default for Sans Upright, Sans Italic, Slab Italic)
lower-lambda = 'straight-turn', cv73 = 2
lower-lambda = 'straight-turn', cv76 = 2
Greek lower Lambda (λ) with straight upper and a tail turns leftward (default for Slab Upright)
lower-lambda = 'tailed-turn', cv73 = 3
lower-lambda = 'tailed-turn', cv76 = 3
More curly Greek lower Lambda (λ), with a tail turns leftward at top and a tail turns right at bottom-right
lower-lambda = 'curly', cv73 = 4
lower-lambda = 'curly', cv76 = 4
More curly Greek lower Lambda (λ), like Iosevka 2.x
lower-lambda = 'curly-turn', cv73 = 5
lower-lambda = 'curly-turn', cv76 = 5
More curly Greek lower Lambda (λ), like Iosevka 2.x, with a tail turns leftward
lower-lambda = 'curly-tailed-turn', cv73 = 6
lower-lambda = 'curly-tailed-turn', cv76 = 6
More curly Greek lower Lambda (λ), with a tail turns leftward at top, a tail turns right at bottom-right, and curly bottom-left leg
- Styles for `μ` (Greek lower Mu)
13 variants - + - + - + - + - + - + - + - + - + - + - + - + - +
lower-mu = 'toothed-serifless', cv74 = 1
lower-mu = 'toothed-serifless', cv77 = 1
Greek lower Mu (μ) with toothed shape; without serifs
lower-mu = 'toothed-bottom-right-serifed', cv74 = 2
lower-mu = 'toothed-bottom-right-serifed', cv77 = 2
Greek lower Mu (μ) with toothed shape, and serif at bottom-right
lower-mu = 'toothed-motion-serifed', cv74 = 3
lower-mu = 'toothed-motion-serifed', cv77 = 3
Greek lower Mu (μ) with toothed shape, and motion serifs at top-left and bottom-right
lower-mu = 'toothed-serifed', cv74 = 4
lower-mu = 'toothed-serifed', cv77 = 4
Greek lower Mu (μ) with toothed shape, and serifs
lower-mu = 'tailed-serifless', cv74 = 5
lower-mu = 'tailed-serifless', cv77 = 5
Greek lower Mu (μ) with tailed shape; without serifs (default for Sans)
lower-mu = 'tailed-motion-serifed', cv74 = 6
lower-mu = 'tailed-motion-serifed', cv77 = 6
Greek lower Mu (μ) with tailed shape, and motion serifs at top-left and bottom-right (default for Slab Italic)
lower-mu = 'tailed-serifed', cv74 = 7
lower-mu = 'tailed-serifed', cv77 = 7
Greek lower Mu (μ) with tailed shape, and serifs (default for Slab Upright)
lower-mu = 'toothless-corner-serifless', cv74 = 8
lower-mu = 'toothless-corner-serifless', cv77 = 8
Greek lower Mu (μ) with toothless (corner bottom-right) shape; without serifs
lower-mu = 'toothless-corner-motion-serifed', cv74 = 9
lower-mu = 'toothless-corner-motion-serifed', cv77 = 9
Greek lower Mu (μ) with toothless (corner bottom-right) shape, and motion serifs at top-left and bottom-right
lower-mu = 'toothless-corner-serifed', cv74 = 10
lower-mu = 'toothless-corner-serifed', cv77 = 10
Greek lower Mu (μ) with toothless (corner bottom-right) shape, and serifs
lower-mu = 'toothless-rounded-serifless', cv74 = 11
lower-mu = 'toothless-rounded-serifless', cv77 = 11
Greek lower Mu (μ) with toothless (rounded) shape; without serifs
lower-mu = 'toothless-rounded-motion-serifed', cv74 = 12
lower-mu = 'toothless-rounded-motion-serifed', cv77 = 12
Greek lower Mu (μ) with toothless (rounded) shape, and motion serifs at top-left and bottom-right
lower-mu = 'toothless-rounded-serifed', cv74 = 13
lower-mu = 'toothless-rounded-serifed', cv77 = 13
Greek lower Mu (μ) with toothless (rounded) shape, and serifs
- Styles for `ν` (Greek lower Nu)
3 variants - + - + - +
lower-nu = 'straight', VXAE = 1
lower-nu = 'straight', cv78 = 1
Greek lower Nu (ν) with straight shape
lower-nu = 'curly', VXAE = 2
lower-nu = 'curly', cv78 = 2
Greek lower Nu (ν) with curly shape
lower-nu = 'casual', VXAE = 3
lower-nu = 'casual', cv78 = 3
Greek lower Nu (ν) with casual shape (default)
- Styles for `ξ` (Greek lower Xi)
2 variants - + - +
lower-xi = 'rounded', cv75 = 1
lower-xi = 'rounded', cv79 = 1
Greek lower Xi (ξ) with rounded top
lower-xi = 'flat-top', cv75 = 2
lower-xi = 'flat-top', cv79 = 2
Greek lower Xi (ξ) with flat top (default)
- Styles for `π` (Greek lower Pi)
3 variants - + - + - +
lower-pi = 'tailless', cv76 = 1
lower-pi = 'tailless', cv80 = 1
Greek lower Pi (π) with a tailless shape
lower-pi = 'tailed', cv76 = 2
lower-pi = 'tailed', cv80 = 2
Greek lower Pi (π) with a tailed shape (default)
lower-pi = 'small-capital', cv76 = 3
lower-pi = 'small-capital', cv80 = 3
Greek lower Pi (π) with a small-capital shape
- Styles for `τ` (Greek lower Tau)
6 variants - + - + - + - + - + - +
lower-tau = 'tailless', cv77 = 1
lower-tau = 'tailless', cv81 = 1
Greek lower Tau (τ) with a tailless shape
lower-tau = 'short-tailed', cv77 = 2
lower-tau = 'short-tailed', cv81 = 2
Greek lower Tau (τ) with a very short tail
lower-tau = 'tailed', cv77 = 3
lower-tau = 'tailed', cv81 = 3
Greek lower Tau (τ) with curly tail (default for Italic)
lower-tau = 'flat-tailed', cv77 = 4
lower-tau = 'flat-tailed', cv81 = 4
Greek lower Tau (τ) with a flat tail
lower-tau = 'diagonal-tailed', cv77 = 5
lower-tau = 'diagonal-tailed', cv81 = 5
Greek lower Tau (τ) with a diagonal tail
lower-tau = 'semi-tailed', cv77 = 6
lower-tau = 'semi-tailed', cv81 = 6
Greek lower Tau (τ) with a slightly curly tail (default for Upright)
- Styles for `υ` (Greek lower Upsilon)
4 variants - + - + - + - +
lower-upsilon = 'straight-serifless', VXAF = 1
lower-upsilon = 'straight-serifless', cv82 = 1
Greek lower Upsilon (υ) with straight shape; without serifs
lower-upsilon = 'straight-serifed', VXAF = 2
lower-upsilon = 'straight-serifed', cv82 = 2
Greek lower Upsilon (υ) with straight shape, and serifs
lower-upsilon = 'casual-serifless', VXAF = 3
lower-upsilon = 'casual-serifless', cv82 = 3
Greek lower Upsilon (υ) with casual shape; without serifs (default for Sans)
lower-upsilon = 'casual-serifed', VXAF = 4
lower-upsilon = 'casual-serifed', cv82 = 4
Greek lower Upsilon (υ) with casual shape, and serifs (default for Slab)
- Styles for `φ` (Greek lower Phi)
3 variants - + - + - +
lower-phi = 'straight', VXAG = 1
lower-phi = 'straight', cv83 = 1
Greek lower Phi (φ) with straight shape
lower-phi = 'cursive', VXAG = 2
lower-phi = 'cursive', cv83 = 2
Greek lower Phi (φ) with cursive shape (default)
lower-phi = 'neo-hellenic', VXAG = 3
lower-phi = 'neo-hellenic', cv83 = 3
Greek lower Phi (φ) with neo-hellenic shape
- Styles for `χ` (Greek lower Chi)
13 variants - + - + - + - + - + - + - + - + - + - + - + - + - +
lower-chi = 'straight-serifless', cv78 = 1
lower-chi = 'straight-serifless', cv84 = 1
Greek lower Chi (χ) with straight shape; without serifs (default for Sans)
lower-chi = 'straight-unilateral-motion-serifed', cv78 = 2
lower-chi = 'straight-unilateral-motion-serifed', cv84 = 2
Greek lower Chi (χ) with straight shape, and motion serifs at top-left
lower-chi = 'straight-bilateral-motion-serifed', cv78 = 3
lower-chi = 'straight-bilateral-motion-serifed', cv84 = 3
Greek lower Chi (χ) with straight shape, and motion serifs at top-left and bottom-right (default for Slab)
lower-chi = 'straight-serifed', cv78 = 4
lower-chi = 'straight-serifed', cv84 = 4
Greek lower Chi (χ) with straight shape, and serifs
lower-chi = 'curly-serifless', cv78 = 5
lower-chi = 'curly-serifless', cv84 = 5
Greek lower Chi (χ) with curly shape; without serifs
lower-chi = 'curly-unilateral-motion-serifed', cv78 = 6
lower-chi = 'curly-unilateral-motion-serifed', cv84 = 6
Greek lower Chi (χ) with curly shape, and motion serifs at top-left
lower-chi = 'curly-bilateral-motion-serifed', cv78 = 7
lower-chi = 'curly-bilateral-motion-serifed', cv84 = 7
Greek lower Chi (χ) with curly shape, and motion serifs at top-left and bottom-right
lower-chi = 'curly-serifed', cv78 = 8
lower-chi = 'curly-serifed', cv84 = 8
Greek lower Chi (χ) with curly shape, and serifs
lower-chi = 'semi-chancery-straight-serifless', cv78 = 9
lower-chi = 'semi-chancery-straight-serifless', cv84 = 9
Greek lower Chi (χ) with Semi-chancery shape with straight counter-leg; without serifs
lower-chi = 'semi-chancery-straight-serifed', cv78 = 10
lower-chi = 'semi-chancery-straight-serifed', cv84 = 10
Greek lower Chi (χ) with Semi-chancery shape with straight counter-leg, and serifs
lower-chi = 'semi-chancery-curly-serifless', cv78 = 11
lower-chi = 'semi-chancery-curly-serifless', cv84 = 11
Greek lower Chi (χ) with Semi-chancery shape with curly counter-leg; without serifs
lower-chi = 'semi-chancery-curly-serifed', cv78 = 12
lower-chi = 'semi-chancery-curly-serifed', cv84 = 12
Greek lower Chi (χ) with Semi-chancery shape with curly counter-leg, and serifs
lower-chi = 'chancery', cv78 = 13
lower-chi = 'chancery', cv84 = 13
Greek lower Chi (χ) with Chancery shape
- Styles for `ψ` (Greek lower Psi)
4 variants - + - + - + - +
lower-psi = 'serifless', VXAH = 1
lower-psi = 'serifless', cv85 = 1
Greek lower Psi (ψ) without serifs (default for Sans)
lower-psi = 'serifed', VXAH = 2
lower-psi = 'serifed', cv85 = 2
Greek lower Psi (ψ) with serifs (default for Slab)
lower-psi = 'flat-top-serifless', VXAH = 3
lower-psi = 'flat-top-serifless', cv85 = 3
Greek lower Psi (ψ) with flat top; without serifs
lower-psi = 'flat-top-serifed', VXAH = 4
lower-psi = 'flat-top-serifed', cv85 = 4
Greek lower Psi (ψ) with flat top, and serifs
+ - Styles for `∂` (Partial derivative symbol) +
3 variants + + + + + + + +
partial-derivative = 'straight-bar', cv86 = 1
Partial derivative symbol () with a straight upper bar
partial-derivative = 'curly-bar', cv86 = 2
Partial derivative symbol () with a curly upper bar (default)
partial-derivative = 'closed-contour', cv86 = 3
Partial derivative symbol () with a full hook
- Styles for `а` (Cyrillic Lower A)
24 variants - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - + - + - + + + + + + + + + + + + +
cyrl-a = 'double-storey-serifless', cv79 = 1
cyrl-a = 'double-storey-serifless', cv87 = 1
Cyrillic Lower A (а) with double-storey body, and serifless hook; without serif at terminal (default for Sans Upright)
cyrl-a = 'double-storey-serifed', cv79 = 2
cyrl-a = 'double-storey-serifed', cv87 = 2
Cyrillic Lower A (а) with double-storey body, serifless hook, and serif at terminal (default for Slab Upright)
cyrl-a = 'double-storey-tailed', cv79 = 3
cyrl-a = 'double-storey-tailed', cv87 = 3
Cyrillic Lower A (а) with double-storey body, serifless hook, and curly tail
cyrl-a = 'double-storey-toothless-corner', cv79 = 4
cyrl-a = 'double-storey-toothless-corner', cv87 = 4
Cyrillic Lower A (а) with double-storey body, serifless hook, and toothless (cornered bottom-right)
cyrl-a = 'double-storey-toothless-rounded', cv79 = 5
cyrl-a = 'double-storey-toothless-rounded', cv87 = 5
Cyrillic Lower A (а) with double-storey body, serifless hook, and toothless (rounded bottom-right)
cyrl-a = 'double-storey-hook-inward-serifed-serifless', cv79 = 6
cyrl-a = 'double-storey-hook-inward-serifed-serifless', cv87 = 6
Cyrillic Lower A (а) with double-storey body, and serifed hook; without serif at terminal
cyrl-a = 'double-storey-hook-inward-serifed-serifed', cv79 = 7
cyrl-a = 'double-storey-hook-inward-serifed-serifed', cv87 = 7
Cyrillic Lower A (а) with double-storey body, serifed hook, and serif at terminal
cyrl-a = 'double-storey-hook-inward-serifed-tailed', cv79 = 8
cyrl-a = 'double-storey-hook-inward-serifed-tailed', cv87 = 8
Cyrillic Lower A (а) with double-storey body, serifed hook, and curly tail
cyrl-a = 'double-storey-hook-inward-serifed-toothless-corner', cv79 = 9
cyrl-a = 'double-storey-hook-inward-serifed-toothless-corner', cv87 = 9
Cyrillic Lower A (а) with double-storey body, serifed hook, and toothless (cornered bottom-right)
cyrl-a = 'double-storey-hook-inward-serifed-toothless-rounded', cv79 = 10
cyrl-a = 'double-storey-hook-inward-serifed-toothless-rounded', cv87 = 10
Cyrillic Lower A (а) with double-storey body, serifed hook, and toothless (rounded bottom-right)
cyrl-a = 'single-storey-serifless', cv79 = 11
cyrl-a = 'single-storey-serifless', cv87 = 11
Cyrillic Lower A (а) with single-storey body; without serif at terminal
cyrl-a = 'single-storey-serifed', cv79 = 12
cyrl-a = 'single-storey-serifed', cv87 = 12
Cyrillic Lower A (а) with single-storey body, and serif at terminal
cyrl-a = 'single-storey-double-serifed', cv79 = 13
cyrl-a = 'single-storey-double-serifed', cv87 = 13
Cyrillic Lower A (а) with single-storey body, and serifs at top and bottom
cyrl-a = 'single-storey-tailed', cv79 = 14
cyrl-a = 'single-storey-tailed', cv87 = 14
Cyrillic Lower A (а) with single-storey body, and curly tail (default for Italic)
cyrl-a = 'single-storey-tailed-serifed', cv79 = 15
cyrl-a = 'single-storey-tailed-serifed', cv87 = 15
Cyrillic Lower A (а) with single-storey body, and curly tail; with serifs at top and bottom
cyrl-a = 'single-storey-earless-corner-serifless', cv79 = 16
Cyrillic Lower A (а) with single-storey body, and earless (cornered top-right); without serif at terminal
cyrl-a = 'single-storey-earless-corner-serifed', cv79 = 17
Cyrillic Lower A (а) with single-storey body, earless (cornered top-right), and serif at terminal
cyrl-a = 'single-storey-earless-corner-tailed', cv79 = 18
Cyrillic Lower A (а) with single-storey body, earless (cornered top-right), and curly tail
cyrl-a = 'single-storey-earless-rounded-serifless', cv79 = 19
Cyrillic Lower A (а) with single-storey body, and earless (rounded top-right); without serif at terminal
cyrl-a = 'single-storey-earless-rounded-serifed', cv79 = 20
Cyrillic Lower A (а) with single-storey body, earless (rounded top-right), and serif at terminal
cyrl-a = 'single-storey-earless-rounded-tailed', cv79 = 21
Cyrillic Lower A (а) with single-storey body, earless (rounded top-right), and curly tail
cyrl-a = 'single-storey-top-cut-serifless', cv79 = 22
cyrl-a = 'single-storey-top-cut-serifless', cv87 = 16
Cyrillic Lower A (а) with single-storey body, and a diagonal cut at top; without serif at terminal
cyrl-a = 'single-storey-top-cut-serifed', cv79 = 23
cyrl-a = 'single-storey-top-cut-serifed', cv87 = 17
Cyrillic Lower A (а) with single-storey body, a diagonal cut at top, and serif at terminal
cyrl-a = 'single-storey-top-cut-tailed', cv79 = 24
cyrl-a = 'single-storey-top-cut-tailed', cv87 = 18
Cyrillic Lower A (а) with single-storey body, a diagonal cut at top, and curly tail
cyrl-a = 'single-storey-earless-corner-serifless', cv87 = 19
Cyrillic Lower A (а) with single-storey body, and earless (cornered top-right); without serif at terminal
cyrl-a = 'single-storey-earless-corner-serifed', cv87 = 20
Cyrillic Lower A (а) with single-storey body, earless (cornered top-right), and serif at terminal
cyrl-a = 'single-storey-earless-corner-tailed', cv87 = 21
Cyrillic Lower A (а) with single-storey body, earless (cornered top-right), and curly tail
cyrl-a = 'single-storey-earless-rounded-serifless', cv87 = 22
Cyrillic Lower A (а) with single-storey body, and earless (rounded top-right); without serif at terminal
cyrl-a = 'single-storey-earless-rounded-serifed', cv87 = 23
Cyrillic Lower A (а) with single-storey body, earless (rounded top-right), and serif at terminal
cyrl-a = 'single-storey-earless-rounded-tailed', cv87 = 24
Cyrillic Lower A (а) with single-storey body, earless (rounded top-right), and curly tail
- Styles for `в` (Cyrillic Lower Ve)
8 variants - + - + - + - + - + - + - + - +
cyrl-ve = 'standard-serifless', cv80 = 1
cyrl-ve = 'standard-serifless', cv88 = 1
Cyrillic Lower Ve (в) with standard body; without serifs (default for Sans Upright)
cyrl-ve = 'standard-unilateral-serifed', cv80 = 2
cyrl-ve = 'standard-unilateral-serifed', cv88 = 2
Cyrillic Lower Ve (в) with standard body, and serifs at top
cyrl-ve = 'standard-bilateral-serifed', cv80 = 3
cyrl-ve = 'standard-bilateral-serifed', cv88 = 3
Cyrillic Lower Ve (в) with standard body, and serifs at both top and bottom (default for Slab Upright)
cyrl-ve = 'standard-interrupted-serifless', cv80 = 4
cyrl-ve = 'standard-interrupted-serifless', cv88 = 4
Cyrillic Lower Ve (в) with standard body, and interrupted middle bar; without serifs
cyrl-ve = 'standard-interrupted-unilateral-serifed', cv80 = 5
cyrl-ve = 'standard-interrupted-unilateral-serifed', cv88 = 5
Cyrillic Lower Ve (в) with standard body, interrupted middle bar, and serifs at top
cyrl-ve = 'standard-interrupted-bilateral-serifed', cv80 = 6
cyrl-ve = 'standard-interrupted-bilateral-serifed', cv88 = 6
Cyrillic Lower Ve (в) with standard body, interrupted middle bar, and serifs at both top and bottom
cyrl-ve = 'cursive', cv80 = 7
cyrl-ve = 'cursive', cv88 = 7
Cyrillic Lower Ve (в) with cursive body (default for Italic)
cyrl-ve = 'cursive-tall', cv80 = 8
cyrl-ve = 'cursive-tall', cv88 = 8
Cyrillic Lower Ve (в) with cursive body, and tall height
- Styles for `Ж` (Cyrillic Capital Zhe)
5 variants - + - + - + - + - +
cyrl-capital-zhe = 'straight', cv81 = 1
cyrl-capital-zhe = 'straight', cv89 = 1
Cyrillic Capital Zhe (Ж) with straight legs
cyrl-capital-zhe = 'curly', cv81 = 2
cyrl-capital-zhe = 'curly', cv89 = 2
Cyrillic Capital Zhe (Ж) with curly legs
cyrl-capital-zhe = 'symmetric-touching', cv81 = 3
cyrl-capital-zhe = 'symmetric-touching', cv89 = 3
Cyrillic Capital Zhe (Ж) with symmetric legs touching the vertical bar
cyrl-capital-zhe = 'symmetric-connected', cv81 = 4
cyrl-capital-zhe = 'symmetric-connected', cv89 = 4
Cyrillic Capital Zhe (Ж) with symmetric legs connected to the vertical bar (default)
cyrl-capital-zhe = 'cursive', cv81 = 5
cyrl-capital-zhe = 'cursive', cv89 = 5
Cyrillic Capital Zhe (Ж) with cursive legs
- Styles for `ж` (Cyrillic Lower Zhe)
5 variants - + - + - + - + - +
cyrl-zhe = 'straight', cv82 = 1
cyrl-zhe = 'straight', cv90 = 1
Cyrillic Lower Zhe (ж) with straight legs
cyrl-zhe = 'curly', cv82 = 2
cyrl-zhe = 'curly', cv90 = 2
Cyrillic Lower Zhe (ж) with curly legs
cyrl-zhe = 'symmetric-touching', cv82 = 3
cyrl-zhe = 'symmetric-touching', cv90 = 3
Cyrillic Lower Zhe (ж) with symmetric legs touching the vertical bar
cyrl-zhe = 'symmetric-connected', cv82 = 4
cyrl-zhe = 'symmetric-connected', cv90 = 4
Cyrillic Lower Zhe (ж) with symmetric legs connected to the vertical bar (default)
cyrl-zhe = 'cursive', cv82 = 5
cyrl-zhe = 'cursive', cv90 = 5
Cyrillic Lower Zhe (ж) with cursive legs
- Styles for `З` (Cyrillic Capital Ze)
7 variants - + - + - + - + - + - + - +
cyrl-capital-ze = 'serifless', cv83 = 1
cyrl-capital-ze = 'serifless', cv91 = 1
Serifless Cyrillic Capital Ze (З) (default for Sans)
cyrl-capital-ze = 'unilateral-serifed', cv83 = 2
cyrl-capital-ze = 'unilateral-serifed', cv91 = 2
Cyrillic Capital Ze (З) with serif at top (default for Slab)
cyrl-capital-ze = 'unilateral-bottom-serifed', cv83 = 3
cyrl-capital-ze = 'unilateral-bottom-serifed', cv91 = 3
Cyrillic Capital Ze (З) with serif at bottom
cyrl-capital-ze = 'bilateral-serifed', cv83 = 4
cyrl-capital-ze = 'bilateral-serifed', cv91 = 4
Cyrillic Capital Ze (З) with serif at both top and bottom
cyrl-capital-ze = 'unilateral-inward-serifed', cv83 = 5
cyrl-capital-ze = 'unilateral-inward-serifed', cv91 = 5
Cyrillic Capital Ze (З) with inward serif at top
cyrl-capital-ze = 'unilateral-bottom-inward-serifed', cv83 = 6
cyrl-capital-ze = 'unilateral-bottom-inward-serifed', cv91 = 6
Cyrillic Capital Ze (З) with inward serif at bottom
cyrl-capital-ze = 'bilateral-inward-serifed', cv83 = 7
cyrl-capital-ze = 'bilateral-inward-serifed', cv91 = 7
Cyrillic Capital Ze (З) with inward serif at both top and bottom
- Styles for `з` (Cyrillic Lower Ze)
7 variants - + - + - + - + - + - + - +
cyrl-ze = 'serifless', cv84 = 1
cyrl-ze = 'serifless', cv92 = 1
Serifless Cyrillic Lower Ze (з) (default for Sans)
cyrl-ze = 'unilateral-serifed', cv84 = 2
cyrl-ze = 'unilateral-serifed', cv92 = 2
Cyrillic Lower Ze (з) with serif at top (default for Slab Upright)
cyrl-ze = 'unilateral-bottom-serifed', cv84 = 3
cyrl-ze = 'unilateral-bottom-serifed', cv92 = 3
Cyrillic Lower Ze (з) with serif at bottom
cyrl-ze = 'bilateral-serifed', cv84 = 4
cyrl-ze = 'bilateral-serifed', cv92 = 4
Cyrillic Lower Ze (з) with serif at both top and bottom
cyrl-ze = 'unilateral-inward-serifed', cv84 = 5
cyrl-ze = 'unilateral-inward-serifed', cv92 = 5
Cyrillic Lower Ze (з) with inward serif at top
cyrl-ze = 'unilateral-bottom-inward-serifed', cv84 = 6
cyrl-ze = 'unilateral-bottom-inward-serifed', cv92 = 6
Cyrillic Lower Ze (з) with inward serif at bottom (default for Slab Italic)
cyrl-ze = 'bilateral-inward-serifed', cv84 = 7
cyrl-ze = 'bilateral-inward-serifed', cv92 = 7
Cyrillic Lower Ze (з) with inward serif at both top and bottom
- Styles for `К` (Cyrillic Capital Ka)
20 variants - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +
cyrl-capital-ka = 'straight-serifless', cv85 = 1
cyrl-capital-ka = 'straight-serifless', cv93 = 1
Cyrillic Capital Ka (К) with straight shape; without serifs
cyrl-capital-ka = 'straight-top-left-serifed', cv85 = 2
cyrl-capital-ka = 'straight-top-left-serifed', cv93 = 2
Cyrillic Capital Ka (К) with straight shape, and serifs at top left
cyrl-capital-ka = 'straight-bottom-right-serifed', cv85 = 3
cyrl-capital-ka = 'straight-bottom-right-serifed', cv93 = 3
Cyrillic Capital Ka (К) with straight shape, and serifs at bottom right
cyrl-capital-ka = 'straight-top-left-and-bottom-right-serifed', cv85 = 4
cyrl-capital-ka = 'straight-top-left-and-bottom-right-serifed', cv93 = 4
Cyrillic Capital Ka (К) with straight shape, and serifs at top left and bottom right
cyrl-capital-ka = 'straight-serifed', cv85 = 5
cyrl-capital-ka = 'straight-serifed', cv93 = 5
Cyrillic Capital Ka (К) with straight shape, and serifs
cyrl-capital-ka = 'curly-serifless', cv85 = 6
cyrl-capital-ka = 'curly-serifless', cv93 = 6
Cyrillic Capital Ka (К) with curly shape; without serifs
cyrl-capital-ka = 'curly-top-left-serifed', cv85 = 7
cyrl-capital-ka = 'curly-top-left-serifed', cv93 = 7
Cyrillic Capital Ka (К) with curly shape, and serifs at top left
cyrl-capital-ka = 'curly-bottom-right-serifed', cv85 = 8
cyrl-capital-ka = 'curly-bottom-right-serifed', cv93 = 8
Cyrillic Capital Ka (К) with curly shape, and serifs at bottom right
cyrl-capital-ka = 'curly-top-left-and-bottom-right-serifed', cv85 = 9
cyrl-capital-ka = 'curly-top-left-and-bottom-right-serifed', cv93 = 9
Cyrillic Capital Ka (К) with curly shape, and serifs at top left and bottom right
cyrl-capital-ka = 'curly-serifed', cv85 = 10
cyrl-capital-ka = 'curly-serifed', cv93 = 10
Cyrillic Capital Ka (К) with curly shape, and serifs
cyrl-capital-ka = 'symmetric-touching-serifless', cv85 = 11
cyrl-capital-ka = 'symmetric-touching-serifless', cv93 = 11
Cyrillic Capital Ka (К) with symmetric legs touching the vertical bar; without serifs
cyrl-capital-ka = 'symmetric-touching-top-left-serifed', cv85 = 12
cyrl-capital-ka = 'symmetric-touching-top-left-serifed', cv93 = 12
Cyrillic Capital Ka (К) with symmetric legs touching the vertical bar, and serifs at top left
cyrl-capital-ka = 'symmetric-touching-bottom-right-serifed', cv85 = 13
cyrl-capital-ka = 'symmetric-touching-bottom-right-serifed', cv93 = 13
Cyrillic Capital Ka (К) with symmetric legs touching the vertical bar, and serifs at bottom right
cyrl-capital-ka = 'symmetric-touching-top-left-and-bottom-right-serifed', cv85 = 14
cyrl-capital-ka = 'symmetric-touching-top-left-and-bottom-right-serifed', cv93 = 14
Cyrillic Capital Ka (К) with symmetric legs touching the vertical bar, and serifs at top left and bottom right
cyrl-capital-ka = 'symmetric-touching-serifed', cv85 = 15
cyrl-capital-ka = 'symmetric-touching-serifed', cv93 = 15
Cyrillic Capital Ka (К) with symmetric legs touching the vertical bar, and serifs
cyrl-capital-ka = 'symmetric-connected-serifless', cv85 = 16
cyrl-capital-ka = 'symmetric-connected-serifless', cv93 = 16
Cyrillic Capital Ka (К) with symmetric legs connected to the vertical bar; without serifs (default for Sans)
cyrl-capital-ka = 'symmetric-connected-top-left-serifed', cv85 = 17
cyrl-capital-ka = 'symmetric-connected-top-left-serifed', cv93 = 17
Cyrillic Capital Ka (К) with symmetric legs connected to the vertical bar, and serifs at top left
cyrl-capital-ka = 'symmetric-connected-bottom-right-serifed', cv85 = 18
cyrl-capital-ka = 'symmetric-connected-bottom-right-serifed', cv93 = 18
Cyrillic Capital Ka (К) with symmetric legs connected to the vertical bar, and serifs at bottom right
cyrl-capital-ka = 'symmetric-connected-top-left-and-bottom-right-serifed', cv85 = 19
cyrl-capital-ka = 'symmetric-connected-top-left-and-bottom-right-serifed', cv93 = 19
Cyrillic Capital Ka (К) with symmetric legs connected to the vertical bar, and serifs at top left and bottom right
cyrl-capital-ka = 'symmetric-connected-serifed', cv85 = 20
cyrl-capital-ka = 'symmetric-connected-serifed', cv93 = 20
Cyrillic Capital Ka (К) with symmetric legs connected to the vertical bar, and serifs (default for Slab)
- Styles for `к` (Cyrillic Lower Ka)
20 variants - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +
cyrl-ka = 'straight-serifless', cv86 = 1
cyrl-ka = 'straight-serifless', cv94 = 1
Cyrillic Lower Ka (к) with straight shape; without serifs
cyrl-ka = 'straight-top-left-serifed', cv86 = 2
cyrl-ka = 'straight-top-left-serifed', cv94 = 2
Cyrillic Lower Ka (к) with straight shape, and serifs at top left
cyrl-ka = 'straight-bottom-right-serifed', cv86 = 3
cyrl-ka = 'straight-bottom-right-serifed', cv94 = 3
Cyrillic Lower Ka (к) with straight shape, and serifs at bottom right
cyrl-ka = 'straight-top-left-and-bottom-right-serifed', cv86 = 4
cyrl-ka = 'straight-top-left-and-bottom-right-serifed', cv94 = 4
Cyrillic Lower Ka (к) with straight shape, and serifs at top left and bottom right
cyrl-ka = 'straight-serifed', cv86 = 5
cyrl-ka = 'straight-serifed', cv94 = 5
Cyrillic Lower Ka (к) with straight shape, and serifs
cyrl-ka = 'curly-serifless', cv86 = 6
cyrl-ka = 'curly-serifless', cv94 = 6
Cyrillic Lower Ka (к) with curly shape; without serifs
cyrl-ka = 'curly-top-left-serifed', cv86 = 7
cyrl-ka = 'curly-top-left-serifed', cv94 = 7
Cyrillic Lower Ka (к) with curly shape, and serifs at top left
cyrl-ka = 'curly-bottom-right-serifed', cv86 = 8
cyrl-ka = 'curly-bottom-right-serifed', cv94 = 8
Cyrillic Lower Ka (к) with curly shape, and serifs at bottom right
cyrl-ka = 'curly-top-left-and-bottom-right-serifed', cv86 = 9
cyrl-ka = 'curly-top-left-and-bottom-right-serifed', cv94 = 9
Cyrillic Lower Ka (к) with curly shape, and serifs at top left and bottom right
cyrl-ka = 'curly-serifed', cv86 = 10
cyrl-ka = 'curly-serifed', cv94 = 10
Cyrillic Lower Ka (к) with curly shape, and serifs
cyrl-ka = 'symmetric-touching-serifless', cv86 = 11
cyrl-ka = 'symmetric-touching-serifless', cv94 = 11
Cyrillic Lower Ka (к) with symmetric legs touching the vertical bar; without serifs
cyrl-ka = 'symmetric-touching-top-left-serifed', cv86 = 12
cyrl-ka = 'symmetric-touching-top-left-serifed', cv94 = 12
Cyrillic Lower Ka (к) with symmetric legs touching the vertical bar, and serifs at top left
cyrl-ka = 'symmetric-touching-bottom-right-serifed', cv86 = 13
cyrl-ka = 'symmetric-touching-bottom-right-serifed', cv94 = 13
Cyrillic Lower Ka (к) with symmetric legs touching the vertical bar, and serifs at bottom right
cyrl-ka = 'symmetric-touching-top-left-and-bottom-right-serifed', cv86 = 14
cyrl-ka = 'symmetric-touching-top-left-and-bottom-right-serifed', cv94 = 14
Cyrillic Lower Ka (к) with symmetric legs touching the vertical bar, and serifs at top left and bottom right
cyrl-ka = 'symmetric-touching-serifed', cv86 = 15
cyrl-ka = 'symmetric-touching-serifed', cv94 = 15
Cyrillic Lower Ka (к) with symmetric legs touching the vertical bar, and serifs
cyrl-ka = 'symmetric-connected-serifless', cv86 = 16
cyrl-ka = 'symmetric-connected-serifless', cv94 = 16
Cyrillic Lower Ka (к) with symmetric legs connected to the vertical bar; without serifs (default for Sans)
cyrl-ka = 'symmetric-connected-top-left-serifed', cv86 = 17
cyrl-ka = 'symmetric-connected-top-left-serifed', cv94 = 17
Cyrillic Lower Ka (к) with symmetric legs connected to the vertical bar, and serifs at top left (default for Slab Italic)
cyrl-ka = 'symmetric-connected-bottom-right-serifed', cv86 = 18
cyrl-ka = 'symmetric-connected-bottom-right-serifed', cv94 = 18
Cyrillic Lower Ka (к) with symmetric legs connected to the vertical bar, and serifs at bottom right
cyrl-ka = 'symmetric-connected-top-left-and-bottom-right-serifed', cv86 = 19
cyrl-ka = 'symmetric-connected-top-left-and-bottom-right-serifed', cv94 = 19
Cyrillic Lower Ka (к) with symmetric legs connected to the vertical bar, and serifs at top left and bottom right
cyrl-ka = 'symmetric-connected-serifed', cv86 = 20
cyrl-ka = 'symmetric-connected-serifed', cv94 = 20
Cyrillic Lower Ka (к) with symmetric legs connected to the vertical bar, and serifs (default for Slab Upright)
- Styles for `л` (Cyrillic Lower El)
2 variants - + - +
cyrl-el = 'straight', cv87 = 1
cyrl-el = 'straight', cv95 = 1
Cyrillic Lower El (л) with standard shape (default)
cyrl-el = 'tailed', cv87 = 2
cyrl-el = 'tailed', cv95 = 2
Cyrillic Lower El (л) with tail shape
- Styles for `м` (Cyrillic Lower Em)
12 variants - + - + - + - + - + - + - + - + - + - + - + - +
cyrl-em = 'hanging-serifless', cv88 = 1
cyrl-em = 'hanging-serifless', cv96 = 1
Cyrillic Lower Em (м) with middle being hanging off baseline; without serifs
cyrl-em = 'hanging-motion-serifed', cv88 = 2
cyrl-em = 'hanging-motion-serifed', cv96 = 2
Cyrillic Lower Em (м) with middle being hanging off baseline, and motion serifs
cyrl-em = 'hanging-serifed', cv88 = 3
cyrl-em = 'hanging-serifed', cv96 = 3
Cyrillic Lower Em (м) with middle being hanging off baseline, and serifs
cyrl-em = 'flat-bottom-serifless', cv88 = 4
cyrl-em = 'flat-bottom-serifless', cv96 = 4
Cyrillic Lower Em (м) with middle aligned to baseline; without serifs (default for Sans)
cyrl-em = 'flat-bottom-motion-serifed', cv88 = 5
cyrl-em = 'flat-bottom-motion-serifed', cv96 = 5
Cyrillic Lower Em (м) with middle aligned to baseline, and motion serifs
cyrl-em = 'flat-bottom-serifed', cv88 = 6
cyrl-em = 'flat-bottom-serifed', cv96 = 6
Cyrillic Lower Em (м) with middle aligned to baseline, and serifs (default for Slab)
cyrl-em = 'slanted-sides-hanging-serifless', cv88 = 7
cyrl-em = 'slanted-sides-hanging-serifless', cv96 = 7
Cyrillic Lower Em (м) with slanted sides, and middle being hanging off baseline; without serifs
cyrl-em = 'slanted-sides-hanging-motion-serifed', cv88 = 8
cyrl-em = 'slanted-sides-hanging-motion-serifed', cv96 = 8
Cyrillic Lower Em (м) with slanted sides, middle being hanging off baseline, and motion serifs
cyrl-em = 'slanted-sides-hanging-serifed', cv88 = 9
cyrl-em = 'slanted-sides-hanging-serifed', cv96 = 9
Cyrillic Lower Em (м) with slanted sides, middle being hanging off baseline, and serifs
cyrl-em = 'slanted-sides-flat-bottom-serifless', cv88 = 10
cyrl-em = 'slanted-sides-flat-bottom-serifless', cv96 = 10
Cyrillic Lower Em (м) with slanted sides, and middle aligned to baseline; without serifs
cyrl-em = 'slanted-sides-flat-bottom-motion-serifed', cv88 = 11
cyrl-em = 'slanted-sides-flat-bottom-motion-serifed', cv96 = 11
Cyrillic Lower Em (м) with slanted sides, middle aligned to baseline, and motion serifs
cyrl-em = 'slanted-sides-flat-bottom-serifed', cv88 = 12
cyrl-em = 'slanted-sides-flat-bottom-serifed', cv96 = 12
Cyrillic Lower Em (м) with slanted sides, middle aligned to baseline, and serifs
- Styles for `Н` (Cyrillic Capital En)
4 variants - + - + - + - +
cyrl-capital-en = 'serifless', VXAA = 1
cyrl-capital-en = 'serifless', cv97 = 1
Cyrillic Capital En (Н) without serifs (default for Sans)
cyrl-capital-en = 'top-left-serifed', VXAA = 2
cyrl-capital-en = 'top-left-serifed', cv97 = 2
Cyrillic Capital En (Н) with serif only at top left
cyrl-capital-en = 'top-left-bottom-right-serifed', VXAA = 3
cyrl-capital-en = 'top-left-bottom-right-serifed', cv97 = 3
Cyrillic Capital En (Н) with serif only at top left and bottom right
cyrl-capital-en = 'serifed', VXAA = 4
cyrl-capital-en = 'serifed', cv97 = 4
Cyrillic Capital En (Н) with serifs (default for Slab)
- Styles for `н` (Cyrillic Lower En)
7 variants - + - + - + - + - + - + - +
cyrl-en = 'serifless', cv89 = 1
cyrl-en = 'serifless', cv98 = 1
Cyrillic Lower En (н) without serifs (default for Sans)
cyrl-en = 'top-left-serifed', cv89 = 2
cyrl-en = 'top-left-serifed', cv98 = 2
Cyrillic Lower En (н) with serifs at top left
cyrl-en = 'top-left-bottom-right-serifed', cv89 = 3
cyrl-en = 'top-left-bottom-right-serifed', cv98 = 3
Cyrillic Lower En (н) with serifs at top left and bottom right (default for Slab Italic)
cyrl-en = 'serifed', cv89 = 4
cyrl-en = 'serifed', cv98 = 4
Cyrillic Lower En (н) with serifs (default for Slab Upright)
cyrl-en = 'tailed-serifless', cv89 = 5
cyrl-en = 'tailed-serifless', cv98 = 5
Cyrillic Lower En (н) with tail; without serifs
cyrl-en = 'tailed-top-left-serifed', cv89 = 6
cyrl-en = 'tailed-top-left-serifed', cv98 = 6
Cyrillic Lower En (н) with tail, and serifs at top left
cyrl-en = 'tailed-serifed', cv89 = 7
cyrl-en = 'tailed-serifed', cv98 = 7
Cyrillic Lower En (н) with tail, and serifs
- Styles for `Р` (Cyrillic Capital Er)
6 variants - + - + - + - + - + - +
cyrl-capital-er = 'closed-serifless', VXAB = 1
cyrl-capital-er = 'closed-serifless', cv99 = 1
Cyrillic Capital Er (Р) with closed shape; without serifs (default for Sans)
cyrl-capital-er = 'closed-motion-serifed', VXAB = 2
cyrl-capital-er = 'closed-motion-serifed', cv99 = 2
Cyrillic Capital Er (Р) with closed shape, and motion serifs
cyrl-capital-er = 'closed-serifed', VXAB = 3
cyrl-capital-er = 'closed-serifed', cv99 = 3
Cyrillic Capital Er (Р) with closed shape, and serifs (default for Slab)
cyrl-capital-er = 'open-serifless', VXAB = 4
cyrl-capital-er = 'open-serifless', cv99 = 4
Cyrillic Capital Er (Р) with open shape; without serifs
cyrl-capital-er = 'open-motion-serifed', VXAB = 5
cyrl-capital-er = 'open-motion-serifed', cv99 = 5
Cyrillic Capital Er (Р) with open shape, and motion serifs
cyrl-capital-er = 'open-serifed', VXAB = 6
cyrl-capital-er = 'open-serifed', cv99 = 6
Cyrillic Capital Er (Р) with open shape, and serifs
- Styles for `р` (Cyrillic Lower Er)
7 variants - + - + - + - + - + - + - +
cyrl-er = 'eared-serifless', cv90 = 1
cyrl-er = 'eared-serifless', VAAA = 1
Cyrillic Lower Er (р) with eared shape; without serifs (default for Sans)
cyrl-er = 'eared-motion-serifed', cv90 = 2
cyrl-er = 'eared-motion-serifed', VAAA = 2
Cyrillic Lower Er (р) with eared shape, and motion serifs
cyrl-er = 'eared-serifed', cv90 = 3
cyrl-er = 'eared-serifed', VAAA = 3
Cyrillic Lower Er (р) with eared shape, and serifs (default for Slab)
cyrl-er = 'earless-corner-serifless', cv90 = 4
cyrl-er = 'earless-corner-serifless', VAAA = 4
Cyrillic Lower Er (р) with earless (cornered) shape; without serifs
cyrl-er = 'earless-corner-serifed', cv90 = 5
cyrl-er = 'earless-corner-serifed', VAAA = 5
Cyrillic Lower Er (р) with earless (cornered) shape, and serifs
cyrl-er = 'earless-rounded-serifless', cv90 = 6
cyrl-er = 'earless-rounded-serifless', VAAA = 6
Cyrillic Lower Er (р) with earless (rounded) shape; without serifs
cyrl-er = 'earless-rounded-serifed', cv90 = 7
cyrl-er = 'earless-rounded-serifed', VAAA = 7
Cyrillic Lower Er (р) with earless (rounded) shape, and serifs
- Styles for `У` (Cyrillic Capital U)
18 variants - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +
cyrl-capital-u = 'straight-serifless', cv91 = 1
cyrl-capital-u = 'straight-serifless', VAAB = 1
Cyrillic Capital U (У) with straight shape; without serifs (default for Sans)
cyrl-capital-u = 'straight-motion-serifed', cv91 = 2
cyrl-capital-u = 'straight-motion-serifed', VAAB = 2
Cyrillic Capital U (У) with straight shape, and motion serifs
cyrl-capital-u = 'straight-serifed', cv91 = 3
cyrl-capital-u = 'straight-serifed', VAAB = 3
Cyrillic Capital U (У) with straight shape, and serifs
cyrl-capital-u = 'straight-turn-serifless', cv91 = 4
cyrl-capital-u = 'straight-turn-serifless', VAAB = 4
Cyrillic Capital U (У) with straight shape, and a tail turns leftward; without serifs
cyrl-capital-u = 'straight-turn-motion-serifed', cv91 = 5
cyrl-capital-u = 'straight-turn-motion-serifed', VAAB = 5
Cyrillic Capital U (У) with straight shape, a tail turns leftward, and motion serifs
cyrl-capital-u = 'straight-turn-serifed', cv91 = 6
cyrl-capital-u = 'straight-turn-serifed', VAAB = 6
Cyrillic Capital U (У) with straight shape, a tail turns leftward, and serifs (default for Slab)
cyrl-capital-u = 'curly-serifless', cv91 = 7
cyrl-capital-u = 'curly-serifless', VAAB = 7
Cyrillic Capital U (У) with curly shape; without serifs
cyrl-capital-u = 'curly-motion-serifed', cv91 = 8
cyrl-capital-u = 'curly-motion-serifed', VAAB = 8
Cyrillic Capital U (У) with curly shape, and motion serifs
cyrl-capital-u = 'curly-serifed', cv91 = 9
cyrl-capital-u = 'curly-serifed', VAAB = 9
Cyrillic Capital U (У) with curly shape, and serifs
cyrl-capital-u = 'curly-turn-serifless', cv91 = 10
cyrl-capital-u = 'curly-turn-serifless', VAAB = 10
Cyrillic Capital U (У) with curly shape, and a tail turns leftward; without serifs
cyrl-capital-u = 'curly-turn-motion-serifed', cv91 = 11
cyrl-capital-u = 'curly-turn-motion-serifed', VAAB = 11
Cyrillic Capital U (У) with curly shape, a tail turns leftward, and motion serifs
cyrl-capital-u = 'curly-turn-serifed', cv91 = 12
cyrl-capital-u = 'curly-turn-serifed', VAAB = 12
Cyrillic Capital U (У) with curly shape, a tail turns leftward, and serifs
cyrl-capital-u = 'cursive-serifless', cv91 = 13
cyrl-capital-u = 'cursive-serifless', VAAB = 13
Cyrillic Capital U (У) with cursive shape; without serifs
cyrl-capital-u = 'cursive-motion-serifed', cv91 = 14
cyrl-capital-u = 'cursive-motion-serifed', VAAB = 14
Cyrillic Capital U (У) with cursive shape, and motion serifs
cyrl-capital-u = 'cursive-serifed', cv91 = 15
cyrl-capital-u = 'cursive-serifed', VAAB = 15
Cyrillic Capital U (У) with cursive shape, and serifs
cyrl-capital-u = 'cursive-flat-hook-serifless', cv91 = 16
cyrl-capital-u = 'cursive-flat-hook-serifless', VAAB = 16
Cyrillic Capital U (У) with cursive shape, and a flat terminal hook; without serifs
cyrl-capital-u = 'cursive-flat-hook-motion-serifed', cv91 = 17
cyrl-capital-u = 'cursive-flat-hook-motion-serifed', VAAB = 17
Cyrillic Capital U (У) with cursive shape, a flat terminal hook, and motion serifs
cyrl-capital-u = 'cursive-flat-hook-serifed', cv91 = 18
cyrl-capital-u = 'cursive-flat-hook-serifed', VAAB = 18
Cyrillic Capital U (У) with cursive shape, a flat terminal hook, and serifs
- Styles for `у` (Cyrillic Lower U)
18 variants - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +
cyrl-u = 'straight-serifless', cv92 = 1
cyrl-u = 'straight-serifless', VAAC = 1
Cyrillic Lower U (у) with straight shape; without serifs (default for Sans Upright)
cyrl-u = 'straight-motion-serifed', cv92 = 2
cyrl-u = 'straight-motion-serifed', VAAC = 2
Cyrillic Lower U (у) with straight shape, and motion serifs
cyrl-u = 'straight-serifed', cv92 = 3
cyrl-u = 'straight-serifed', VAAC = 3
Cyrillic Lower U (у) with straight shape, and serifs
cyrl-u = 'straight-turn-serifless', cv92 = 4
cyrl-u = 'straight-turn-serifless', VAAC = 4
Cyrillic Lower U (у) with straight shape, and a tail turns leftward; without serifs
cyrl-u = 'straight-turn-motion-serifed', cv92 = 5
cyrl-u = 'straight-turn-motion-serifed', VAAC = 5
Cyrillic Lower U (у) with straight shape, a tail turns leftward, and motion serifs
cyrl-u = 'straight-turn-serifed', cv92 = 6
cyrl-u = 'straight-turn-serifed', VAAC = 6
Cyrillic Lower U (у) with straight shape, a tail turns leftward, and serifs (default for Slab Upright)
cyrl-u = 'curly-serifless', cv92 = 7
cyrl-u = 'curly-serifless', VAAC = 7
Cyrillic Lower U (у) with curly shape; without serifs
cyrl-u = 'curly-motion-serifed', cv92 = 8
cyrl-u = 'curly-motion-serifed', VAAC = 8
Cyrillic Lower U (у) with curly shape, and motion serifs
cyrl-u = 'curly-serifed', cv92 = 9
cyrl-u = 'curly-serifed', VAAC = 9
Cyrillic Lower U (у) with curly shape, and serifs
cyrl-u = 'curly-turn-serifless', cv92 = 10
cyrl-u = 'curly-turn-serifless', VAAC = 10
Cyrillic Lower U (у) with curly shape, and a tail turns leftward; without serifs
cyrl-u = 'curly-turn-motion-serifed', cv92 = 11
cyrl-u = 'curly-turn-motion-serifed', VAAC = 11
Cyrillic Lower U (у) with curly shape, a tail turns leftward, and motion serifs
cyrl-u = 'curly-turn-serifed', cv92 = 12
cyrl-u = 'curly-turn-serifed', VAAC = 12
Cyrillic Lower U (у) with curly shape, a tail turns leftward, and serifs
cyrl-u = 'cursive-serifless', cv92 = 13
cyrl-u = 'cursive-serifless', VAAC = 13
Cyrillic Lower U (у) with cursive shape; without serifs (default for Sans Italic)
cyrl-u = 'cursive-motion-serifed', cv92 = 14
cyrl-u = 'cursive-motion-serifed', VAAC = 14
Cyrillic Lower U (у) with cursive shape, and motion serifs (default for Slab Italic)
cyrl-u = 'cursive-serifed', cv92 = 15
cyrl-u = 'cursive-serifed', VAAC = 15
Cyrillic Lower U (у) with cursive shape, and serifs
cyrl-u = 'cursive-flat-hook-serifless', cv92 = 16
cyrl-u = 'cursive-flat-hook-serifless', VAAC = 16
Cyrillic Lower U (у) with cursive shape, and a flat terminal hook; without serifs
cyrl-u = 'cursive-flat-hook-motion-serifed', cv92 = 17
cyrl-u = 'cursive-flat-hook-motion-serifed', VAAC = 17
Cyrillic Lower U (у) with cursive shape, a flat terminal hook, and motion serifs
cyrl-u = 'cursive-flat-hook-serifed', cv92 = 18
cyrl-u = 'cursive-flat-hook-serifed', VAAC = 18
Cyrillic Lower U (у) with cursive shape, a flat terminal hook, and serifs
- Styles for `ф` (Cyrillic Lower Ef)
10 variants - + - + - + - + - - - - - - - - - + - + + + + + + + + +
cyrl-ef = 'serifless', cv93 = 1
cyrl-ef = 'serifless', VAAD = 1
Cyrillic Lower Ef (ф) with straight bar; without serifs (default for Sans Upright)
cyrl-ef = 'top-serifed', cv93 = 2
cyrl-ef = 'top-serifed', VAAD = 2
Cyrillic Lower Ef (ф) with straight bar, and serif at top
cyrl-ef = 'serifed', cv93 = 3
cyrl-ef = 'serifed', VAAD = 3
Cyrillic Lower Ef (ф) with straight bar, and serifs at top and bottom (default for Slab Upright)
cyrl-ef = 'cursive', cv93 = 4
cyrl-ef = 'cursive', VAAD = 4
Cyrillic Lower Ef (ф) with cursive bar (default for Italic)
cyrl-ef = 'split-serifless', cv93 = 5
Cyrillic Lower Ef (ф) with split bowl, and straight bar; without serifs
cyrl-ef = 'split-top-serifed', cv93 = 6
Cyrillic Lower Ef (ф) with split bowl, straight bar, and serif at top
cyrl-ef = 'split-serifed', cv93 = 7
Cyrillic Lower Ef (ф) with split bowl, straight bar, and serifs at top and bottom
cyrl-ef = 'split-cursive', cv93 = 8
Cyrillic Lower Ef (ф) with split bowl, and cursive bar
cyrl-ef = 'diagonal-tailed-cursive', cv93 = 9
cyrl-ef = 'diagonal-tailed-cursive', VAAD = 5
Cyrillic Lower Ef (ф) with cursive bar, and diagonal tail
cyrl-ef = 'split-diagonal-tailed-cursive', cv93 = 10
cyrl-ef = 'split-serifless', VAAD = 6
Cyrillic Lower Ef (ф) with split bowl, and straight bar; without serifs
cyrl-ef = 'split-top-serifed', VAAD = 7
Cyrillic Lower Ef (ф) with split bowl, straight bar, and serif at top
cyrl-ef = 'split-serifed', VAAD = 8
Cyrillic Lower Ef (ф) with split bowl, straight bar, and serifs at top and bottom
cyrl-ef = 'split-cursive', VAAD = 9
Cyrillic Lower Ef (ф) with split bowl, and cursive bar
cyrl-ef = 'split-diagonal-tailed-cursive', VAAD = 10
Cyrillic Lower Ef (ф) with split bowl, and cursive bar, and diagonal tail
- Styles for `ч` (Cyrillic Lower Che)
2 variants - + - +
cyrl-che = 'standard', cv94 = 1
cyrl-che = 'standard', VAAE = 1
Cyrillic Lower Che (ч) with standard shape (default)
cyrl-che = 'tailed', cv94 = 2
cyrl-che = 'tailed', VAAE = 2
Cyrillic Lower Che (ч) with tail
- Styles for `ь`, `ъ` (Cyrillic Lower Yeri and related letters)
3 variants - + - + - +
cyrl-yeri = 'corner', cv95 = 1
cyrl-yeri = 'corner', VAAF = 1
Cyrillic Lower Yeri (ь) with corner at bottom left (default for Upright)
cyrl-yeri = 'round', cv95 = 2
cyrl-yeri = 'round', VAAF = 2
Cyrillic Lower Yeri (ь) with rounded shape (default for Sans Italic)
cyrl-yeri = 'cursive', cv95 = 3
cyrl-yeri = 'cursive', VAAF = 3
Cyrillic Lower Yeri (ь) with cursive shape (default for Slab Italic)
- Styles for `ы` (Cyrillic Lower Yery)
6 variants - + - + - + - + - + - +
cyrl-yery = 'corner', cv96 = 1
cyrl-yery = 'corner', VAAG = 1
Cyrillic Lower Yery (ы) with corner at bottom left (default for Upright)
cyrl-yery = 'corner-tailed', cv96 = 2
cyrl-yery = 'corner-tailed', VAAG = 2
Cyrillic Lower Yery (ы) with corner at bottom left and tail
cyrl-yery = 'round', cv96 = 3
cyrl-yery = 'round', VAAG = 3
Cyrillic Lower Yery (ы) with rounded shape (default for Sans Italic)
cyrl-yery = 'round-tailed', cv96 = 4
cyrl-yery = 'round-tailed', VAAG = 4
Cyrillic Lower Yery (ы) with rounded shape and tail
cyrl-yery = 'cursive', cv96 = 5
cyrl-yery = 'cursive', VAAG = 5
Cyrillic Lower Yery (ы) with cursive shape (default for Slab Italic)
cyrl-yery = 'cursive-tailed', cv96 = 6
cyrl-yery = 'cursive-tailed', VAAG = 6
Cyrillic Lower Yery (ы) with cursive shape and tail
- Styles for `Э` (Cyrillic Capital E (`Э`))
7 variants - + - + - + - + - + - + - +
cyrl-capital-e = 'serifless', cv97 = 1
cyrl-capital-e = 'serifless', VAAH = 1
Serifless Cyrillic Capital E (Э) (default for Sans)
cyrl-capital-e = 'unilateral-serifed', cv97 = 2
cyrl-capital-e = 'unilateral-serifed', VAAH = 2
Cyrillic Capital E (Э) with serif at top (default for Slab)
cyrl-capital-e = 'unilateral-bottom-serifed', cv97 = 3
cyrl-capital-e = 'unilateral-bottom-serifed', VAAH = 3
Cyrillic Capital E (Э) with serif at bottom
cyrl-capital-e = 'bilateral-serifed', cv97 = 4
cyrl-capital-e = 'bilateral-serifed', VAAH = 4
Cyrillic Capital E (Э) with serifs at both top and bottom
cyrl-capital-e = 'unilateral-inward-serifed', cv97 = 5
cyrl-capital-e = 'unilateral-inward-serifed', VAAH = 5
Cyrillic Capital E (Э) with inward serif at top
cyrl-capital-e = 'unilateral-bottom-inward-serifed', cv97 = 6
cyrl-capital-e = 'unilateral-bottom-inward-serifed', VAAH = 6
Cyrillic Capital E (Э) with inward serif at bottom
cyrl-capital-e = 'bilateral-inward-serifed', cv97 = 7
cyrl-capital-e = 'bilateral-inward-serifed', VAAH = 7
Cyrillic Capital E (Э) with inward serif at both top and bottom
- Styles for `э` (Cyrillic Lower E (`э`))
7 variants - + - + - + - + - + - + - +
cyrl-e = 'serifless', cv98 = 1
cyrl-e = 'serifless', VAAI = 1
Serifless Cyrillic Lower E (э) (default for Sans)
cyrl-e = 'unilateral-serifed', cv98 = 2
cyrl-e = 'unilateral-serifed', VAAI = 2
Cyrillic Lower E (э) with serif at top (default for Slab Upright)
cyrl-e = 'unilateral-bottom-serifed', cv98 = 3
cyrl-e = 'unilateral-bottom-serifed', VAAI = 3
Cyrillic Lower E (э) with serif at bottom
cyrl-e = 'bilateral-serifed', cv98 = 4
cyrl-e = 'bilateral-serifed', VAAI = 4
Cyrillic Lower E (э) with serifs at both top and bottom
cyrl-e = 'unilateral-inward-serifed', cv98 = 5
cyrl-e = 'unilateral-inward-serifed', VAAI = 5
Cyrillic Lower E (э) with inward serif at top
cyrl-e = 'unilateral-bottom-inward-serifed', cv98 = 6
cyrl-e = 'unilateral-bottom-inward-serifed', VAAI = 6
Cyrillic Lower E (э) with inward serif at bottom (default for Slab Italic)
cyrl-e = 'bilateral-inward-serifed', cv98 = 7
cyrl-e = 'bilateral-inward-serifed', VAAI = 7
Cyrillic Lower E (э) with inward serif at both top and bottom
- Styles for `Я` (Cyrillic Capital Ya)
18 variants - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +
cyrl-capital-ya = 'straight-serifless', cv99 = 1
cyrl-capital-ya = 'straight-serifless', VAAJ = 1
Cyrillic Capital Ya (Я) with straight leg; without serifs (default for Sans)
cyrl-capital-ya = 'straight-motion-serifed', cv99 = 2
cyrl-capital-ya = 'straight-motion-serifed', VAAJ = 2
Cyrillic Capital Ya (Я) with straight leg, and motion serifs at bottom-left
cyrl-capital-ya = 'straight-serifed', cv99 = 3
cyrl-capital-ya = 'straight-serifed', VAAJ = 3
Cyrillic Capital Ya (Я) with straight leg, and serifs (default for Slab)
cyrl-capital-ya = 'straight-open-serifless', cv99 = 4
cyrl-capital-ya = 'straight-open-serifless', VAAJ = 4
Cyrillic Capital Ya (Я) with straight leg, and open contour; without serifs
cyrl-capital-ya = 'straight-open-motion-serifed', cv99 = 5
cyrl-capital-ya = 'straight-open-motion-serifed', VAAJ = 5
Cyrillic Capital Ya (Я) with straight leg, open contour, and motion serifs at bottom-left
cyrl-capital-ya = 'straight-open-serifed', cv99 = 6
cyrl-capital-ya = 'straight-open-serifed', VAAJ = 6
Cyrillic Capital Ya (Я) with straight leg, open contour, and serifs
cyrl-capital-ya = 'curly-serifless', cv99 = 7
cyrl-capital-ya = 'curly-serifless', VAAJ = 7
Cyrillic Capital Ya (Я) with curly leg; without serifs
cyrl-capital-ya = 'curly-motion-serifed', cv99 = 8
cyrl-capital-ya = 'curly-motion-serifed', VAAJ = 8
Cyrillic Capital Ya (Я) with curly leg, and motion serifs at bottom-left
cyrl-capital-ya = 'curly-serifed', cv99 = 9
cyrl-capital-ya = 'curly-serifed', VAAJ = 9
Cyrillic Capital Ya (Я) with curly leg, and serifs
cyrl-capital-ya = 'curly-open-serifless', cv99 = 10
cyrl-capital-ya = 'curly-open-serifless', VAAJ = 10
Cyrillic Capital Ya (Я) with curly leg, and open contour; without serifs
cyrl-capital-ya = 'curly-open-motion-serifed', cv99 = 11
cyrl-capital-ya = 'curly-open-motion-serifed', VAAJ = 11
Cyrillic Capital Ya (Я) with curly leg, open contour, and motion serifs at bottom-left
cyrl-capital-ya = 'curly-open-serifed', cv99 = 12
cyrl-capital-ya = 'curly-open-serifed', VAAJ = 12
Cyrillic Capital Ya (Я) with curly leg, open contour, and serifs
cyrl-capital-ya = 'standing-serifless', cv99 = 13
cyrl-capital-ya = 'standing-serifless', VAAJ = 13
Cyrillic Capital Ya (Я) with standing leg (like Helvetica); without serifs
cyrl-capital-ya = 'standing-motion-serifed', cv99 = 14
cyrl-capital-ya = 'standing-motion-serifed', VAAJ = 14
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), and motion serifs at bottom-left
cyrl-capital-ya = 'standing-serifed', cv99 = 15
cyrl-capital-ya = 'standing-serifed', VAAJ = 15
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), and serifs
cyrl-capital-ya = 'standing-open-serifless', cv99 = 16
cyrl-capital-ya = 'standing-open-serifless', VAAJ = 16
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), and open contour; without serifs
cyrl-capital-ya = 'standing-open-motion-serifed', cv99 = 17
cyrl-capital-ya = 'standing-open-motion-serifed', VAAJ = 17
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), open contour, and motion serifs at bottom-left
cyrl-capital-ya = 'standing-open-serifed', cv99 = 18
cyrl-capital-ya = 'standing-open-serifed', VAAJ = 18
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), open contour, and serifs
- Styles for `я` (Cyrillic Lower Ya)
36 variants - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +
cyrl-ya = 'straight-serifless', VAAA = 1
cyrl-ya = 'straight-serifless', VAAK = 1
Cyrillic Lower Ya (я) with straight leg; without serifs (default for Sans)
cyrl-ya = 'straight-motion-serifed', VAAA = 2
cyrl-ya = 'straight-motion-serifed', VAAK = 2
Cyrillic Lower Ya (я) with straight leg, and motion serifs at bottom-left
cyrl-ya = 'straight-serifed', VAAA = 3
cyrl-ya = 'straight-serifed', VAAK = 3
Cyrillic Lower Ya (я) with straight leg, and serifs (default for Slab)
cyrl-ya = 'straight-tailed-serifless', VAAA = 4
cyrl-ya = 'straight-tailed-serifless', VAAK = 4
Cyrillic Lower Ya (я) with straight leg, and tail; without serifs
cyrl-ya = 'straight-tailed-motion-serifed', VAAA = 5
cyrl-ya = 'straight-tailed-motion-serifed', VAAK = 5
Cyrillic Lower Ya (я) with straight leg, tail, and motion serifs at bottom-left
cyrl-ya = 'straight-tailed-serifed', VAAA = 6
cyrl-ya = 'straight-tailed-serifed', VAAK = 6
Cyrillic Lower Ya (я) with straight leg, tail, and serifs
cyrl-ya = 'straight-open-serifless', VAAA = 7
cyrl-ya = 'straight-open-serifless', VAAK = 7
Cyrillic Lower Ya (я) with straight leg, and open contour; without serifs
cyrl-ya = 'straight-open-motion-serifed', VAAA = 8
cyrl-ya = 'straight-open-motion-serifed', VAAK = 8
Cyrillic Lower Ya (я) with straight leg, open contour, and motion serifs at bottom-left
cyrl-ya = 'straight-open-serifed', VAAA = 9
cyrl-ya = 'straight-open-serifed', VAAK = 9
Cyrillic Lower Ya (я) with straight leg, open contour, and serifs
cyrl-ya = 'straight-open-tailed-serifless', VAAA = 10
cyrl-ya = 'straight-open-tailed-serifless', VAAK = 10
Cyrillic Lower Ya (я) with straight leg, open contour, and tail; without serifs
cyrl-ya = 'straight-open-tailed-motion-serifed', VAAA = 11
cyrl-ya = 'straight-open-tailed-motion-serifed', VAAK = 11
Cyrillic Lower Ya (я) with straight leg, open contour, tail, and motion serifs at bottom-left
cyrl-ya = 'straight-open-tailed-serifed', VAAA = 12
cyrl-ya = 'straight-open-tailed-serifed', VAAK = 12
Cyrillic Lower Ya (я) with straight leg, open contour, tail, and serifs
cyrl-ya = 'curly-serifless', VAAA = 13
cyrl-ya = 'curly-serifless', VAAK = 13
Cyrillic Lower Ya (я) with curly leg; without serifs
cyrl-ya = 'curly-motion-serifed', VAAA = 14
cyrl-ya = 'curly-motion-serifed', VAAK = 14
Cyrillic Lower Ya (я) with curly leg, and motion serifs at bottom-left
cyrl-ya = 'curly-serifed', VAAA = 15
cyrl-ya = 'curly-serifed', VAAK = 15
Cyrillic Lower Ya (я) with curly leg, and serifs
cyrl-ya = 'curly-tailed-serifless', VAAA = 16
cyrl-ya = 'curly-tailed-serifless', VAAK = 16
Cyrillic Lower Ya (я) with curly leg, and tail; without serifs
cyrl-ya = 'curly-tailed-motion-serifed', VAAA = 17
cyrl-ya = 'curly-tailed-motion-serifed', VAAK = 17
Cyrillic Lower Ya (я) with curly leg, tail, and motion serifs at bottom-left
cyrl-ya = 'curly-tailed-serifed', VAAA = 18
cyrl-ya = 'curly-tailed-serifed', VAAK = 18
Cyrillic Lower Ya (я) with curly leg, tail, and serifs
cyrl-ya = 'curly-open-serifless', VAAA = 19
cyrl-ya = 'curly-open-serifless', VAAK = 19
Cyrillic Lower Ya (я) with curly leg, and open contour; without serifs
cyrl-ya = 'curly-open-motion-serifed', VAAA = 20
cyrl-ya = 'curly-open-motion-serifed', VAAK = 20
Cyrillic Lower Ya (я) with curly leg, open contour, and motion serifs at bottom-left
cyrl-ya = 'curly-open-serifed', VAAA = 21
cyrl-ya = 'curly-open-serifed', VAAK = 21
Cyrillic Lower Ya (я) with curly leg, open contour, and serifs
cyrl-ya = 'curly-open-tailed-serifless', VAAA = 22
cyrl-ya = 'curly-open-tailed-serifless', VAAK = 22
Cyrillic Lower Ya (я) with curly leg, open contour, and tail; without serifs
cyrl-ya = 'curly-open-tailed-motion-serifed', VAAA = 23
cyrl-ya = 'curly-open-tailed-motion-serifed', VAAK = 23
Cyrillic Lower Ya (я) with curly leg, open contour, tail, and motion serifs at bottom-left
cyrl-ya = 'curly-open-tailed-serifed', VAAA = 24
cyrl-ya = 'curly-open-tailed-serifed', VAAK = 24
Cyrillic Lower Ya (я) with curly leg, open contour, tail, and serifs
cyrl-ya = 'standing-serifless', VAAA = 25
cyrl-ya = 'standing-serifless', VAAK = 25
Cyrillic Lower Ya (я) with standing leg (like Helvetica); without serifs
cyrl-ya = 'standing-motion-serifed', VAAA = 26
cyrl-ya = 'standing-motion-serifed', VAAK = 26
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and motion serifs at bottom-left
cyrl-ya = 'standing-serifed', VAAA = 27
cyrl-ya = 'standing-serifed', VAAK = 27
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and serifs
cyrl-ya = 'standing-tailed-serifless', VAAA = 28
cyrl-ya = 'standing-tailed-serifless', VAAK = 28
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and tail; without serifs
cyrl-ya = 'standing-tailed-motion-serifed', VAAA = 29
cyrl-ya = 'standing-tailed-motion-serifed', VAAK = 29
Cyrillic Lower Ya (я) with standing leg (like Helvetica), tail, and motion serifs at bottom-left
cyrl-ya = 'standing-tailed-serifed', VAAA = 30
cyrl-ya = 'standing-tailed-serifed', VAAK = 30
Cyrillic Lower Ya (я) with standing leg (like Helvetica), tail, and serifs
cyrl-ya = 'standing-open-serifless', VAAA = 31
cyrl-ya = 'standing-open-serifless', VAAK = 31
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and open contour; without serifs
cyrl-ya = 'standing-open-motion-serifed', VAAA = 32
cyrl-ya = 'standing-open-motion-serifed', VAAK = 32
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, and motion serifs at bottom-left
cyrl-ya = 'standing-open-serifed', VAAA = 33
cyrl-ya = 'standing-open-serifed', VAAK = 33
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, and serifs
cyrl-ya = 'standing-open-tailed-serifless', VAAA = 34
cyrl-ya = 'standing-open-tailed-serifless', VAAK = 34
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, and tail; without serifs
cyrl-ya = 'standing-open-tailed-motion-serifed', VAAA = 35
cyrl-ya = 'standing-open-tailed-motion-serifed', VAAK = 35
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, tail, and motion serifs at bottom-left
cyrl-ya = 'standing-open-tailed-serifed', VAAA = 36
cyrl-ya = 'standing-open-tailed-serifed', VAAK = 36
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, tail, and serifs
- Styles for `ij` (Dots in letters “i” and “j” in particular) @@ -3328,26 +3366,26 @@ Subsection `variants` is used to configure character variants in the font. Prope - - - - - - - - - - - + - + + + - + + + - + + + - + + + + +
dollar = 'open', VSAM = 1
Dollar symbol ($) with vertical bar, open contour, and normal height
dollar = 'through', VSAM = 2
Dollar symbol ($) with vertical bar, strike-through vertical bar, and normal height (default)
dollar = 'interrupted', VSAM = 3
Dollar symbol ($) with vertical bar, interrupted strike-through vertical bar, and normal height
dollar = 'open-cap', VSAM = 4
Dollar symbol ($) with vertical bar, open contour, and cap height
dollar = 'through-cap', VSAM = 5
Dollar symbol ($) with vertical bar, strike-through vertical bar, and cap height
dollar = 'interrupted-cap', VSAM = 6
Dollar symbol ($) with vertical bar, interrupted strike-through vertical bar, and cap height
dollar = 'slanted-open', VSAM = 7
dollar = 'slanted-open', VSAM = 2
Dollar symbol ($) with slanted bar, open contour, and normal height
dollar = 'slanted-through', VSAM = 8
dollar = 'through', VSAM = 3
Dollar symbol ($) with vertical bar, strike-through vertical bar, and normal height (default)
dollar = 'slanted-through', VSAM = 4
Dollar symbol ($) with slanted bar, strike-through vertical bar, and normal height
dollar = 'slanted-interrupted', VSAM = 9
dollar = 'interrupted', VSAM = 5
Dollar symbol ($) with vertical bar, interrupted strike-through vertical bar, and normal height
dollar = 'slanted-interrupted', VSAM = 6
Dollar symbol ($) with slanted bar, interrupted strike-through vertical bar, and normal height
dollar = 'slanted-open-cap', VSAM = 10
dollar = 'open-cap', VSAM = 7
Dollar symbol ($) with vertical bar, open contour, and cap height
dollar = 'slanted-open-cap', VSAM = 8
Dollar symbol ($) with slanted bar, open contour, and cap height
dollar = 'slanted-through-cap', VSAM = 11
dollar = 'through-cap', VSAM = 9
Dollar symbol ($) with vertical bar, strike-through vertical bar, and cap height
dollar = 'slanted-through-cap', VSAM = 10
Dollar symbol ($) with slanted bar, strike-through vertical bar, and cap height
dollar = 'interrupted-cap', VSAM = 11
Dollar symbol ($) with vertical bar, interrupted strike-through vertical bar, and cap height
dollar = 'slanted-interrupted-cap', VSAM = 12
Dollar symbol ($) with slanted bar, interrupted strike-through vertical bar, and cap height
@@ -3356,26 +3394,26 @@ Subsection `variants` is used to configure character variants in the font. Prope - - - - - - - - - - - + - + + + - + + + - + + + - + + + + +
cent = 'open', VSAN = 1
Cent sign (¢) with vertical bar, open contour, and normal height
cent = 'through', VSAN = 2
Cent sign (¢) with vertical bar, vertical bar all through the c part, and normal height (default)
cent = 'bar-interrupted', VSAN = 3
Cent sign (¢) with vertical bar, vertical bar breaks at center, and normal height
cent = 'open-cap', VSAN = 4
Cent sign (¢) with vertical bar, open contour, and cap height
cent = 'through-cap', VSAN = 5
Cent sign (¢) with vertical bar, vertical bar all through the c part, and cap height
cent = 'bar-interrupted-cap', VSAN = 6
Cent sign (¢) with vertical bar, vertical bar breaks at center, and cap height
cent = 'slanted-open', VSAN = 7
cent = 'slanted-open', VSAN = 2
Cent sign (¢) with slanted bar, open contour, and normal height
cent = 'slanted-through', VSAN = 8
cent = 'through', VSAN = 3
Cent sign (¢) with vertical bar, vertical bar all through the c part, and normal height (default)
cent = 'slanted-through', VSAN = 4
Cent sign (¢) with slanted bar, vertical bar all through the c part, and normal height
cent = 'slanted-bar-interrupted', VSAN = 9
cent = 'bar-interrupted', VSAN = 5
Cent sign (¢) with vertical bar, vertical bar breaks at center, and normal height
cent = 'slanted-bar-interrupted', VSAN = 6
Cent sign (¢) with slanted bar, vertical bar breaks at center, and normal height
cent = 'slanted-open-cap', VSAN = 10
cent = 'open-cap', VSAN = 7
Cent sign (¢) with vertical bar, open contour, and cap height
cent = 'slanted-open-cap', VSAN = 8
Cent sign (¢) with slanted bar, open contour, and cap height
cent = 'slanted-through-cap', VSAN = 11
cent = 'through-cap', VSAN = 9
Cent sign (¢) with vertical bar, vertical bar all through the c part, and cap height
cent = 'slanted-through-cap', VSAN = 10
Cent sign (¢) with slanted bar, vertical bar all through the c part, and cap height
cent = 'bar-interrupted-cap', VSAN = 11
Cent sign (¢) with vertical bar, vertical bar breaks at center, and cap height
cent = 'slanted-bar-interrupted-cap', VSAN = 12
Cent sign (¢) with slanted bar, vertical bar breaks at center, and cap height
@@ -3419,52 +3457,44 @@ Subsection `variants` is used to configure character variants in the font. Prope pilcrow = 'curved', VSAR = 3 Curved pilcrow sign
- - Styles for `∂` (Partial derivative symbol) -
2 variants - - - - - -
partial-derivative = 'straight-bar', VSAS = 1
The upper bar of the partial derivative symbol is straight
partial-derivative = 'curly-bar', VSAS = 2
The upper bar of the partial derivative symbol is curly (default)
- Styles for `µ` (Micro sign)
13 variants - + - + - + - + - + - + - + - + - + - + - + - + - +
micro-sign = 'toothed-serifless', VSAT = 1
micro-sign = 'toothed-serifless', VSAS = 1
Micro Sign (µ) with toothed shape; without serifs (default for Sans Upright)
micro-sign = 'toothed-bottom-right-serifed', VSAT = 2
micro-sign = 'toothed-bottom-right-serifed', VSAS = 2
Micro Sign (µ) with toothed shape, and serif at bottom-right
micro-sign = 'toothed-motion-serifed', VSAT = 3
micro-sign = 'toothed-motion-serifed', VSAS = 3
Micro Sign (µ) with toothed shape, and motion serifs at top-left and bottom-right
micro-sign = 'toothed-serifed', VSAT = 4
micro-sign = 'toothed-serifed', VSAS = 4
Micro Sign (µ) with toothed shape, and serifs (default for Slab Upright)
micro-sign = 'tailed-serifless', VSAT = 5
micro-sign = 'tailed-serifless', VSAS = 5
Micro Sign (µ) with tailed shape; without serifs (default for Sans Italic)
micro-sign = 'tailed-motion-serifed', VSAT = 6
micro-sign = 'tailed-motion-serifed', VSAS = 6
Micro Sign (µ) with tailed shape, and motion serifs at top-left and bottom-right (default for Slab Italic)
micro-sign = 'tailed-serifed', VSAT = 7
micro-sign = 'tailed-serifed', VSAS = 7
Micro Sign (µ) with tailed shape, and serifs
micro-sign = 'toothless-corner-serifless', VSAT = 8
micro-sign = 'toothless-corner-serifless', VSAS = 8
Micro Sign (µ) with toothless (corner bottom-right) shape; without serifs
micro-sign = 'toothless-corner-motion-serifed', VSAT = 9
micro-sign = 'toothless-corner-motion-serifed', VSAS = 9
Micro Sign (µ) with toothless (corner bottom-right) shape, and motion serifs at top-left and bottom-right
micro-sign = 'toothless-corner-serifed', VSAT = 10
micro-sign = 'toothless-corner-serifed', VSAS = 10
Micro Sign (µ) with toothless (corner bottom-right) shape, and serifs
micro-sign = 'toothless-rounded-serifless', VSAT = 11
micro-sign = 'toothless-rounded-serifless', VSAS = 11
Micro Sign (µ) with toothless (rounded) shape; without serifs
micro-sign = 'toothless-rounded-motion-serifed', VSAT = 12
micro-sign = 'toothless-rounded-motion-serifed', VSAS = 12
Micro Sign (µ) with toothless (rounded) shape, and motion serifs at top-left and bottom-right
micro-sign = 'toothless-rounded-serifed', VSAT = 13
micro-sign = 'toothless-rounded-serifed', VSAS = 13
Micro Sign (µ) with toothless (rounded) shape, and serifs
- Styles for `❮`, `❯` (Decorative angle brackets (U+276C...U+2771))
3 variants - + - + - +
decorative-angle-brackets = 'tall', VSAU = 1
decorative-angle-brackets = 'tall', VSAT = 1
Tall decorative angle brackets, sharing same height as conventional brackets
decorative-angle-brackets = 'middle', VSAU = 2
decorative-angle-brackets = 'middle', VSAT = 2
Middle-height decorative angle brackets (default)
decorative-angle-brackets = 'short', VSAU = 3
decorative-angle-brackets = 'short', VSAT = 3
Short decorative angle brackets, sharing same height as guillemts
- Styles for `<=`, `>=` (Less-equal and Greater-equal ligations) diff --git a/doc/cv-influences.md b/doc/cv-influences.md index 7ed88f29c..bc099ae52 100644 --- a/doc/cv-influences.md +++ b/doc/cv-influences.md @@ -273,134 +273,174 @@ - `cv68`: - Γ (`U+0393`), Ϝ (`U+03DC`), Ѓ (`U+0403`), Г (`U+0413`), г (`U+0433`), ѓ (`U+0453`), Ґ (`U+0490`), ґ (`U+0491`), Ғ (`U+0492`), ғ (`U+0493`), Ҕ (`U+0494`), ҕ (`U+0495`), Ҥ (`U+04A4`), ҥ (`U+04A5`), Ӷ (`U+04F6`), ӷ (`U+04F7`), Ӻ (`U+04FA`), ӻ (`U+04FB`), ᴦ (`U+1D26`), ⷢ (`U+2DE2`), Ꙣ (`U+A662`), ꙣ (`U+A663`), Ꙥ (`U+A664`), ꙥ (`U+A665`), Ꙧ (`U+A666`), ꙧ (`U+A667`), 𝚪 (`U+1D6AA`), 𝛤 (`U+1D6E4`), 𝜞 (`U+1D71E`), 𝝘 (`U+1D758`), 𝞒 (`U+1D792`), 𝟊 (`U+1D7CA`), 𞀳 (`U+1E033`), 𞁔 (`U+1E054`), 𞁧 (`U+1E067`) + β (`U+03B2`), ᵝ (`U+1D5D`), ᵦ (`U+1D66`), 𝛃 (`U+1D6C3`), 𝛽 (`U+1D6FD`), 𝜷 (`U+1D737`), 𝝱 (`U+1D771`), 𝞫 (`U+1D7AB`) - `cv69`: - Δ (`U+0394`), ∆ (`U+2206`), ∇ (`U+2207`), ⍋ (`U+234B`), ⍍ (`U+234D`), ⍒ (`U+2352`), ⍔ (`U+2354`), ⍙ (`U+2359`), ⍢ (`U+2362`), ⍫ (`U+236B`), Ꙙ (`U+A658`), ꙙ (`U+A659`), Ꙝ (`U+A65C`), ꙝ (`U+A65D`), 𝚫 (`U+1D6AB`), 𝛁 (`U+1D6C1`), 𝛥 (`U+1D6E5`), 𝛻 (`U+1D6FB`), 𝜟 (`U+1D71F`), 𝜵 (`U+1D735`), 𝝙 (`U+1D759`), 𝝯 (`U+1D76F`), 𝞓 (`U+1D793`), 𝞩 (`U+1D7A9`) + Γ (`U+0393`), Ϝ (`U+03DC`), Ѓ (`U+0403`), Г (`U+0413`), г (`U+0433`), ѓ (`U+0453`), Ґ (`U+0490`), ґ (`U+0491`), Ғ (`U+0492`), ғ (`U+0493`), Ҕ (`U+0494`), ҕ (`U+0495`), Ҥ (`U+04A4`), ҥ (`U+04A5`), Ӷ (`U+04F6`), ӷ (`U+04F7`), Ӻ (`U+04FA`), ӻ (`U+04FB`), ᴦ (`U+1D26`), ⷢ (`U+2DE2`), Ꙣ (`U+A662`), ꙣ (`U+A663`), Ꙥ (`U+A664`), ꙥ (`U+A665`), Ꙧ (`U+A666`), ꙧ (`U+A667`), 𝚪 (`U+1D6AA`), 𝛤 (`U+1D6E4`), 𝜞 (`U+1D71E`), 𝝘 (`U+1D758`), 𝞒 (`U+1D792`), 𝟊 (`U+1D7CA`), 𞀳 (`U+1E033`), 𞁔 (`U+1E054`), 𞁧 (`U+1E067`) - `cv70`: - ƍ (`U+018D`), δ (`U+03B4`), ᵟ (`U+1D5F`), ẟ (`U+1E9F`), 𝛅 (`U+1D6C5`), 𝛿 (`U+1D6FF`), 𝜹 (`U+1D739`), 𝝳 (`U+1D773`), 𝞭 (`U+1D7AD`) + γ (`U+03B3`), ᵞ (`U+1D5E`), ᵧ (`U+1D67`), 𝛄 (`U+1D6C4`), 𝛾 (`U+1D6FE`), 𝜸 (`U+1D738`), 𝝲 (`U+1D772`), 𝞬 (`U+1D7AC`) - `cv71`: - Ɩ (`U+0196`), ɩ (`U+0269`), ΐ (`U+0390`), ί (`U+03AF`), ι (`U+03B9`), ϊ (`U+03CA`), ᵼ (`U+1D7C`), ᶥ (`U+1DA5`), ἰ (`U+1F30`), ἱ (`U+1F31`), ἲ (`U+1F32`), ἳ (`U+1F33`), ἴ (`U+1F34`), ἵ (`U+1F35`), ἶ (`U+1F36`), ἷ (`U+1F37`), ὶ (`U+1F76`), ί (`U+1F77`), ῐ (`U+1FD0`), ῑ (`U+1FD1`), ῒ (`U+1FD2`), ΐ (`U+1FD3`), ῖ (`U+1FD6`), ῗ (`U+1FD7`), ℩ (`U+2129`), ⍳ (`U+2373`), ⍸ (`U+2378`), Ꙇ (`U+A646`), ꙇ (`U+A647`), 𝛊 (`U+1D6CA`), 𝜄 (`U+1D704`), 𝜾 (`U+1D73E`), 𝝸 (`U+1D778`), 𝞲 (`U+1D7B2`) + Δ (`U+0394`), ∆ (`U+2206`), ∇ (`U+2207`), ⍋ (`U+234B`), ⍍ (`U+234D`), ⍒ (`U+2352`), ⍔ (`U+2354`), ⍙ (`U+2359`), ⍢ (`U+2362`), ⍫ (`U+236B`), Ꙙ (`U+A658`), ꙙ (`U+A659`), Ꙝ (`U+A65C`), ꙝ (`U+A65D`), 𝚫 (`U+1D6AB`), 𝛁 (`U+1D6C1`), 𝛥 (`U+1D6E5`), 𝛻 (`U+1D6FB`), 𝜟 (`U+1D71F`), 𝜵 (`U+1D735`), 𝝙 (`U+1D759`), 𝝯 (`U+1D76F`), 𝞓 (`U+1D793`), 𝞩 (`U+1D7A9`) - `cv72`: - Λ (`U+039B`), Ѧ (`U+0466`), ѧ (`U+0467`), Ѩ (`U+0468`), ѩ (`U+0469`), ᴧ (`U+1D27`), ⷽ (`U+2DFD`), Ꙟ (`U+A65E`), ꙟ (`U+A65F`), Ꟛ (`U+A7DA`), Ƛ (`U+A7DC`), 𝚲 (`U+1D6B2`), 𝛬 (`U+1D6EC`), 𝜦 (`U+1D726`), 𝝠 (`U+1D760`), 𝞚 (`U+1D79A`) + ƍ (`U+018D`), δ (`U+03B4`), ᵟ (`U+1D5F`), ẟ (`U+1E9F`), 𝛅 (`U+1D6C5`), 𝛿 (`U+1D6FF`), 𝜹 (`U+1D739`), 𝝳 (`U+1D773`), 𝞭 (`U+1D7AD`) - `cv73`: - ƛ (`U+019B`), λ (`U+03BB`), ꟛ (`U+A7DB`), 𝛌 (`U+1D6CC`), 𝜆 (`U+1D706`), 𝝀 (`U+1D740`), 𝝺 (`U+1D77A`), 𝞴 (`U+1D7B4`) + θ (`U+03B8`), ᶿ (`U+1DBF`), 𝛉 (`U+1D6C9`), 𝜃 (`U+1D703`), 𝜽 (`U+1D73D`), 𝝷 (`U+1D777`), 𝞱 (`U+1D7B1`) - `cv74`: - μ (`U+03BC`), 𝛍 (`U+1D6CD`), 𝜇 (`U+1D707`), 𝝁 (`U+1D741`), 𝝻 (`U+1D77B`), 𝞵 (`U+1D7B5`) + Ɩ (`U+0196`), ɩ (`U+0269`), ΐ (`U+0390`), ί (`U+03AF`), ι (`U+03B9`), ϊ (`U+03CA`), ᵼ (`U+1D7C`), ᶥ (`U+1DA5`), ἰ (`U+1F30`), ἱ (`U+1F31`), ἲ (`U+1F32`), ἳ (`U+1F33`), ἴ (`U+1F34`), ἵ (`U+1F35`), ἶ (`U+1F36`), ἷ (`U+1F37`), ὶ (`U+1F76`), ί (`U+1F77`), ῐ (`U+1FD0`), ῑ (`U+1FD1`), ῒ (`U+1FD2`), ΐ (`U+1FD3`), ῖ (`U+1FD6`), ῗ (`U+1FD7`), ℩ (`U+2129`), ⍳ (`U+2373`), ⍸ (`U+2378`), Ꙇ (`U+A646`), ꙇ (`U+A647`), 𝛊 (`U+1D6CA`), 𝜄 (`U+1D704`), 𝜾 (`U+1D73E`), 𝝸 (`U+1D778`), 𝞲 (`U+1D7B2`) - `cv75`: - ξ (`U+03BE`), 𝛏 (`U+1D6CF`), 𝜉 (`U+1D709`), 𝝃 (`U+1D743`), 𝝽 (`U+1D77D`), 𝞷 (`U+1D7B7`) + Λ (`U+039B`), Ѧ (`U+0466`), ѧ (`U+0467`), Ѩ (`U+0468`), ѩ (`U+0469`), ᴧ (`U+1D27`), ⷽ (`U+2DFD`), Ꙟ (`U+A65E`), ꙟ (`U+A65F`), Ꟛ (`U+A7DA`), Ƛ (`U+A7DC`), 𝚲 (`U+1D6B2`), 𝛬 (`U+1D6EC`), 𝜦 (`U+1D726`), 𝝠 (`U+1D760`), 𝞚 (`U+1D79A`) - `cv76`: - π (`U+03C0`), 𝛑 (`U+1D6D1`), 𝜋 (`U+1D70B`), 𝝅 (`U+1D745`), 𝝿 (`U+1D77F`), 𝞹 (`U+1D7B9`) + ƛ (`U+019B`), λ (`U+03BB`), ꟛ (`U+A7DB`), 𝛌 (`U+1D6CC`), 𝜆 (`U+1D706`), 𝝀 (`U+1D740`), 𝝺 (`U+1D77A`), 𝞴 (`U+1D7B4`) - `cv77`: - τ (`U+03C4`), Ꚍ (`U+A68C`), ꚍ (`U+A68D`), 𝛕 (`U+1D6D5`), 𝜏 (`U+1D70F`), 𝝉 (`U+1D749`), 𝞃 (`U+1D783`), 𝞽 (`U+1D7BD`) + μ (`U+03BC`), 𝛍 (`U+1D6CD`), 𝜇 (`U+1D707`), 𝝁 (`U+1D741`), 𝝻 (`U+1D77B`), 𝞵 (`U+1D7B5`) - `cv78`: - χ (`U+03C7`), ᵡ (`U+1D61`), ᵪ (`U+1D6A`), 𝛘 (`U+1D6D8`), 𝜒 (`U+1D712`), 𝝌 (`U+1D74C`), 𝞆 (`U+1D786`), 𝟀 (`U+1D7C0`) + ν (`U+03BD`), 𝛎 (`U+1D6CE`), 𝜈 (`U+1D708`), 𝝂 (`U+1D742`), 𝝼 (`U+1D77C`), 𝞶 (`U+1D7B6`) - `cv79`: - а (`U+0430`), ӑ (`U+04D1`), ӓ (`U+04D3`), ӕ (`U+04D5`), ⷶ (`U+2DF6`), ⷼ (`U+2DFC`), ꙗ (`U+A657`), 𞀰 (`U+1E030`), 𞁑 (`U+1E051`) + ξ (`U+03BE`), 𝛏 (`U+1D6CF`), 𝜉 (`U+1D709`), 𝝃 (`U+1D743`), 𝝽 (`U+1D77D`), 𝞷 (`U+1D7B7`) - `cv80`: - в (`U+0432`), ⷡ (`U+2DE1`), 𞀲 (`U+1E032`), 𞁓 (`U+1E053`) + π (`U+03C0`), 𝛑 (`U+1D6D1`), 𝜋 (`U+1D70B`), 𝝅 (`U+1D745`), 𝝿 (`U+1D77F`), 𝞹 (`U+1D7B9`) - `cv81`: - Ж (`U+0416`), Җ (`U+0496`), Ӂ (`U+04C1`), Ӝ (`U+04DC`), Ԫ (`U+052A`), Ꚅ (`U+A684`) + τ (`U+03C4`), Ꚍ (`U+A68C`), ꚍ (`U+A68D`), 𝛕 (`U+1D6D5`), 𝜏 (`U+1D70F`), 𝝉 (`U+1D749`), 𝞃 (`U+1D783`), 𝞽 (`U+1D7BD`) - `cv82`: - ж (`U+0436`), җ (`U+0497`), ӂ (`U+04C2`), ӝ (`U+04DD`), ԫ (`U+052B`), ⷤ (`U+2DE4`), ꚅ (`U+A685`), 𞀶 (`U+1E036`), 𞁗 (`U+1E057`) + ΰ (`U+03B0`), υ (`U+03C5`), ϋ (`U+03CB`), ύ (`U+03CD`), ὐ (`U+1F50`), ὑ (`U+1F51`), ὒ (`U+1F52`), ὓ (`U+1F53`), ὔ (`U+1F54`), ὕ (`U+1F55`), ὖ (`U+1F56`), ὗ (`U+1F57`), ὺ (`U+1F7A`), ύ (`U+1F7B`), ῠ (`U+1FE0`), ῡ (`U+1FE1`), ῢ (`U+1FE2`), ΰ (`U+1FE3`), ῦ (`U+1FE6`), ῧ (`U+1FE7`), 𝛖 (`U+1D6D6`), 𝜐 (`U+1D710`), 𝝊 (`U+1D74A`), 𝞄 (`U+1D784`), 𝞾 (`U+1D7BE`) - `cv83`: - Ɛ (`U+0190`), Ȝ (`U+021C`), З (`U+0417`), Ѯ (`U+046E`), Ҙ (`U+0498`), Ӟ (`U+04DE`), Ԅ (`U+0504`), Ԇ (`U+0506`), Ԑ (`U+0510`), ℇ (`U+2107`), Ꚅ (`U+A684`), Ꚉ (`U+A688`), Ɜ (`U+A7AB`) + φ (`U+03C6`), ᵠ (`U+1D60`), ᵩ (`U+1D69`), 𝛗 (`U+1D6D7`), 𝜑 (`U+1D711`), 𝝋 (`U+1D74B`), 𝞅 (`U+1D785`), 𝞿 (`U+1D7BF`) - `cv84`: - ȝ (`U+021D`), ɛ (`U+025B`), ɜ (`U+025C`), ɝ (`U+025D`), з (`U+0437`), ѯ (`U+046F`), ҙ (`U+0499`), ӟ (`U+04DF`), ԅ (`U+0505`), ԇ (`U+0507`), ԑ (`U+0511`), ᴈ (`U+1D08`), ᵋ (`U+1D4B`), ᵌ (`U+1D4C`), ᶓ (`U+1D93`), ᶔ (`U+1D94`), ᶟ (`U+1D9F`), ⷥ (`U+2DE5`), ꚅ (`U+A685`), ꚉ (`U+A689`), 𞀷 (`U+1E037`), 𞁊 (`U+1E04A`), 𞁘 (`U+1E058`) + χ (`U+03C7`), ᵡ (`U+1D61`), ᵪ (`U+1D6A`), 𝛘 (`U+1D6D8`), 𝜒 (`U+1D712`), 𝝌 (`U+1D74C`), 𝞆 (`U+1D786`), 𝟀 (`U+1D7C0`) - `cv85`: - Ќ (`U+040C`), К (`U+041A`), Қ (`U+049A`), Ҝ (`U+049C`), Ҟ (`U+049E`), Ҡ (`U+04A0`), Ӄ (`U+04C3`), Ԟ (`U+051E`) + ψ (`U+03C8`), ѱ (`U+0471`), 𝛙 (`U+1D6D9`), 𝜓 (`U+1D713`), 𝝍 (`U+1D74D`), 𝞇 (`U+1D787`), 𝟁 (`U+1D7C1`) - `cv86`: - к (`U+043A`), ќ (`U+045C`), қ (`U+049B`), ҝ (`U+049D`), ҟ (`U+049F`), ҡ (`U+04A1`), ӄ (`U+04C4`), ԟ (`U+051F`), ⷦ (`U+2DE6`), 𞀹 (`U+1E039`), 𞁚 (`U+1E05A`) + ∂ (`U+2202`), 𝛛 (`U+1D6DB`), 𝜕 (`U+1D715`), 𝝏 (`U+1D74F`), 𝞉 (`U+1D789`), 𝟃 (`U+1D7C3`) - `cv87`: - л (`U+043B`), ԡ (`U+0521`), ⷧ (`U+2DE7`), ꙥ (`U+A665`), 𞀺 (`U+1E03A`), 𞁛 (`U+1E05B`) + а (`U+0430`), ӑ (`U+04D1`), ӓ (`U+04D3`), ӕ (`U+04D5`), ⷶ (`U+2DF6`), ⷼ (`U+2DFC`), ꙗ (`U+A657`), 𞀰 (`U+1E030`), 𞁑 (`U+1E051`) - `cv88`: - м (`U+043C`), ӎ (`U+04CE`), ⷨ (`U+2DE8`), ꙧ (`U+A667`), 𞀻 (`U+1E03B`) + в (`U+0432`), ⷡ (`U+2DE1`), 𞀲 (`U+1E032`), 𞁓 (`U+1E053`) - `cv89`: - н (`U+043D`), њ (`U+045A`), ң (`U+04A3`), ҥ (`U+04A5`), ӈ (`U+04C8`), ӊ (`U+04CA`), ԋ (`U+050B`), ԣ (`U+0523`), ԩ (`U+0529`), ᵸ (`U+1D78`), ⷩ (`U+2DE9`) + Ж (`U+0416`), Җ (`U+0496`), Ӂ (`U+04C1`), Ӝ (`U+04DC`), Ԫ (`U+052A`), Ꚅ (`U+A684`) - `cv90`: - р (`U+0440`), ҏ (`U+048F`), ԗ (`U+0517`), ⷬ (`U+2DEC`), 𞀾 (`U+1E03E`) + ж (`U+0436`), җ (`U+0497`), ӂ (`U+04C2`), ӝ (`U+04DD`), ԫ (`U+052B`), ⷤ (`U+2DE4`), ꚅ (`U+A685`), 𞀶 (`U+1E036`), 𞁗 (`U+1E057`) - `cv91`: - Ў (`U+040E`), У (`U+0423`), Ү (`U+04AE`), Ұ (`U+04B0`), Ӯ (`U+04EE`), Ӱ (`U+04F0`), Ӳ (`U+04F2`) + Ɛ (`U+0190`), Ȝ (`U+021C`), З (`U+0417`), Ѯ (`U+046E`), Ҙ (`U+0498`), Ӟ (`U+04DE`), Ԅ (`U+0504`), Ԇ (`U+0506`), Ԑ (`U+0510`), ℇ (`U+2107`), Ꚅ (`U+A684`), Ꚉ (`U+A688`), Ɜ (`U+A7AB`) - `cv92`: - у (`U+0443`), ў (`U+045E`), Ѹ (`U+0478`), ѹ (`U+0479`), ү (`U+04AF`), ұ (`U+04B1`), ӯ (`U+04EF`), ӱ (`U+04F1`), ӳ (`U+04F3`), ꙷ (`U+A677`), 𞁁 (`U+1E041`), 𞁏 (`U+1E04F`), 𞁟 (`U+1E05F`), 𞁭 (`U+1E06D`) + ȝ (`U+021D`), ɛ (`U+025B`), ɜ (`U+025C`), ɝ (`U+025D`), з (`U+0437`), ѯ (`U+046F`), ҙ (`U+0499`), ӟ (`U+04DF`), ԅ (`U+0505`), ԇ (`U+0507`), ԑ (`U+0511`), ᴈ (`U+1D08`), ᵋ (`U+1D4B`), ᵌ (`U+1D4C`), ᶓ (`U+1D93`), ᶔ (`U+1D94`), ᶟ (`U+1D9F`), ⷥ (`U+2DE5`), ꚅ (`U+A685`), ꚉ (`U+A689`), 𞀷 (`U+1E037`), 𞁊 (`U+1E04A`), 𞁘 (`U+1E058`) - `cv93`: - ф (`U+0444`), ꚞ (`U+A69E`), 𞁂 (`U+1E042`), 𞁠 (`U+1E060`) + Ќ (`U+040C`), К (`U+041A`), Қ (`U+049A`), Ҝ (`U+049C`), Ҟ (`U+049E`), Ҡ (`U+04A0`), Ӄ (`U+04C3`), Ԟ (`U+051E`) - `cv94`: - ч (`U+0447`), ҹ (`U+04B9`), ӵ (`U+04F5`), ⷱ (`U+2DF1`), ꚇ (`U+A687`), ꚓ (`U+A693`), 𞁅 (`U+1E045`), 𞁣 (`U+1E063`) + к (`U+043A`), ќ (`U+045C`), қ (`U+049B`), ҝ (`U+049D`), ҟ (`U+049F`), ҡ (`U+04A1`), ӄ (`U+04C4`), ԟ (`U+051F`), ⷦ (`U+2DE6`), 𞀹 (`U+1E039`), 𞁚 (`U+1E05A`) - `cv95`: - ƅ (`U+0185`), ъ (`U+044A`), ь (`U+044C`), љ (`U+0459`), њ (`U+045A`), ѣ (`U+0463`), ҍ (`U+048D`), ᲆ (`U+1C86`), ᲇ (`U+1C87`), ᲊ (`U+1C8A`), ⷺ (`U+2DFA`), ꙏ (`U+A64F`), ꙓ (`U+A653`), ꙸ (`U+A678`), ꙺ (`U+A67A`), ꚜ (`U+A69C`), ꚝ (`U+A69D`), ꭠ (`U+AB60`), 𞁥 (`U+1E065`) + л (`U+043B`), ԡ (`U+0521`), ⷧ (`U+2DE7`), ꙥ (`U+A665`), 𞀺 (`U+1E03A`), 𞁛 (`U+1E05B`) - `cv96`: - ы (`U+044B`), ӹ (`U+04F9`), ꙑ (`U+A651`), ꙕ (`U+A655`), ꙹ (`U+A679`), 𞁇 (`U+1E047`), 𞁦 (`U+1E066`), 𞁬 (`U+1E06C`) + м (`U+043C`), ӎ (`U+04CE`), ⷨ (`U+2DE8`), ꙧ (`U+A667`), 𞀻 (`U+1E03B`) - `cv97`: - Є (`U+0404`), Э (`U+042D`), Ѥ (`U+0464`), Ә (`U+04D8`), Ӛ (`U+04DA`), Ӭ (`U+04EC`), € (`U+20AC`), ℈ (`U+2108`) + Њ (`U+040A`), Н (`U+041D`), Ң (`U+04A2`), Ҥ (`U+04A4`), Ӈ (`U+04C7`), Ӊ (`U+04C9`), Ԋ (`U+050A`), Ԣ (`U+0522`), Ԩ (`U+0528`) - `cv98`: - э (`U+044D`), є (`U+0454`), ѥ (`U+0465`), ә (`U+04D9`), ӛ (`U+04DB`), ӭ (`U+04ED`), ꙴ (`U+A674`), ꚟ (`U+A69F`), 𞁈 (`U+1E048`), 𞁋 (`U+1E04B`) + н (`U+043D`), њ (`U+045A`), ң (`U+04A3`), ҥ (`U+04A5`), ӈ (`U+04C8`), ӊ (`U+04CA`), ԋ (`U+050B`), ԣ (`U+0523`), ԩ (`U+0529`), ᵸ (`U+1D78`), ⷩ (`U+2DE9`) - `cv99`: - Я (`U+042F`), Ԙ (`U+0518`) + Ρ (`U+03A1`), Р (`U+0420`), Ҏ (`U+048E`), Ԗ (`U+0516`), ᴩ (`U+1D29`), Ῥ (`U+1FEC`), ₽ (`U+20BD`), 𝚸 (`U+1D6B8`), 𝛲 (`U+1D6F2`), 𝜬 (`U+1D72C`), 𝝦 (`U+1D766`), 𝞠 (`U+1D7A0`) - `VAAA`: + р (`U+0440`), ҏ (`U+048F`), ԗ (`U+0517`), ⷬ (`U+2DEC`), 𞀾 (`U+1E03E`) + +- `VAAB`: + + Ў (`U+040E`), У (`U+0423`), Ү (`U+04AE`), Ұ (`U+04B0`), Ӯ (`U+04EE`), Ӱ (`U+04F0`), Ӳ (`U+04F2`) + +- `VAAC`: + + у (`U+0443`), ў (`U+045E`), Ѹ (`U+0478`), ѹ (`U+0479`), ү (`U+04AF`), ұ (`U+04B1`), ӯ (`U+04EF`), ӱ (`U+04F1`), ӳ (`U+04F3`), ꙷ (`U+A677`), 𞁁 (`U+1E041`), 𞁏 (`U+1E04F`), 𞁟 (`U+1E05F`), 𞁭 (`U+1E06D`) + +- `VAAD`: + + ф (`U+0444`), ꚞ (`U+A69E`), 𞁂 (`U+1E042`), 𞁠 (`U+1E060`) + +- `VAAE`: + + ч (`U+0447`), ҹ (`U+04B9`), ӵ (`U+04F5`), ⷱ (`U+2DF1`), ꚇ (`U+A687`), ꚓ (`U+A693`), ꭋ (`U+AB4B`), 𞁅 (`U+1E045`), 𞁣 (`U+1E063`) + +- `VAAF`: + + ƅ (`U+0185`), ъ (`U+044A`), ь (`U+044C`), љ (`U+0459`), њ (`U+045A`), ѣ (`U+0463`), ҍ (`U+048D`), ᲆ (`U+1C86`), ᲇ (`U+1C87`), ᲊ (`U+1C8A`), ⷺ (`U+2DFA`), ꙏ (`U+A64F`), ꙓ (`U+A653`), ꙸ (`U+A678`), ꙺ (`U+A67A`), ꚜ (`U+A69C`), ꚝ (`U+A69D`), ꭠ (`U+AB60`), 𞁥 (`U+1E065`) + +- `VAAG`: + + ы (`U+044B`), ӹ (`U+04F9`), ꙑ (`U+A651`), ꙕ (`U+A655`), ꙹ (`U+A679`), 𞁇 (`U+1E047`), 𞁦 (`U+1E066`), 𞁬 (`U+1E06C`) + +- `VAAH`: + + Є (`U+0404`), Э (`U+042D`), Ѥ (`U+0464`), Ә (`U+04D8`), Ӛ (`U+04DA`), Ӭ (`U+04EC`), € (`U+20AC`), ℈ (`U+2108`) + +- `VAAI`: + + э (`U+044D`), є (`U+0454`), ѥ (`U+0465`), ә (`U+04D9`), ӛ (`U+04DB`), ӭ (`U+04ED`), ꙴ (`U+A674`), ꚟ (`U+A69F`), 𞁈 (`U+1E048`), 𞁋 (`U+1E04B`) + +- `VAAJ`: + + Я (`U+042F`), Ԙ (`U+0518`) + +- `VAAK`: + я (`U+044F`), ԙ (`U+0519`) - `VDAA`: @@ -489,48 +529,12 @@ - `VSAS`: - ∂ (`U+2202`), 𝛛 (`U+1D6DB`), 𝜕 (`U+1D715`), 𝝏 (`U+1D74F`), 𝞉 (`U+1D789`), 𝟃 (`U+1D7C3`) + µ (`U+00B5`) - `VSAT`: - µ (`U+00B5`) - -- `VSAU`: - ❬ (`U+276C`), ❭ (`U+276D`), ❮ (`U+276E`), ❯ (`U+276F`), ❰ (`U+2770`), ❱ (`U+2771`) -- `VXAA`: - - Њ (`U+040A`), Н (`U+041D`), Ң (`U+04A2`), Ҥ (`U+04A4`), Ӈ (`U+04C7`), Ӊ (`U+04C9`), Ԋ (`U+050A`), Ԣ (`U+0522`), Ԩ (`U+0528`) - -- `VXAB`: - - Ρ (`U+03A1`), Р (`U+0420`), Ҏ (`U+048E`), Ԗ (`U+0516`), ᴩ (`U+1D29`), Ῥ (`U+1FEC`), ₽ (`U+20BD`), 𝚸 (`U+1D6B8`), 𝛲 (`U+1D6F2`), 𝜬 (`U+1D72C`), 𝝦 (`U+1D766`), 𝞠 (`U+1D7A0`) - -- `VXAC`: - - β (`U+03B2`), ᵝ (`U+1D5D`), ᵦ (`U+1D66`), 𝛃 (`U+1D6C3`), 𝛽 (`U+1D6FD`), 𝜷 (`U+1D737`), 𝝱 (`U+1D771`), 𝞫 (`U+1D7AB`) - -- `VXAD`: - - γ (`U+03B3`), ᵞ (`U+1D5E`), ᵧ (`U+1D67`), 𝛄 (`U+1D6C4`), 𝛾 (`U+1D6FE`), 𝜸 (`U+1D738`), 𝝲 (`U+1D772`), 𝞬 (`U+1D7AC`) - -- `VXAE`: - - ν (`U+03BD`), 𝛎 (`U+1D6CE`), 𝜈 (`U+1D708`), 𝝂 (`U+1D742`), 𝝼 (`U+1D77C`), 𝞶 (`U+1D7B6`) - -- `VXAF`: - - ΰ (`U+03B0`), υ (`U+03C5`), ϋ (`U+03CB`), ύ (`U+03CD`), ὐ (`U+1F50`), ὑ (`U+1F51`), ὒ (`U+1F52`), ὓ (`U+1F53`), ὔ (`U+1F54`), ὕ (`U+1F55`), ὖ (`U+1F56`), ὗ (`U+1F57`), ὺ (`U+1F7A`), ύ (`U+1F7B`), ῠ (`U+1FE0`), ῡ (`U+1FE1`), ῢ (`U+1FE2`), ΰ (`U+1FE3`), ῦ (`U+1FE6`), ῧ (`U+1FE7`), 𝛖 (`U+1D6D6`), 𝜐 (`U+1D710`), 𝝊 (`U+1D74A`), 𝞄 (`U+1D784`), 𝞾 (`U+1D7BE`) - -- `VXAG`: - - φ (`U+03C6`), ᵠ (`U+1D60`), ᵩ (`U+1D69`), 𝛗 (`U+1D6D7`), 𝜑 (`U+1D711`), 𝝋 (`U+1D74B`), 𝞅 (`U+1D785`), 𝞿 (`U+1D7BF`) - -- `VXAH`: - - ψ (`U+03C8`), ѱ (`U+0471`), 𝛙 (`U+1D6D9`), 𝜓 (`U+1D713`), 𝝍 (`U+1D74D`), 𝞇 (`U+1D787`), 𝟁 (`U+1D7C1`) - ### Italic CV influences @@ -804,134 +808,174 @@ - `cv68`: - Γ (`U+0393`), Ϝ (`U+03DC`), Ѓ (`U+0403`), Г (`U+0413`), Ґ (`U+0490`), ґ (`U+0491`), Ғ (`U+0492`), Ҕ (`U+0494`), ҕ (`U+0495`), Ҥ (`U+04A4`), ҥ (`U+04A5`), Ӷ (`U+04F6`), Ӻ (`U+04FA`), ᴦ (`U+1D26`), Ꙣ (`U+A662`), ꙣ (`U+A663`), Ꙥ (`U+A664`), ꙥ (`U+A665`), Ꙧ (`U+A666`), ꙧ (`U+A667`), 𝚪 (`U+1D6AA`), 𝛤 (`U+1D6E4`), 𝜞 (`U+1D71E`), 𝝘 (`U+1D758`), 𝞒 (`U+1D792`), 𝟊 (`U+1D7CA`), 𞁧 (`U+1E067`) + β (`U+03B2`), ᵝ (`U+1D5D`), ᵦ (`U+1D66`), 𝛃 (`U+1D6C3`), 𝛽 (`U+1D6FD`), 𝜷 (`U+1D737`), 𝝱 (`U+1D771`), 𝞫 (`U+1D7AB`) - `cv69`: - Δ (`U+0394`), ∆ (`U+2206`), ∇ (`U+2207`), ⍋ (`U+234B`), ⍍ (`U+234D`), ⍒ (`U+2352`), ⍔ (`U+2354`), ⍙ (`U+2359`), ⍢ (`U+2362`), ⍫ (`U+236B`), Ꙙ (`U+A658`), ꙙ (`U+A659`), Ꙝ (`U+A65C`), ꙝ (`U+A65D`), 𝚫 (`U+1D6AB`), 𝛁 (`U+1D6C1`), 𝛥 (`U+1D6E5`), 𝛻 (`U+1D6FB`), 𝜟 (`U+1D71F`), 𝜵 (`U+1D735`), 𝝙 (`U+1D759`), 𝝯 (`U+1D76F`), 𝞓 (`U+1D793`), 𝞩 (`U+1D7A9`) + Γ (`U+0393`), Ϝ (`U+03DC`), Ѓ (`U+0403`), Г (`U+0413`), Ґ (`U+0490`), ґ (`U+0491`), Ғ (`U+0492`), Ҕ (`U+0494`), ҕ (`U+0495`), Ҥ (`U+04A4`), ҥ (`U+04A5`), Ӷ (`U+04F6`), Ӻ (`U+04FA`), ᴦ (`U+1D26`), Ꙣ (`U+A662`), ꙣ (`U+A663`), Ꙥ (`U+A664`), ꙥ (`U+A665`), Ꙧ (`U+A666`), ꙧ (`U+A667`), 𝚪 (`U+1D6AA`), 𝛤 (`U+1D6E4`), 𝜞 (`U+1D71E`), 𝝘 (`U+1D758`), 𝞒 (`U+1D792`), 𝟊 (`U+1D7CA`), 𞁧 (`U+1E067`) - `cv70`: - ƍ (`U+018D`), δ (`U+03B4`), ᵟ (`U+1D5F`), ẟ (`U+1E9F`), 𝛅 (`U+1D6C5`), 𝛿 (`U+1D6FF`), 𝜹 (`U+1D739`), 𝝳 (`U+1D773`), 𝞭 (`U+1D7AD`) + γ (`U+03B3`), ᵞ (`U+1D5E`), ᵧ (`U+1D67`), 𝛄 (`U+1D6C4`), 𝛾 (`U+1D6FE`), 𝜸 (`U+1D738`), 𝝲 (`U+1D772`), 𝞬 (`U+1D7AC`) - `cv71`: - Ɩ (`U+0196`), ɩ (`U+0269`), ΐ (`U+0390`), ί (`U+03AF`), ι (`U+03B9`), ϊ (`U+03CA`), ᵼ (`U+1D7C`), ᶥ (`U+1DA5`), ἰ (`U+1F30`), ἱ (`U+1F31`), ἲ (`U+1F32`), ἳ (`U+1F33`), ἴ (`U+1F34`), ἵ (`U+1F35`), ἶ (`U+1F36`), ἷ (`U+1F37`), ὶ (`U+1F76`), ί (`U+1F77`), ῐ (`U+1FD0`), ῑ (`U+1FD1`), ῒ (`U+1FD2`), ΐ (`U+1FD3`), ῖ (`U+1FD6`), ῗ (`U+1FD7`), ℩ (`U+2129`), ⍳ (`U+2373`), ⍸ (`U+2378`), Ꙇ (`U+A646`), ꙇ (`U+A647`), 𝛊 (`U+1D6CA`), 𝜄 (`U+1D704`), 𝜾 (`U+1D73E`), 𝝸 (`U+1D778`), 𝞲 (`U+1D7B2`) + Δ (`U+0394`), ∆ (`U+2206`), ∇ (`U+2207`), ⍋ (`U+234B`), ⍍ (`U+234D`), ⍒ (`U+2352`), ⍔ (`U+2354`), ⍙ (`U+2359`), ⍢ (`U+2362`), ⍫ (`U+236B`), Ꙙ (`U+A658`), ꙙ (`U+A659`), Ꙝ (`U+A65C`), ꙝ (`U+A65D`), 𝚫 (`U+1D6AB`), 𝛁 (`U+1D6C1`), 𝛥 (`U+1D6E5`), 𝛻 (`U+1D6FB`), 𝜟 (`U+1D71F`), 𝜵 (`U+1D735`), 𝝙 (`U+1D759`), 𝝯 (`U+1D76F`), 𝞓 (`U+1D793`), 𝞩 (`U+1D7A9`) - `cv72`: - Λ (`U+039B`), Ѧ (`U+0466`), ѧ (`U+0467`), Ѩ (`U+0468`), ѩ (`U+0469`), ᴧ (`U+1D27`), ⷽ (`U+2DFD`), Ꙟ (`U+A65E`), ꙟ (`U+A65F`), Ꟛ (`U+A7DA`), Ƛ (`U+A7DC`), 𝚲 (`U+1D6B2`), 𝛬 (`U+1D6EC`), 𝜦 (`U+1D726`), 𝝠 (`U+1D760`), 𝞚 (`U+1D79A`) + ƍ (`U+018D`), δ (`U+03B4`), ᵟ (`U+1D5F`), ẟ (`U+1E9F`), 𝛅 (`U+1D6C5`), 𝛿 (`U+1D6FF`), 𝜹 (`U+1D739`), 𝝳 (`U+1D773`), 𝞭 (`U+1D7AD`) - `cv73`: - ƛ (`U+019B`), λ (`U+03BB`), ꟛ (`U+A7DB`), 𝛌 (`U+1D6CC`), 𝜆 (`U+1D706`), 𝝀 (`U+1D740`), 𝝺 (`U+1D77A`), 𝞴 (`U+1D7B4`) + θ (`U+03B8`), ᶿ (`U+1DBF`), 𝛉 (`U+1D6C9`), 𝜃 (`U+1D703`), 𝜽 (`U+1D73D`), 𝝷 (`U+1D777`), 𝞱 (`U+1D7B1`) - `cv74`: - μ (`U+03BC`), 𝛍 (`U+1D6CD`), 𝜇 (`U+1D707`), 𝝁 (`U+1D741`), 𝝻 (`U+1D77B`), 𝞵 (`U+1D7B5`) + Ɩ (`U+0196`), ɩ (`U+0269`), ΐ (`U+0390`), ί (`U+03AF`), ι (`U+03B9`), ϊ (`U+03CA`), ᵼ (`U+1D7C`), ᶥ (`U+1DA5`), ἰ (`U+1F30`), ἱ (`U+1F31`), ἲ (`U+1F32`), ἳ (`U+1F33`), ἴ (`U+1F34`), ἵ (`U+1F35`), ἶ (`U+1F36`), ἷ (`U+1F37`), ὶ (`U+1F76`), ί (`U+1F77`), ῐ (`U+1FD0`), ῑ (`U+1FD1`), ῒ (`U+1FD2`), ΐ (`U+1FD3`), ῖ (`U+1FD6`), ῗ (`U+1FD7`), ℩ (`U+2129`), ⍳ (`U+2373`), ⍸ (`U+2378`), Ꙇ (`U+A646`), ꙇ (`U+A647`), 𝛊 (`U+1D6CA`), 𝜄 (`U+1D704`), 𝜾 (`U+1D73E`), 𝝸 (`U+1D778`), 𝞲 (`U+1D7B2`) - `cv75`: - ξ (`U+03BE`), 𝛏 (`U+1D6CF`), 𝜉 (`U+1D709`), 𝝃 (`U+1D743`), 𝝽 (`U+1D77D`), 𝞷 (`U+1D7B7`) + Λ (`U+039B`), Ѧ (`U+0466`), ѧ (`U+0467`), Ѩ (`U+0468`), ѩ (`U+0469`), ᴧ (`U+1D27`), ⷽ (`U+2DFD`), Ꙟ (`U+A65E`), ꙟ (`U+A65F`), Ꟛ (`U+A7DA`), Ƛ (`U+A7DC`), 𝚲 (`U+1D6B2`), 𝛬 (`U+1D6EC`), 𝜦 (`U+1D726`), 𝝠 (`U+1D760`), 𝞚 (`U+1D79A`) - `cv76`: - π (`U+03C0`), 𝛑 (`U+1D6D1`), 𝜋 (`U+1D70B`), 𝝅 (`U+1D745`), 𝝿 (`U+1D77F`), 𝞹 (`U+1D7B9`) + ƛ (`U+019B`), λ (`U+03BB`), ꟛ (`U+A7DB`), 𝛌 (`U+1D6CC`), 𝜆 (`U+1D706`), 𝝀 (`U+1D740`), 𝝺 (`U+1D77A`), 𝞴 (`U+1D7B4`) - `cv77`: - τ (`U+03C4`), Ꚍ (`U+A68C`), ꚍ (`U+A68D`), 𝛕 (`U+1D6D5`), 𝜏 (`U+1D70F`), 𝝉 (`U+1D749`), 𝞃 (`U+1D783`), 𝞽 (`U+1D7BD`) + μ (`U+03BC`), 𝛍 (`U+1D6CD`), 𝜇 (`U+1D707`), 𝝁 (`U+1D741`), 𝝻 (`U+1D77B`), 𝞵 (`U+1D7B5`) - `cv78`: - χ (`U+03C7`), ᵡ (`U+1D61`), ᵪ (`U+1D6A`), 𝛘 (`U+1D6D8`), 𝜒 (`U+1D712`), 𝝌 (`U+1D74C`), 𝞆 (`U+1D786`), 𝟀 (`U+1D7C0`) + ν (`U+03BD`), 𝛎 (`U+1D6CE`), 𝜈 (`U+1D708`), 𝝂 (`U+1D742`), 𝝼 (`U+1D77C`), 𝞶 (`U+1D7B6`) - `cv79`: - а (`U+0430`), ӑ (`U+04D1`), ӓ (`U+04D3`), ӕ (`U+04D5`), ⷶ (`U+2DF6`), ⷼ (`U+2DFC`), ꙗ (`U+A657`), 𞀰 (`U+1E030`), 𞁑 (`U+1E051`) + ξ (`U+03BE`), 𝛏 (`U+1D6CF`), 𝜉 (`U+1D709`), 𝝃 (`U+1D743`), 𝝽 (`U+1D77D`), 𝞷 (`U+1D7B7`) - `cv80`: - в (`U+0432`), ⷡ (`U+2DE1`), 𞀲 (`U+1E032`), 𞁓 (`U+1E053`) + π (`U+03C0`), 𝛑 (`U+1D6D1`), 𝜋 (`U+1D70B`), 𝝅 (`U+1D745`), 𝝿 (`U+1D77F`), 𝞹 (`U+1D7B9`) - `cv81`: - Ж (`U+0416`), Җ (`U+0496`), Ӂ (`U+04C1`), Ӝ (`U+04DC`), Ԫ (`U+052A`), Ꚅ (`U+A684`) + τ (`U+03C4`), Ꚍ (`U+A68C`), ꚍ (`U+A68D`), 𝛕 (`U+1D6D5`), 𝜏 (`U+1D70F`), 𝝉 (`U+1D749`), 𝞃 (`U+1D783`), 𝞽 (`U+1D7BD`) - `cv82`: - ж (`U+0436`), җ (`U+0497`), ӂ (`U+04C2`), ӝ (`U+04DD`), ԫ (`U+052B`), ⷤ (`U+2DE4`), ꚅ (`U+A685`), 𞀶 (`U+1E036`), 𞁗 (`U+1E057`) + ΰ (`U+03B0`), υ (`U+03C5`), ϋ (`U+03CB`), ύ (`U+03CD`), ὐ (`U+1F50`), ὑ (`U+1F51`), ὒ (`U+1F52`), ὓ (`U+1F53`), ὔ (`U+1F54`), ὕ (`U+1F55`), ὖ (`U+1F56`), ὗ (`U+1F57`), ὺ (`U+1F7A`), ύ (`U+1F7B`), ῠ (`U+1FE0`), ῡ (`U+1FE1`), ῢ (`U+1FE2`), ΰ (`U+1FE3`), ῦ (`U+1FE6`), ῧ (`U+1FE7`), 𝛖 (`U+1D6D6`), 𝜐 (`U+1D710`), 𝝊 (`U+1D74A`), 𝞄 (`U+1D784`), 𝞾 (`U+1D7BE`) - `cv83`: - Ɛ (`U+0190`), Ȝ (`U+021C`), З (`U+0417`), Ѯ (`U+046E`), Ҙ (`U+0498`), Ӟ (`U+04DE`), Ԅ (`U+0504`), Ԇ (`U+0506`), Ԑ (`U+0510`), ℇ (`U+2107`), Ꚅ (`U+A684`), Ꚉ (`U+A688`), Ɜ (`U+A7AB`) + φ (`U+03C6`), ᵠ (`U+1D60`), ᵩ (`U+1D69`), 𝛗 (`U+1D6D7`), 𝜑 (`U+1D711`), 𝝋 (`U+1D74B`), 𝞅 (`U+1D785`), 𝞿 (`U+1D7BF`) - `cv84`: - ȝ (`U+021D`), ɛ (`U+025B`), ɜ (`U+025C`), ɝ (`U+025D`), з (`U+0437`), ѯ (`U+046F`), ҙ (`U+0499`), ӟ (`U+04DF`), ԅ (`U+0505`), ԇ (`U+0507`), ԑ (`U+0511`), ᴈ (`U+1D08`), ᵋ (`U+1D4B`), ᵌ (`U+1D4C`), ᶓ (`U+1D93`), ᶔ (`U+1D94`), ᶟ (`U+1D9F`), ⷥ (`U+2DE5`), ꚅ (`U+A685`), ꚉ (`U+A689`), 𞀷 (`U+1E037`), 𞁊 (`U+1E04A`), 𞁘 (`U+1E058`) + χ (`U+03C7`), ᵡ (`U+1D61`), ᵪ (`U+1D6A`), 𝛘 (`U+1D6D8`), 𝜒 (`U+1D712`), 𝝌 (`U+1D74C`), 𝞆 (`U+1D786`), 𝟀 (`U+1D7C0`) - `cv85`: - Ќ (`U+040C`), К (`U+041A`), Қ (`U+049A`), Ҝ (`U+049C`), Ҟ (`U+049E`), Ҡ (`U+04A0`), Ӄ (`U+04C3`), Ԟ (`U+051E`) + ψ (`U+03C8`), ѱ (`U+0471`), 𝛙 (`U+1D6D9`), 𝜓 (`U+1D713`), 𝝍 (`U+1D74D`), 𝞇 (`U+1D787`), 𝟁 (`U+1D7C1`) - `cv86`: - к (`U+043A`), ќ (`U+045C`), қ (`U+049B`), ҝ (`U+049D`), ҟ (`U+049F`), ҡ (`U+04A1`), ӄ (`U+04C4`), ԟ (`U+051F`), ⷦ (`U+2DE6`), 𞀹 (`U+1E039`), 𞁚 (`U+1E05A`) + ∂ (`U+2202`), 𝛛 (`U+1D6DB`), 𝜕 (`U+1D715`), 𝝏 (`U+1D74F`), 𝞉 (`U+1D789`), 𝟃 (`U+1D7C3`) - `cv87`: - л (`U+043B`), ԡ (`U+0521`), ⷧ (`U+2DE7`), ꙥ (`U+A665`), 𞀺 (`U+1E03A`), 𞁛 (`U+1E05B`) + а (`U+0430`), ӑ (`U+04D1`), ӓ (`U+04D3`), ӕ (`U+04D5`), ⷶ (`U+2DF6`), ⷼ (`U+2DFC`), ꙗ (`U+A657`), 𞀰 (`U+1E030`), 𞁑 (`U+1E051`) - `cv88`: - м (`U+043C`), ӎ (`U+04CE`), ⷨ (`U+2DE8`), ꙧ (`U+A667`), 𞀻 (`U+1E03B`) + в (`U+0432`), ⷡ (`U+2DE1`), 𞀲 (`U+1E032`), 𞁓 (`U+1E053`) - `cv89`: - н (`U+043D`), њ (`U+045A`), ң (`U+04A3`), ҥ (`U+04A5`), ӈ (`U+04C8`), ӊ (`U+04CA`), ԋ (`U+050B`), ԣ (`U+0523`), ԩ (`U+0529`), ᵸ (`U+1D78`), ⷩ (`U+2DE9`) + Ж (`U+0416`), Җ (`U+0496`), Ӂ (`U+04C1`), Ӝ (`U+04DC`), Ԫ (`U+052A`), Ꚅ (`U+A684`) - `cv90`: - р (`U+0440`), ҏ (`U+048F`), ԗ (`U+0517`), ⷬ (`U+2DEC`), 𞀾 (`U+1E03E`) + ж (`U+0436`), җ (`U+0497`), ӂ (`U+04C2`), ӝ (`U+04DD`), ԫ (`U+052B`), ⷤ (`U+2DE4`), ꚅ (`U+A685`), 𞀶 (`U+1E036`), 𞁗 (`U+1E057`) - `cv91`: - Ў (`U+040E`), У (`U+0423`), Ү (`U+04AE`), Ұ (`U+04B0`), Ӯ (`U+04EE`), Ӱ (`U+04F0`), Ӳ (`U+04F2`) + Ɛ (`U+0190`), Ȝ (`U+021C`), З (`U+0417`), Ѯ (`U+046E`), Ҙ (`U+0498`), Ӟ (`U+04DE`), Ԅ (`U+0504`), Ԇ (`U+0506`), Ԑ (`U+0510`), ℇ (`U+2107`), Ꚅ (`U+A684`), Ꚉ (`U+A688`), Ɜ (`U+A7AB`) - `cv92`: - у (`U+0443`), ў (`U+045E`), Ѹ (`U+0478`), ѹ (`U+0479`), ү (`U+04AF`), ұ (`U+04B1`), ӯ (`U+04EF`), ӱ (`U+04F1`), ӳ (`U+04F3`), ꙷ (`U+A677`), 𞁁 (`U+1E041`), 𞁏 (`U+1E04F`), 𞁟 (`U+1E05F`), 𞁭 (`U+1E06D`) + ȝ (`U+021D`), ɛ (`U+025B`), ɜ (`U+025C`), ɝ (`U+025D`), з (`U+0437`), ѯ (`U+046F`), ҙ (`U+0499`), ӟ (`U+04DF`), ԅ (`U+0505`), ԇ (`U+0507`), ԑ (`U+0511`), ᴈ (`U+1D08`), ᵋ (`U+1D4B`), ᵌ (`U+1D4C`), ᶓ (`U+1D93`), ᶔ (`U+1D94`), ᶟ (`U+1D9F`), ⷥ (`U+2DE5`), ꚅ (`U+A685`), ꚉ (`U+A689`), 𞀷 (`U+1E037`), 𞁊 (`U+1E04A`), 𞁘 (`U+1E058`) - `cv93`: - ф (`U+0444`), ꚞ (`U+A69E`), 𞁂 (`U+1E042`), 𞁠 (`U+1E060`) + Ќ (`U+040C`), К (`U+041A`), Қ (`U+049A`), Ҝ (`U+049C`), Ҟ (`U+049E`), Ҡ (`U+04A0`), Ӄ (`U+04C3`), Ԟ (`U+051E`) - `cv94`: - ч (`U+0447`), ҹ (`U+04B9`), ӵ (`U+04F5`), ԭ (`U+052D`), ⷱ (`U+2DF1`), ꚇ (`U+A687`), ꚓ (`U+A693`), 𞁅 (`U+1E045`), 𞁣 (`U+1E063`) + к (`U+043A`), ќ (`U+045C`), қ (`U+049B`), ҝ (`U+049D`), ҟ (`U+049F`), ҡ (`U+04A1`), ӄ (`U+04C4`), ԟ (`U+051F`), ⷦ (`U+2DE6`), 𞀹 (`U+1E039`), 𞁚 (`U+1E05A`) - `cv95`: - ƅ (`U+0185`), ъ (`U+044A`), ь (`U+044C`), љ (`U+0459`), њ (`U+045A`), ѣ (`U+0463`), ҍ (`U+048D`), ᲆ (`U+1C86`), ᲇ (`U+1C87`), ᲊ (`U+1C8A`), ⷺ (`U+2DFA`), ꙏ (`U+A64F`), ꙓ (`U+A653`), ꙸ (`U+A678`), ꙺ (`U+A67A`), ꚜ (`U+A69C`), ꚝ (`U+A69D`), ꭠ (`U+AB60`), 𞁥 (`U+1E065`) + л (`U+043B`), ԡ (`U+0521`), ⷧ (`U+2DE7`), ꙥ (`U+A665`), 𞀺 (`U+1E03A`), 𞁛 (`U+1E05B`) - `cv96`: - ы (`U+044B`), ӹ (`U+04F9`), ꙑ (`U+A651`), ꙕ (`U+A655`), ꙹ (`U+A679`), 𞁇 (`U+1E047`), 𞁦 (`U+1E066`), 𞁬 (`U+1E06C`) + м (`U+043C`), ӎ (`U+04CE`), ⷨ (`U+2DE8`), ꙧ (`U+A667`), 𞀻 (`U+1E03B`) - `cv97`: - Є (`U+0404`), Э (`U+042D`), Ѥ (`U+0464`), Ә (`U+04D8`), Ӛ (`U+04DA`), Ӭ (`U+04EC`), € (`U+20AC`), ℈ (`U+2108`) + Њ (`U+040A`), Н (`U+041D`), Ң (`U+04A2`), Ҥ (`U+04A4`), Ӈ (`U+04C7`), Ӊ (`U+04C9`), Ԋ (`U+050A`), Ԣ (`U+0522`), Ԩ (`U+0528`) - `cv98`: - э (`U+044D`), є (`U+0454`), ѥ (`U+0465`), ә (`U+04D9`), ӛ (`U+04DB`), ӭ (`U+04ED`), ꙴ (`U+A674`), ꚟ (`U+A69F`), 𞁈 (`U+1E048`), 𞁋 (`U+1E04B`) + н (`U+043D`), њ (`U+045A`), ң (`U+04A3`), ҥ (`U+04A5`), ӈ (`U+04C8`), ӊ (`U+04CA`), ԋ (`U+050B`), ԣ (`U+0523`), ԩ (`U+0529`), ᵸ (`U+1D78`), ⷩ (`U+2DE9`) - `cv99`: - Я (`U+042F`), Ԙ (`U+0518`) + Ρ (`U+03A1`), Р (`U+0420`), Ҏ (`U+048E`), Ԗ (`U+0516`), ᴩ (`U+1D29`), Ῥ (`U+1FEC`), ₽ (`U+20BD`), 𝚸 (`U+1D6B8`), 𝛲 (`U+1D6F2`), 𝜬 (`U+1D72C`), 𝝦 (`U+1D766`), 𝞠 (`U+1D7A0`) - `VAAA`: + р (`U+0440`), ҏ (`U+048F`), ԗ (`U+0517`), ⷬ (`U+2DEC`), 𞀾 (`U+1E03E`) + +- `VAAB`: + + Ў (`U+040E`), У (`U+0423`), Ү (`U+04AE`), Ұ (`U+04B0`), Ӯ (`U+04EE`), Ӱ (`U+04F0`), Ӳ (`U+04F2`) + +- `VAAC`: + + у (`U+0443`), ў (`U+045E`), Ѹ (`U+0478`), ѹ (`U+0479`), ү (`U+04AF`), ұ (`U+04B1`), ӯ (`U+04EF`), ӱ (`U+04F1`), ӳ (`U+04F3`), ꙷ (`U+A677`), 𞁁 (`U+1E041`), 𞁏 (`U+1E04F`), 𞁟 (`U+1E05F`), 𞁭 (`U+1E06D`) + +- `VAAD`: + + ф (`U+0444`), ꚞ (`U+A69E`), 𞁂 (`U+1E042`), 𞁠 (`U+1E060`) + +- `VAAE`: + + ч (`U+0447`), ҹ (`U+04B9`), ӵ (`U+04F5`), ԭ (`U+052D`), ⷱ (`U+2DF1`), ꚇ (`U+A687`), ꚓ (`U+A693`), ꭋ (`U+AB4B`), 𞁅 (`U+1E045`), 𞁣 (`U+1E063`) + +- `VAAF`: + + ƅ (`U+0185`), ъ (`U+044A`), ь (`U+044C`), љ (`U+0459`), њ (`U+045A`), ѣ (`U+0463`), ҍ (`U+048D`), ᲆ (`U+1C86`), ᲇ (`U+1C87`), ᲊ (`U+1C8A`), ⷺ (`U+2DFA`), ꙏ (`U+A64F`), ꙓ (`U+A653`), ꙸ (`U+A678`), ꙺ (`U+A67A`), ꚜ (`U+A69C`), ꚝ (`U+A69D`), ꭠ (`U+AB60`), 𞁥 (`U+1E065`) + +- `VAAG`: + + ы (`U+044B`), ӹ (`U+04F9`), ꙑ (`U+A651`), ꙕ (`U+A655`), ꙹ (`U+A679`), 𞁇 (`U+1E047`), 𞁦 (`U+1E066`), 𞁬 (`U+1E06C`) + +- `VAAH`: + + Є (`U+0404`), Э (`U+042D`), Ѥ (`U+0464`), Ә (`U+04D8`), Ӛ (`U+04DA`), Ӭ (`U+04EC`), € (`U+20AC`), ℈ (`U+2108`) + +- `VAAI`: + + э (`U+044D`), є (`U+0454`), ѥ (`U+0465`), ә (`U+04D9`), ӛ (`U+04DB`), ӭ (`U+04ED`), ꙴ (`U+A674`), ꚟ (`U+A69F`), 𞁈 (`U+1E048`), 𞁋 (`U+1E04B`) + +- `VAAJ`: + + Я (`U+042F`), Ԙ (`U+0518`) + +- `VAAK`: + я (`U+044F`), ԙ (`U+0519`) - `VDAA`: @@ -1024,48 +1068,12 @@ - `VSAS`: - ∂ (`U+2202`), 𝛛 (`U+1D6DB`), 𝜕 (`U+1D715`), 𝝏 (`U+1D74F`), 𝞉 (`U+1D789`), 𝟃 (`U+1D7C3`) + µ (`U+00B5`) - `VSAT`: - µ (`U+00B5`) - -- `VSAU`: - ❬ (`U+276C`), ❭ (`U+276D`), ❮ (`U+276E`), ❯ (`U+276F`), ❰ (`U+2770`), ❱ (`U+2771`) -- `VXAA`: - - Њ (`U+040A`), Н (`U+041D`), Ң (`U+04A2`), Ҥ (`U+04A4`), Ӈ (`U+04C7`), Ӊ (`U+04C9`), Ԋ (`U+050A`), Ԣ (`U+0522`), Ԩ (`U+0528`) - -- `VXAB`: - - Ρ (`U+03A1`), Р (`U+0420`), Ҏ (`U+048E`), Ԗ (`U+0516`), ᴩ (`U+1D29`), Ῥ (`U+1FEC`), ₽ (`U+20BD`), 𝚸 (`U+1D6B8`), 𝛲 (`U+1D6F2`), 𝜬 (`U+1D72C`), 𝝦 (`U+1D766`), 𝞠 (`U+1D7A0`) - -- `VXAC`: - - β (`U+03B2`), ᵝ (`U+1D5D`), ᵦ (`U+1D66`), 𝛃 (`U+1D6C3`), 𝛽 (`U+1D6FD`), 𝜷 (`U+1D737`), 𝝱 (`U+1D771`), 𝞫 (`U+1D7AB`) - -- `VXAD`: - - γ (`U+03B3`), ᵞ (`U+1D5E`), ᵧ (`U+1D67`), 𝛄 (`U+1D6C4`), 𝛾 (`U+1D6FE`), 𝜸 (`U+1D738`), 𝝲 (`U+1D772`), 𝞬 (`U+1D7AC`) - -- `VXAE`: - - ν (`U+03BD`), 𝛎 (`U+1D6CE`), 𝜈 (`U+1D708`), 𝝂 (`U+1D742`), 𝝼 (`U+1D77C`), 𝞶 (`U+1D7B6`) - -- `VXAF`: - - ΰ (`U+03B0`), υ (`U+03C5`), ϋ (`U+03CB`), ύ (`U+03CD`), ὐ (`U+1F50`), ὑ (`U+1F51`), ὒ (`U+1F52`), ὓ (`U+1F53`), ὔ (`U+1F54`), ὕ (`U+1F55`), ὖ (`U+1F56`), ὗ (`U+1F57`), ὺ (`U+1F7A`), ύ (`U+1F7B`), ῠ (`U+1FE0`), ῡ (`U+1FE1`), ῢ (`U+1FE2`), ΰ (`U+1FE3`), ῦ (`U+1FE6`), ῧ (`U+1FE7`), 𝛖 (`U+1D6D6`), 𝜐 (`U+1D710`), 𝝊 (`U+1D74A`), 𝞄 (`U+1D784`), 𝞾 (`U+1D7BE`) - -- `VXAG`: - - φ (`U+03C6`), ᵠ (`U+1D60`), ᵩ (`U+1D69`), 𝛗 (`U+1D6D7`), 𝜑 (`U+1D711`), 𝝋 (`U+1D74B`), 𝞅 (`U+1D785`), 𝞿 (`U+1D7BF`) - -- `VXAH`: - - ψ (`U+03C8`), ѱ (`U+0471`), 𝛙 (`U+1D6D9`), 𝜓 (`U+1D713`), 𝝍 (`U+1D74D`), 𝞇 (`U+1D787`), 𝟁 (`U+1D7C1`) - diff --git a/images/button-release.dark.svg b/images/button-release.dark.svg index a2c64dc94..dd223f976 100644 --- a/images/button-release.dark.svg +++ b/images/button-release.dark.svg @@ -7,10 +7,8 @@ - - - - + + @@ -22,13 +20,13 @@ - + - - - - - + + + + + \ No newline at end of file diff --git a/images/button-release.light.svg b/images/button-release.light.svg index 9cbf37297..54022f097 100644 --- a/images/button-release.light.svg +++ b/images/button-release.light.svg @@ -7,10 +7,8 @@ - - - - + + @@ -22,13 +20,13 @@ - + - - - - - + + + + + \ No newline at end of file diff --git a/images/cs-block-armenian.dark.svg b/images/cs-block-armenian.dark.svg index 91cac20c2..4629661b1 100644 --- a/images/cs-block-armenian.dark.svg +++ b/images/cs-block-armenian.dark.svg @@ -26,16 +26,16 @@ - + - + - - + + - + @@ -52,12 +52,12 @@ - + - + @@ -67,17 +67,17 @@ - + - + - + - + @@ -89,21 +89,21 @@ - + - + - + - - + + diff --git a/images/cs-block-armenian.light.svg b/images/cs-block-armenian.light.svg index 6b048449c..288a3e089 100644 --- a/images/cs-block-armenian.light.svg +++ b/images/cs-block-armenian.light.svg @@ -26,16 +26,16 @@ - + - + - - + + - + @@ -52,12 +52,12 @@ - + - + @@ -67,17 +67,17 @@ - + - + - + - + @@ -89,21 +89,21 @@ - + - + - + - - + + diff --git a/images/cs-block-cyrillic-extended-b.dark.svg b/images/cs-block-cyrillic-extended-b.dark.svg index 1334abb03..809ad5528 100644 --- a/images/cs-block-cyrillic-extended-b.dark.svg +++ b/images/cs-block-cyrillic-extended-b.dark.svg @@ -95,7 +95,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-b.light.svg b/images/cs-block-cyrillic-extended-b.light.svg index 1b575d58f..093da7ab8 100644 --- a/images/cs-block-cyrillic-extended-b.light.svg +++ b/images/cs-block-cyrillic-extended-b.light.svg @@ -95,7 +95,7 @@ - + diff --git a/images/cs-block-cyrillic-supplement.dark.svg b/images/cs-block-cyrillic-supplement.dark.svg index 0a5c40897..a94e3e51a 100644 --- a/images/cs-block-cyrillic-supplement.dark.svg +++ b/images/cs-block-cyrillic-supplement.dark.svg @@ -21,20 +21,20 @@ - - - - + + + + - - - - - - - - + + + + + + + + @@ -57,7 +57,7 @@ - + diff --git a/images/cs-block-cyrillic-supplement.light.svg b/images/cs-block-cyrillic-supplement.light.svg index 97486925b..1d7c63cd4 100644 --- a/images/cs-block-cyrillic-supplement.light.svg +++ b/images/cs-block-cyrillic-supplement.light.svg @@ -21,20 +21,20 @@ - - - - + + + + - - - - - - - - + + + + + + + + @@ -57,7 +57,7 @@ - + diff --git a/images/cs-block-cyrillic.dark.svg b/images/cs-block-cyrillic.dark.svg index 9c8d79294..20704b04e 100644 --- a/images/cs-block-cyrillic.dark.svg +++ b/images/cs-block-cyrillic.dark.svg @@ -205,7 +205,7 @@ - + diff --git a/images/cs-block-cyrillic.light.svg b/images/cs-block-cyrillic.light.svg index 058ff6472..914d9756d 100644 --- a/images/cs-block-cyrillic.light.svg +++ b/images/cs-block-cyrillic.light.svg @@ -205,7 +205,7 @@ - + diff --git a/images/cs-block-greek-and-coptic.dark.svg b/images/cs-block-greek-and-coptic.dark.svg index 2cf85e324..02849327b 100644 --- a/images/cs-block-greek-and-coptic.dark.svg +++ b/images/cs-block-greek-and-coptic.dark.svg @@ -19,8 +19,8 @@ - - + + @@ -83,7 +83,7 @@ - + @@ -132,7 +132,7 @@ - + diff --git a/images/cs-block-greek-and-coptic.light.svg b/images/cs-block-greek-and-coptic.light.svg index dfe632326..f3e22c3b6 100644 --- a/images/cs-block-greek-and-coptic.light.svg +++ b/images/cs-block-greek-and-coptic.light.svg @@ -19,8 +19,8 @@ - - + + @@ -83,7 +83,7 @@ - + @@ -132,7 +132,7 @@ - + diff --git a/images/cs-block-latin-1-supplement.dark.svg b/images/cs-block-latin-1-supplement.dark.svg index 80b5c7cd8..409c203d3 100644 --- a/images/cs-block-latin-1-supplement.dark.svg +++ b/images/cs-block-latin-1-supplement.dark.svg @@ -79,7 +79,7 @@ - + diff --git a/images/cs-block-latin-1-supplement.light.svg b/images/cs-block-latin-1-supplement.light.svg index 52a6a9d91..286038f7f 100644 --- a/images/cs-block-latin-1-supplement.light.svg +++ b/images/cs-block-latin-1-supplement.light.svg @@ -79,7 +79,7 @@ - + diff --git a/images/cs-block-latin-extended-c.dark.svg b/images/cs-block-latin-extended-c.dark.svg index 24586662a..0b9573340 100644 --- a/images/cs-block-latin-extended-c.dark.svg +++ b/images/cs-block-latin-extended-c.dark.svg @@ -40,8 +40,8 @@ - - + + diff --git a/images/cs-block-latin-extended-c.light.svg b/images/cs-block-latin-extended-c.light.svg index 95f7250d1..32252da9f 100644 --- a/images/cs-block-latin-extended-c.light.svg +++ b/images/cs-block-latin-extended-c.light.svg @@ -40,8 +40,8 @@ - - + + diff --git a/images/cs-block-latin-extended-d.dark.svg b/images/cs-block-latin-extended-d.dark.svg index b3719846a..b26efc714 100644 --- a/images/cs-block-latin-extended-d.dark.svg +++ b/images/cs-block-latin-extended-d.dark.svg @@ -145,8 +145,8 @@ - - + + diff --git a/images/cs-block-latin-extended-d.light.svg b/images/cs-block-latin-extended-d.light.svg index 2239f6239..92992eec8 100644 --- a/images/cs-block-latin-extended-d.light.svg +++ b/images/cs-block-latin-extended-d.light.svg @@ -145,8 +145,8 @@ - - + + diff --git a/images/cs-block-latin-extended-e.dark.svg b/images/cs-block-latin-extended-e.dark.svg index 6f773f8d9..4b22ba377 100644 --- a/images/cs-block-latin-extended-e.dark.svg +++ b/images/cs-block-latin-extended-e.dark.svg @@ -40,28 +40,30 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -299,31 +301,31 @@ - - - - - - - - - - - + - + - + + + + + + + + + + + @@ -345,12 +347,12 @@ - + - + @@ -390,30 +392,30 @@ - - - - - - - - - - - + - + + + + + + + + + + + @@ -425,65 +427,65 @@ - - - - - - - - - - - + - + - + - + - + - + - + - + - + + + + + + + + + + + diff --git a/images/cs-block-latin-extended-e.light.svg b/images/cs-block-latin-extended-e.light.svg index d522f3991..29d556b69 100644 --- a/images/cs-block-latin-extended-e.light.svg +++ b/images/cs-block-latin-extended-e.light.svg @@ -40,28 +40,30 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -299,31 +301,31 @@ - - - - - - - - - - - + - + - + + + + + + + + + + + @@ -345,12 +347,12 @@ - + - + @@ -390,30 +392,30 @@ - - - - - - - - - - - + - + + + + + + + + + + + @@ -425,65 +427,65 @@ - - - - - - - - - - - + - + - + - + - + - + - + - + - + + + + + + + + + + + diff --git a/images/cs-block-mathematical-alphanumeric-symbols.dark.svg b/images/cs-block-mathematical-alphanumeric-symbols.dark.svg index bc9b9ab46..9d79382c1 100644 --- a/images/cs-block-mathematical-alphanumeric-symbols.dark.svg +++ b/images/cs-block-mathematical-alphanumeric-symbols.dark.svg @@ -411,7 +411,7 @@ - + @@ -454,7 +454,7 @@ - + @@ -496,7 +496,7 @@ - + diff --git a/images/cs-block-mathematical-alphanumeric-symbols.light.svg b/images/cs-block-mathematical-alphanumeric-symbols.light.svg index 0593103fd..345b4d241 100644 --- a/images/cs-block-mathematical-alphanumeric-symbols.light.svg +++ b/images/cs-block-mathematical-alphanumeric-symbols.light.svg @@ -411,7 +411,7 @@ - + @@ -454,7 +454,7 @@ - + @@ -496,7 +496,7 @@ - + diff --git a/images/cs-block-mathematical-operators.dark.svg b/images/cs-block-mathematical-operators.dark.svg index fe27d3552..27bcf5e0a 100644 --- a/images/cs-block-mathematical-operators.dark.svg +++ b/images/cs-block-mathematical-operators.dark.svg @@ -24,7 +24,7 @@ - + diff --git a/images/cs-block-mathematical-operators.light.svg b/images/cs-block-mathematical-operators.light.svg index 7714059a5..10d3023fd 100644 --- a/images/cs-block-mathematical-operators.light.svg +++ b/images/cs-block-mathematical-operators.light.svg @@ -24,7 +24,7 @@ - + diff --git a/images/cs-block-miscellaneous-mathematical-symbols-b.dark.svg b/images/cs-block-miscellaneous-mathematical-symbols-b.dark.svg index c02c8f9be..87170eb0d 100644 --- a/images/cs-block-miscellaneous-mathematical-symbols-b.dark.svg +++ b/images/cs-block-miscellaneous-mathematical-symbols-b.dark.svg @@ -33,11 +33,11 @@ - - - - - + + + + + diff --git a/images/cs-block-miscellaneous-mathematical-symbols-b.light.svg b/images/cs-block-miscellaneous-mathematical-symbols-b.light.svg index acc108edd..7b203aae8 100644 --- a/images/cs-block-miscellaneous-mathematical-symbols-b.light.svg +++ b/images/cs-block-miscellaneous-mathematical-symbols-b.light.svg @@ -33,11 +33,11 @@ - - - - - + + + + + diff --git a/images/cs-block-miscellaneous-technical.dark.svg b/images/cs-block-miscellaneous-technical.dark.svg index bec0a0e7c..fb0c492bf 100644 --- a/images/cs-block-miscellaneous-technical.dark.svg +++ b/images/cs-block-miscellaneous-technical.dark.svg @@ -232,6 +232,7 @@ + @@ -1749,8 +1750,8 @@ - - + + \ No newline at end of file diff --git a/images/cs-block-miscellaneous-technical.light.svg b/images/cs-block-miscellaneous-technical.light.svg index 191108a56..b3e0efebc 100644 --- a/images/cs-block-miscellaneous-technical.light.svg +++ b/images/cs-block-miscellaneous-technical.light.svg @@ -232,6 +232,7 @@ + @@ -1749,8 +1750,8 @@ - - + + \ No newline at end of file diff --git a/images/cs-block-phonetic-extensions-supplement.dark.svg b/images/cs-block-phonetic-extensions-supplement.dark.svg index 168c9acd5..499e8920f 100644 --- a/images/cs-block-phonetic-extensions-supplement.dark.svg +++ b/images/cs-block-phonetic-extensions-supplement.dark.svg @@ -82,7 +82,7 @@ - + diff --git a/images/cs-block-phonetic-extensions-supplement.light.svg b/images/cs-block-phonetic-extensions-supplement.light.svg index 0c348ff99..5ae63b87d 100644 --- a/images/cs-block-phonetic-extensions-supplement.light.svg +++ b/images/cs-block-phonetic-extensions-supplement.light.svg @@ -82,7 +82,7 @@ - + diff --git a/images/cs-block-supplemental-arrows-c.dark.svg b/images/cs-block-supplemental-arrows-c.dark.svg index 9622b2184..3735d91d5 100644 --- a/images/cs-block-supplemental-arrows-c.dark.svg +++ b/images/cs-block-supplemental-arrows-c.dark.svg @@ -140,15 +140,18 @@ - - - - - - - - - + + + + + + + + + + + + @@ -1253,56 +1256,56 @@ - - - - - - + - + - + - + - + - + - + - + - + + + + + + @@ -1334,13 +1337,13 @@ - - + + - - + + diff --git a/images/cs-block-supplemental-arrows-c.light.svg b/images/cs-block-supplemental-arrows-c.light.svg index 0e81516aa..259964fb4 100644 --- a/images/cs-block-supplemental-arrows-c.light.svg +++ b/images/cs-block-supplemental-arrows-c.light.svg @@ -140,15 +140,18 @@ - - - - - - - - - + + + + + + + + + + + + @@ -1253,56 +1256,56 @@ - - - - - - + - + - + - + - + - + - + - + - + + + + + + @@ -1334,13 +1337,13 @@ - - + + - - + + diff --git a/images/cs-block-symbols-for-legacy-computing-supplement.dark.svg b/images/cs-block-symbols-for-legacy-computing-supplement.dark.svg index 2a586c6cf..435b5e799 100644 --- a/images/cs-block-symbols-for-legacy-computing-supplement.dark.svg +++ b/images/cs-block-symbols-for-legacy-computing-supplement.dark.svg @@ -168,10 +168,10 @@ - - - - + + + + @@ -633,6 +633,8 @@ + + @@ -4644,8 +4646,8 @@ - - + + @@ -4654,8 +4656,8 @@ - - + + diff --git a/images/cs-block-symbols-for-legacy-computing-supplement.light.svg b/images/cs-block-symbols-for-legacy-computing-supplement.light.svg index c6c8c7a46..17e640806 100644 --- a/images/cs-block-symbols-for-legacy-computing-supplement.light.svg +++ b/images/cs-block-symbols-for-legacy-computing-supplement.light.svg @@ -168,10 +168,10 @@ - - - - + + + + @@ -633,6 +633,8 @@ + + @@ -4644,8 +4646,8 @@ - - + + @@ -4654,8 +4656,8 @@ - - + + diff --git a/images/cv-capital-thorn-asymmetric-motion-serifed.dark.svg b/images/cv-capital-thorn-asymmetric-motion-serifed.dark.svg new file mode 100644 index 000000000..96b59c7c0 --- /dev/null +++ b/images/cv-capital-thorn-asymmetric-motion-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-capital-thorn-asymmetric-motion-serifed.light.svg b/images/cv-capital-thorn-asymmetric-motion-serifed.light.svg new file mode 100644 index 000000000..5a3172178 --- /dev/null +++ b/images/cv-capital-thorn-asymmetric-motion-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-capital-thorn-asymmetric-serifed.dark.svg b/images/cv-capital-thorn-asymmetric-serifed.dark.svg new file mode 100644 index 000000000..3f26b2a83 --- /dev/null +++ b/images/cv-capital-thorn-asymmetric-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-capital-thorn-asymmetric-serifed.light.svg b/images/cv-capital-thorn-asymmetric-serifed.light.svg new file mode 100644 index 000000000..13e1a65b9 --- /dev/null +++ b/images/cv-capital-thorn-asymmetric-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-capital-thorn-asymmetric-serifless.dark.svg b/images/cv-capital-thorn-asymmetric-serifless.dark.svg new file mode 100644 index 000000000..2c7ecdeb7 --- /dev/null +++ b/images/cv-capital-thorn-asymmetric-serifless.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-capital-thorn-asymmetric-serifless.light.svg b/images/cv-capital-thorn-asymmetric-serifless.light.svg new file mode 100644 index 000000000..afd2d74c2 --- /dev/null +++ b/images/cv-capital-thorn-asymmetric-serifless.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-capital-thorn-motion-serifed.dark.svg b/images/cv-capital-thorn-motion-serifed.dark.svg index 96b59c7c0..c9d0d6525 100644 --- a/images/cv-capital-thorn-motion-serifed.dark.svg +++ b/images/cv-capital-thorn-motion-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-capital-thorn-motion-serifed.light.svg b/images/cv-capital-thorn-motion-serifed.light.svg index 5a3172178..cea0a1ea7 100644 --- a/images/cv-capital-thorn-motion-serifed.light.svg +++ b/images/cv-capital-thorn-motion-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-capital-thorn-serifed.dark.svg b/images/cv-capital-thorn-serifed.dark.svg index 3f26b2a83..1b6a1ee1c 100644 --- a/images/cv-capital-thorn-serifed.dark.svg +++ b/images/cv-capital-thorn-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-capital-thorn-serifed.light.svg b/images/cv-capital-thorn-serifed.light.svg index 13e1a65b9..402c462d0 100644 --- a/images/cv-capital-thorn-serifed.light.svg +++ b/images/cv-capital-thorn-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-capital-thorn-serifless.dark.svg b/images/cv-capital-thorn-serifless.dark.svg index 2c7ecdeb7..eaac560fa 100644 --- a/images/cv-capital-thorn-serifless.dark.svg +++ b/images/cv-capital-thorn-serifless.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-capital-thorn-serifless.light.svg b/images/cv-capital-thorn-serifless.light.svg index afd2d74c2..fdd4f5a5d 100644 --- a/images/cv-capital-thorn-serifless.light.svg +++ b/images/cv-capital-thorn-serifless.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-capital-w-straight-almost-flat-top-motion-serifed.dark.svg b/images/cv-capital-w-straight-almost-flat-top-motion-serifed.dark.svg new file mode 100644 index 000000000..6fa79711e --- /dev/null +++ b/images/cv-capital-w-straight-almost-flat-top-motion-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-capital-w-straight-almost-flat-top-motion-serifed.light.svg b/images/cv-capital-w-straight-almost-flat-top-motion-serifed.light.svg new file mode 100644 index 000000000..b87b82f9e --- /dev/null +++ b/images/cv-capital-w-straight-almost-flat-top-motion-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-capital-w-straight-almost-flat-top-serifed.dark.svg b/images/cv-capital-w-straight-almost-flat-top-serifed.dark.svg new file mode 100644 index 000000000..46c8602ff --- /dev/null +++ b/images/cv-capital-w-straight-almost-flat-top-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-capital-w-straight-almost-flat-top-serifed.light.svg b/images/cv-capital-w-straight-almost-flat-top-serifed.light.svg new file mode 100644 index 000000000..05d9b1709 --- /dev/null +++ b/images/cv-capital-w-straight-almost-flat-top-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-capital-w-straight-almost-flat-top-serifless.dark.svg b/images/cv-capital-w-straight-almost-flat-top-serifless.dark.svg new file mode 100644 index 000000000..3bee68a47 --- /dev/null +++ b/images/cv-capital-w-straight-almost-flat-top-serifless.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-capital-w-straight-almost-flat-top-serifless.light.svg b/images/cv-capital-w-straight-almost-flat-top-serifless.light.svg new file mode 100644 index 000000000..d166f8f06 --- /dev/null +++ b/images/cv-capital-w-straight-almost-flat-top-serifless.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-lower-theta-capsule.dark.svg b/images/cv-lower-theta-capsule.dark.svg new file mode 100644 index 000000000..cd7aecb9a --- /dev/null +++ b/images/cv-lower-theta-capsule.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-lower-theta-capsule.light.svg b/images/cv-lower-theta-capsule.light.svg new file mode 100644 index 000000000..169cd201a --- /dev/null +++ b/images/cv-lower-theta-capsule.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-lower-theta-diamond.dark.svg b/images/cv-lower-theta-diamond.dark.svg new file mode 100644 index 000000000..ee9696138 --- /dev/null +++ b/images/cv-lower-theta-diamond.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-lower-theta-diamond.light.svg b/images/cv-lower-theta-diamond.light.svg new file mode 100644 index 000000000..384fb0657 --- /dev/null +++ b/images/cv-lower-theta-diamond.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-lower-theta-oval.dark.svg b/images/cv-lower-theta-oval.dark.svg new file mode 100644 index 000000000..5354054bd --- /dev/null +++ b/images/cv-lower-theta-oval.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-lower-theta-oval.light.svg b/images/cv-lower-theta-oval.light.svg new file mode 100644 index 000000000..44c44da1f --- /dev/null +++ b/images/cv-lower-theta-oval.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-partial-derivative-closed-contour.dark.svg b/images/cv-partial-derivative-closed-contour.dark.svg new file mode 100644 index 000000000..1779c2615 --- /dev/null +++ b/images/cv-partial-derivative-closed-contour.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-partial-derivative-closed-contour.light.svg b/images/cv-partial-derivative-closed-contour.light.svg new file mode 100644 index 000000000..907ffb12d --- /dev/null +++ b/images/cv-partial-derivative-closed-contour.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-w-straight-almost-flat-top-motion-serifed.dark.svg b/images/cv-w-straight-almost-flat-top-motion-serifed.dark.svg new file mode 100644 index 000000000..ee163af7f --- /dev/null +++ b/images/cv-w-straight-almost-flat-top-motion-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-w-straight-almost-flat-top-motion-serifed.light.svg b/images/cv-w-straight-almost-flat-top-motion-serifed.light.svg new file mode 100644 index 000000000..cecfe0e0a --- /dev/null +++ b/images/cv-w-straight-almost-flat-top-motion-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-w-straight-almost-flat-top-serifed.dark.svg b/images/cv-w-straight-almost-flat-top-serifed.dark.svg new file mode 100644 index 000000000..962157d13 --- /dev/null +++ b/images/cv-w-straight-almost-flat-top-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-w-straight-almost-flat-top-serifed.light.svg b/images/cv-w-straight-almost-flat-top-serifed.light.svg new file mode 100644 index 000000000..83b855936 --- /dev/null +++ b/images/cv-w-straight-almost-flat-top-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-w-straight-almost-flat-top-serifless.dark.svg b/images/cv-w-straight-almost-flat-top-serifless.dark.svg new file mode 100644 index 000000000..0f3b3a44b --- /dev/null +++ b/images/cv-w-straight-almost-flat-top-serifless.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-w-straight-almost-flat-top-serifless.light.svg b/images/cv-w-straight-almost-flat-top-serifless.light.svg new file mode 100644 index 000000000..1bfe439b7 --- /dev/null +++ b/images/cv-w-straight-almost-flat-top-serifless.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/languages.dark.svg b/images/languages.dark.svg index 7990f4842..43dd5490f 100644 --- a/images/languages.dark.svg +++ b/images/languages.dark.svg @@ -74,7 +74,7 @@ - + @@ -85,26 +85,26 @@ - + - - + + - + - - + + - + - + @@ -251,7 +251,7 @@ - + diff --git a/images/languages.light.svg b/images/languages.light.svg index 8748b18c2..8af64853f 100644 --- a/images/languages.light.svg +++ b/images/languages.light.svg @@ -74,7 +74,7 @@ - + @@ -85,26 +85,26 @@ - + - - + + - + - - + + - + - + @@ -251,7 +251,7 @@ - + diff --git a/images/package-sample-Iosevka.dark.svg b/images/package-sample-Iosevka.dark.svg index 937a349b0..0b4e3277c 100644 --- a/images/package-sample-Iosevka.dark.svg +++ b/images/package-sample-Iosevka.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-Iosevka.light.svg b/images/package-sample-Iosevka.light.svg index 6e6cebe74..4414b1fcc 100644 --- a/images/package-sample-Iosevka.light.svg +++ b/images/package-sample-Iosevka.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaAile.dark.svg b/images/package-sample-IosevkaAile.dark.svg index 7f705cfd9..a05083910 100644 --- a/images/package-sample-IosevkaAile.dark.svg +++ b/images/package-sample-IosevkaAile.dark.svg @@ -108,7 +108,7 @@ - + @@ -159,7 +159,7 @@ - + @@ -193,43 +193,43 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -239,63 +239,63 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -306,61 +306,61 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -368,14 +368,14 @@ - - - - - - + + + + + + - + @@ -395,7 +395,7 @@ - + @@ -420,13 +420,13 @@ - - - - - - + + + + + + - + \ No newline at end of file diff --git a/images/package-sample-IosevkaAile.light.svg b/images/package-sample-IosevkaAile.light.svg index bac07c69a..04559fcfc 100644 --- a/images/package-sample-IosevkaAile.light.svg +++ b/images/package-sample-IosevkaAile.light.svg @@ -108,7 +108,7 @@ - + @@ -159,7 +159,7 @@ - + @@ -193,43 +193,43 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -239,63 +239,63 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -306,61 +306,61 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -368,14 +368,14 @@ - - - - - - + + + + + + - + @@ -395,7 +395,7 @@ - + @@ -420,13 +420,13 @@ - - - - - - + + + + + + - + \ No newline at end of file diff --git a/images/package-sample-IosevkaCurly.dark.svg b/images/package-sample-IosevkaCurly.dark.svg index 28f802a00..1f29b25a9 100644 --- a/images/package-sample-IosevkaCurly.dark.svg +++ b/images/package-sample-IosevkaCurly.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaCurly.light.svg b/images/package-sample-IosevkaCurly.light.svg index 2c722803b..d0a2d9f9f 100644 --- a/images/package-sample-IosevkaCurly.light.svg +++ b/images/package-sample-IosevkaCurly.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaCurlySlab.dark.svg b/images/package-sample-IosevkaCurlySlab.dark.svg index 662776cc2..ff0889b1e 100644 --- a/images/package-sample-IosevkaCurlySlab.dark.svg +++ b/images/package-sample-IosevkaCurlySlab.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaCurlySlab.light.svg b/images/package-sample-IosevkaCurlySlab.light.svg index 9bd5047f3..874a893cf 100644 --- a/images/package-sample-IosevkaCurlySlab.light.svg +++ b/images/package-sample-IosevkaCurlySlab.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaEtoile.dark.svg b/images/package-sample-IosevkaEtoile.dark.svg index b6c745027..d41b9ad6c 100644 --- a/images/package-sample-IosevkaEtoile.dark.svg +++ b/images/package-sample-IosevkaEtoile.dark.svg @@ -24,7 +24,7 @@ - + @@ -50,7 +50,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -160,7 +160,7 @@ - + @@ -194,43 +194,43 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -240,63 +240,63 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -307,61 +307,61 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -369,14 +369,14 @@ - - - - - - + + + + + + - + @@ -396,7 +396,7 @@ - + @@ -421,13 +421,13 @@ - - - - - - + + + + + + - + \ No newline at end of file diff --git a/images/package-sample-IosevkaEtoile.light.svg b/images/package-sample-IosevkaEtoile.light.svg index 01791d3e8..ff5ef49e6 100644 --- a/images/package-sample-IosevkaEtoile.light.svg +++ b/images/package-sample-IosevkaEtoile.light.svg @@ -24,7 +24,7 @@ - + @@ -50,7 +50,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -160,7 +160,7 @@ - + @@ -194,43 +194,43 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -240,63 +240,63 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -307,61 +307,61 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -369,14 +369,14 @@ - - - - - - + + + + + + - + @@ -396,7 +396,7 @@ - + @@ -421,13 +421,13 @@ - - - - - - + + + + + + - + \ No newline at end of file diff --git a/images/package-sample-IosevkaFixed.dark.svg b/images/package-sample-IosevkaFixed.dark.svg index 937a349b0..0b4e3277c 100644 --- a/images/package-sample-IosevkaFixed.dark.svg +++ b/images/package-sample-IosevkaFixed.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixed.light.svg b/images/package-sample-IosevkaFixed.light.svg index 6e6cebe74..4414b1fcc 100644 --- a/images/package-sample-IosevkaFixed.light.svg +++ b/images/package-sample-IosevkaFixed.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedCurly.dark.svg b/images/package-sample-IosevkaFixedCurly.dark.svg index 28f802a00..1f29b25a9 100644 --- a/images/package-sample-IosevkaFixedCurly.dark.svg +++ b/images/package-sample-IosevkaFixedCurly.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedCurly.light.svg b/images/package-sample-IosevkaFixedCurly.light.svg index 2c722803b..d0a2d9f9f 100644 --- a/images/package-sample-IosevkaFixedCurly.light.svg +++ b/images/package-sample-IosevkaFixedCurly.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedCurlySlab.dark.svg b/images/package-sample-IosevkaFixedCurlySlab.dark.svg index 662776cc2..ff0889b1e 100644 --- a/images/package-sample-IosevkaFixedCurlySlab.dark.svg +++ b/images/package-sample-IosevkaFixedCurlySlab.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedCurlySlab.light.svg b/images/package-sample-IosevkaFixedCurlySlab.light.svg index 9bd5047f3..874a893cf 100644 --- a/images/package-sample-IosevkaFixedCurlySlab.light.svg +++ b/images/package-sample-IosevkaFixedCurlySlab.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS01.dark.svg b/images/package-sample-IosevkaFixedSS01.dark.svg index dadcac9b6..5ce15b6d9 100644 --- a/images/package-sample-IosevkaFixedSS01.dark.svg +++ b/images/package-sample-IosevkaFixedSS01.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS01.light.svg b/images/package-sample-IosevkaFixedSS01.light.svg index af52419cb..d744b2ed8 100644 --- a/images/package-sample-IosevkaFixedSS01.light.svg +++ b/images/package-sample-IosevkaFixedSS01.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS02.dark.svg b/images/package-sample-IosevkaFixedSS02.dark.svg index 309655233..f4ff95238 100644 --- a/images/package-sample-IosevkaFixedSS02.dark.svg +++ b/images/package-sample-IosevkaFixedSS02.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS02.light.svg b/images/package-sample-IosevkaFixedSS02.light.svg index a92b866b5..db9d97693 100644 --- a/images/package-sample-IosevkaFixedSS02.light.svg +++ b/images/package-sample-IosevkaFixedSS02.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS03.dark.svg b/images/package-sample-IosevkaFixedSS03.dark.svg index 84d8b5197..afc7fa729 100644 --- a/images/package-sample-IosevkaFixedSS03.dark.svg +++ b/images/package-sample-IosevkaFixedSS03.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS03.light.svg b/images/package-sample-IosevkaFixedSS03.light.svg index 05dee92f0..60d942205 100644 --- a/images/package-sample-IosevkaFixedSS03.light.svg +++ b/images/package-sample-IosevkaFixedSS03.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS04.dark.svg b/images/package-sample-IosevkaFixedSS04.dark.svg index fbcf17c04..a8f2f7673 100644 --- a/images/package-sample-IosevkaFixedSS04.dark.svg +++ b/images/package-sample-IosevkaFixedSS04.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS04.light.svg b/images/package-sample-IosevkaFixedSS04.light.svg index e13722586..8b6acb25b 100644 --- a/images/package-sample-IosevkaFixedSS04.light.svg +++ b/images/package-sample-IosevkaFixedSS04.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS05.dark.svg b/images/package-sample-IosevkaFixedSS05.dark.svg index e0476af0d..3db8f058f 100644 --- a/images/package-sample-IosevkaFixedSS05.dark.svg +++ b/images/package-sample-IosevkaFixedSS05.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS05.light.svg b/images/package-sample-IosevkaFixedSS05.light.svg index 35b4312dc..b006ab662 100644 --- a/images/package-sample-IosevkaFixedSS05.light.svg +++ b/images/package-sample-IosevkaFixedSS05.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS06.dark.svg b/images/package-sample-IosevkaFixedSS06.dark.svg index 2e76803e2..bc5e0f8d8 100644 --- a/images/package-sample-IosevkaFixedSS06.dark.svg +++ b/images/package-sample-IosevkaFixedSS06.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS06.light.svg b/images/package-sample-IosevkaFixedSS06.light.svg index b149a2307..02020a72f 100644 --- a/images/package-sample-IosevkaFixedSS06.light.svg +++ b/images/package-sample-IosevkaFixedSS06.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS07.dark.svg b/images/package-sample-IosevkaFixedSS07.dark.svg index 1632fa667..2d24c9c8d 100644 --- a/images/package-sample-IosevkaFixedSS07.dark.svg +++ b/images/package-sample-IosevkaFixedSS07.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS07.light.svg b/images/package-sample-IosevkaFixedSS07.light.svg index bbb15c6d8..6a7d94135 100644 --- a/images/package-sample-IosevkaFixedSS07.light.svg +++ b/images/package-sample-IosevkaFixedSS07.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS08.dark.svg b/images/package-sample-IosevkaFixedSS08.dark.svg index 65f768cf4..9cd5da64c 100644 --- a/images/package-sample-IosevkaFixedSS08.dark.svg +++ b/images/package-sample-IosevkaFixedSS08.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS08.light.svg b/images/package-sample-IosevkaFixedSS08.light.svg index f931933c1..a5f2ab437 100644 --- a/images/package-sample-IosevkaFixedSS08.light.svg +++ b/images/package-sample-IosevkaFixedSS08.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS09.dark.svg b/images/package-sample-IosevkaFixedSS09.dark.svg index 1033bed3d..e8db30f1f 100644 --- a/images/package-sample-IosevkaFixedSS09.dark.svg +++ b/images/package-sample-IosevkaFixedSS09.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS09.light.svg b/images/package-sample-IosevkaFixedSS09.light.svg index eff7dc592..69ed0cf99 100644 --- a/images/package-sample-IosevkaFixedSS09.light.svg +++ b/images/package-sample-IosevkaFixedSS09.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS10.dark.svg b/images/package-sample-IosevkaFixedSS10.dark.svg index 3d53342a1..32b84c336 100644 --- a/images/package-sample-IosevkaFixedSS10.dark.svg +++ b/images/package-sample-IosevkaFixedSS10.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS10.light.svg b/images/package-sample-IosevkaFixedSS10.light.svg index c58b676f9..4146fb035 100644 --- a/images/package-sample-IosevkaFixedSS10.light.svg +++ b/images/package-sample-IosevkaFixedSS10.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS11.dark.svg b/images/package-sample-IosevkaFixedSS11.dark.svg index a747bbfd4..ae523fdc5 100644 --- a/images/package-sample-IosevkaFixedSS11.dark.svg +++ b/images/package-sample-IosevkaFixedSS11.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS11.light.svg b/images/package-sample-IosevkaFixedSS11.light.svg index 5c361785d..129ad4c43 100644 --- a/images/package-sample-IosevkaFixedSS11.light.svg +++ b/images/package-sample-IosevkaFixedSS11.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS12.dark.svg b/images/package-sample-IosevkaFixedSS12.dark.svg index 59af9794c..e187d0378 100644 --- a/images/package-sample-IosevkaFixedSS12.dark.svg +++ b/images/package-sample-IosevkaFixedSS12.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS12.light.svg b/images/package-sample-IosevkaFixedSS12.light.svg index 695266cb1..03937580b 100644 --- a/images/package-sample-IosevkaFixedSS12.light.svg +++ b/images/package-sample-IosevkaFixedSS12.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS13.dark.svg b/images/package-sample-IosevkaFixedSS13.dark.svg index 1dbfd877d..91137b525 100644 --- a/images/package-sample-IosevkaFixedSS13.dark.svg +++ b/images/package-sample-IosevkaFixedSS13.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS13.light.svg b/images/package-sample-IosevkaFixedSS13.light.svg index 1cb2ab065..00b8f863d 100644 --- a/images/package-sample-IosevkaFixedSS13.light.svg +++ b/images/package-sample-IosevkaFixedSS13.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS14.dark.svg b/images/package-sample-IosevkaFixedSS14.dark.svg index caba52593..c0ec4fb30 100644 --- a/images/package-sample-IosevkaFixedSS14.dark.svg +++ b/images/package-sample-IosevkaFixedSS14.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS14.light.svg b/images/package-sample-IosevkaFixedSS14.light.svg index 6d19afbb8..fb2714746 100644 --- a/images/package-sample-IosevkaFixedSS14.light.svg +++ b/images/package-sample-IosevkaFixedSS14.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS15.dark.svg b/images/package-sample-IosevkaFixedSS15.dark.svg index 20339cf75..8185b359b 100644 --- a/images/package-sample-IosevkaFixedSS15.dark.svg +++ b/images/package-sample-IosevkaFixedSS15.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS15.light.svg b/images/package-sample-IosevkaFixedSS15.light.svg index fa0dda72f..c39c719bc 100644 --- a/images/package-sample-IosevkaFixedSS15.light.svg +++ b/images/package-sample-IosevkaFixedSS15.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS17.dark.svg b/images/package-sample-IosevkaFixedSS17.dark.svg index cec72b48f..2cbaaeee8 100644 --- a/images/package-sample-IosevkaFixedSS17.dark.svg +++ b/images/package-sample-IosevkaFixedSS17.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS17.light.svg b/images/package-sample-IosevkaFixedSS17.light.svg index f63af3650..ef4d249b5 100644 --- a/images/package-sample-IosevkaFixedSS17.light.svg +++ b/images/package-sample-IosevkaFixedSS17.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS18.dark.svg b/images/package-sample-IosevkaFixedSS18.dark.svg index 2cf496e24..d52a6931d 100644 --- a/images/package-sample-IosevkaFixedSS18.dark.svg +++ b/images/package-sample-IosevkaFixedSS18.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS18.light.svg b/images/package-sample-IosevkaFixedSS18.light.svg index d9cecd813..97ac5fbe7 100644 --- a/images/package-sample-IosevkaFixedSS18.light.svg +++ b/images/package-sample-IosevkaFixedSS18.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSlab.dark.svg b/images/package-sample-IosevkaFixedSlab.dark.svg index ec09249e9..3b1ca1381 100644 --- a/images/package-sample-IosevkaFixedSlab.dark.svg +++ b/images/package-sample-IosevkaFixedSlab.dark.svg @@ -24,7 +24,7 @@ - + @@ -50,7 +50,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSlab.light.svg b/images/package-sample-IosevkaFixedSlab.light.svg index 091bd9751..6a1c89896 100644 --- a/images/package-sample-IosevkaFixedSlab.light.svg +++ b/images/package-sample-IosevkaFixedSlab.light.svg @@ -24,7 +24,7 @@ - + @@ -50,7 +50,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS01.dark.svg b/images/package-sample-IosevkaSS01.dark.svg index dadcac9b6..5ce15b6d9 100644 --- a/images/package-sample-IosevkaSS01.dark.svg +++ b/images/package-sample-IosevkaSS01.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS01.light.svg b/images/package-sample-IosevkaSS01.light.svg index af52419cb..d744b2ed8 100644 --- a/images/package-sample-IosevkaSS01.light.svg +++ b/images/package-sample-IosevkaSS01.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS02.dark.svg b/images/package-sample-IosevkaSS02.dark.svg index 309655233..f4ff95238 100644 --- a/images/package-sample-IosevkaSS02.dark.svg +++ b/images/package-sample-IosevkaSS02.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS02.light.svg b/images/package-sample-IosevkaSS02.light.svg index a92b866b5..db9d97693 100644 --- a/images/package-sample-IosevkaSS02.light.svg +++ b/images/package-sample-IosevkaSS02.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS03.dark.svg b/images/package-sample-IosevkaSS03.dark.svg index 84d8b5197..afc7fa729 100644 --- a/images/package-sample-IosevkaSS03.dark.svg +++ b/images/package-sample-IosevkaSS03.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS03.light.svg b/images/package-sample-IosevkaSS03.light.svg index 05dee92f0..60d942205 100644 --- a/images/package-sample-IosevkaSS03.light.svg +++ b/images/package-sample-IosevkaSS03.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS04.dark.svg b/images/package-sample-IosevkaSS04.dark.svg index fbcf17c04..a8f2f7673 100644 --- a/images/package-sample-IosevkaSS04.dark.svg +++ b/images/package-sample-IosevkaSS04.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS04.light.svg b/images/package-sample-IosevkaSS04.light.svg index e13722586..8b6acb25b 100644 --- a/images/package-sample-IosevkaSS04.light.svg +++ b/images/package-sample-IosevkaSS04.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS05.dark.svg b/images/package-sample-IosevkaSS05.dark.svg index e0476af0d..3db8f058f 100644 --- a/images/package-sample-IosevkaSS05.dark.svg +++ b/images/package-sample-IosevkaSS05.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS05.light.svg b/images/package-sample-IosevkaSS05.light.svg index 35b4312dc..b006ab662 100644 --- a/images/package-sample-IosevkaSS05.light.svg +++ b/images/package-sample-IosevkaSS05.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS06.dark.svg b/images/package-sample-IosevkaSS06.dark.svg index 2e76803e2..bc5e0f8d8 100644 --- a/images/package-sample-IosevkaSS06.dark.svg +++ b/images/package-sample-IosevkaSS06.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS06.light.svg b/images/package-sample-IosevkaSS06.light.svg index b149a2307..02020a72f 100644 --- a/images/package-sample-IosevkaSS06.light.svg +++ b/images/package-sample-IosevkaSS06.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS07.dark.svg b/images/package-sample-IosevkaSS07.dark.svg index 1632fa667..2d24c9c8d 100644 --- a/images/package-sample-IosevkaSS07.dark.svg +++ b/images/package-sample-IosevkaSS07.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS07.light.svg b/images/package-sample-IosevkaSS07.light.svg index bbb15c6d8..6a7d94135 100644 --- a/images/package-sample-IosevkaSS07.light.svg +++ b/images/package-sample-IosevkaSS07.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS08.dark.svg b/images/package-sample-IosevkaSS08.dark.svg index 65f768cf4..9cd5da64c 100644 --- a/images/package-sample-IosevkaSS08.dark.svg +++ b/images/package-sample-IosevkaSS08.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS08.light.svg b/images/package-sample-IosevkaSS08.light.svg index f931933c1..a5f2ab437 100644 --- a/images/package-sample-IosevkaSS08.light.svg +++ b/images/package-sample-IosevkaSS08.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS09.dark.svg b/images/package-sample-IosevkaSS09.dark.svg index 1033bed3d..e8db30f1f 100644 --- a/images/package-sample-IosevkaSS09.dark.svg +++ b/images/package-sample-IosevkaSS09.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS09.light.svg b/images/package-sample-IosevkaSS09.light.svg index eff7dc592..69ed0cf99 100644 --- a/images/package-sample-IosevkaSS09.light.svg +++ b/images/package-sample-IosevkaSS09.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS10.dark.svg b/images/package-sample-IosevkaSS10.dark.svg index 3d53342a1..32b84c336 100644 --- a/images/package-sample-IosevkaSS10.dark.svg +++ b/images/package-sample-IosevkaSS10.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS10.light.svg b/images/package-sample-IosevkaSS10.light.svg index c58b676f9..4146fb035 100644 --- a/images/package-sample-IosevkaSS10.light.svg +++ b/images/package-sample-IosevkaSS10.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS11.dark.svg b/images/package-sample-IosevkaSS11.dark.svg index a747bbfd4..ae523fdc5 100644 --- a/images/package-sample-IosevkaSS11.dark.svg +++ b/images/package-sample-IosevkaSS11.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS11.light.svg b/images/package-sample-IosevkaSS11.light.svg index 5c361785d..129ad4c43 100644 --- a/images/package-sample-IosevkaSS11.light.svg +++ b/images/package-sample-IosevkaSS11.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS12.dark.svg b/images/package-sample-IosevkaSS12.dark.svg index 59af9794c..e187d0378 100644 --- a/images/package-sample-IosevkaSS12.dark.svg +++ b/images/package-sample-IosevkaSS12.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS12.light.svg b/images/package-sample-IosevkaSS12.light.svg index 695266cb1..03937580b 100644 --- a/images/package-sample-IosevkaSS12.light.svg +++ b/images/package-sample-IosevkaSS12.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS13.dark.svg b/images/package-sample-IosevkaSS13.dark.svg index 1dbfd877d..91137b525 100644 --- a/images/package-sample-IosevkaSS13.dark.svg +++ b/images/package-sample-IosevkaSS13.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS13.light.svg b/images/package-sample-IosevkaSS13.light.svg index 1cb2ab065..00b8f863d 100644 --- a/images/package-sample-IosevkaSS13.light.svg +++ b/images/package-sample-IosevkaSS13.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS14.dark.svg b/images/package-sample-IosevkaSS14.dark.svg index caba52593..c0ec4fb30 100644 --- a/images/package-sample-IosevkaSS14.dark.svg +++ b/images/package-sample-IosevkaSS14.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS14.light.svg b/images/package-sample-IosevkaSS14.light.svg index 6d19afbb8..fb2714746 100644 --- a/images/package-sample-IosevkaSS14.light.svg +++ b/images/package-sample-IosevkaSS14.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS15.dark.svg b/images/package-sample-IosevkaSS15.dark.svg index 20339cf75..8185b359b 100644 --- a/images/package-sample-IosevkaSS15.dark.svg +++ b/images/package-sample-IosevkaSS15.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS15.light.svg b/images/package-sample-IosevkaSS15.light.svg index fa0dda72f..c39c719bc 100644 --- a/images/package-sample-IosevkaSS15.light.svg +++ b/images/package-sample-IosevkaSS15.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS17.dark.svg b/images/package-sample-IosevkaSS17.dark.svg index cec72b48f..2cbaaeee8 100644 --- a/images/package-sample-IosevkaSS17.dark.svg +++ b/images/package-sample-IosevkaSS17.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS17.light.svg b/images/package-sample-IosevkaSS17.light.svg index f63af3650..ef4d249b5 100644 --- a/images/package-sample-IosevkaSS17.light.svg +++ b/images/package-sample-IosevkaSS17.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS18.dark.svg b/images/package-sample-IosevkaSS18.dark.svg index 2cf496e24..d52a6931d 100644 --- a/images/package-sample-IosevkaSS18.dark.svg +++ b/images/package-sample-IosevkaSS18.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSS18.light.svg b/images/package-sample-IosevkaSS18.light.svg index d9cecd813..97ac5fbe7 100644 --- a/images/package-sample-IosevkaSS18.light.svg +++ b/images/package-sample-IosevkaSS18.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSlab.dark.svg b/images/package-sample-IosevkaSlab.dark.svg index ec09249e9..3b1ca1381 100644 --- a/images/package-sample-IosevkaSlab.dark.svg +++ b/images/package-sample-IosevkaSlab.dark.svg @@ -24,7 +24,7 @@ - + @@ -50,7 +50,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaSlab.light.svg b/images/package-sample-IosevkaSlab.light.svg index 091bd9751..6a1c89896 100644 --- a/images/package-sample-IosevkaSlab.light.svg +++ b/images/package-sample-IosevkaSlab.light.svg @@ -24,7 +24,7 @@ - + @@ -50,7 +50,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTerm.dark.svg b/images/package-sample-IosevkaTerm.dark.svg index 937a349b0..0b4e3277c 100644 --- a/images/package-sample-IosevkaTerm.dark.svg +++ b/images/package-sample-IosevkaTerm.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTerm.light.svg b/images/package-sample-IosevkaTerm.light.svg index 6e6cebe74..4414b1fcc 100644 --- a/images/package-sample-IosevkaTerm.light.svg +++ b/images/package-sample-IosevkaTerm.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermCurly.dark.svg b/images/package-sample-IosevkaTermCurly.dark.svg index 28f802a00..1f29b25a9 100644 --- a/images/package-sample-IosevkaTermCurly.dark.svg +++ b/images/package-sample-IosevkaTermCurly.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermCurly.light.svg b/images/package-sample-IosevkaTermCurly.light.svg index 2c722803b..d0a2d9f9f 100644 --- a/images/package-sample-IosevkaTermCurly.light.svg +++ b/images/package-sample-IosevkaTermCurly.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermCurlySlab.dark.svg b/images/package-sample-IosevkaTermCurlySlab.dark.svg index 662776cc2..ff0889b1e 100644 --- a/images/package-sample-IosevkaTermCurlySlab.dark.svg +++ b/images/package-sample-IosevkaTermCurlySlab.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermCurlySlab.light.svg b/images/package-sample-IosevkaTermCurlySlab.light.svg index 9bd5047f3..874a893cf 100644 --- a/images/package-sample-IosevkaTermCurlySlab.light.svg +++ b/images/package-sample-IosevkaTermCurlySlab.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS01.dark.svg b/images/package-sample-IosevkaTermSS01.dark.svg index dadcac9b6..5ce15b6d9 100644 --- a/images/package-sample-IosevkaTermSS01.dark.svg +++ b/images/package-sample-IosevkaTermSS01.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS01.light.svg b/images/package-sample-IosevkaTermSS01.light.svg index af52419cb..d744b2ed8 100644 --- a/images/package-sample-IosevkaTermSS01.light.svg +++ b/images/package-sample-IosevkaTermSS01.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS02.dark.svg b/images/package-sample-IosevkaTermSS02.dark.svg index 309655233..f4ff95238 100644 --- a/images/package-sample-IosevkaTermSS02.dark.svg +++ b/images/package-sample-IosevkaTermSS02.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS02.light.svg b/images/package-sample-IosevkaTermSS02.light.svg index a92b866b5..db9d97693 100644 --- a/images/package-sample-IosevkaTermSS02.light.svg +++ b/images/package-sample-IosevkaTermSS02.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS03.dark.svg b/images/package-sample-IosevkaTermSS03.dark.svg index 84d8b5197..afc7fa729 100644 --- a/images/package-sample-IosevkaTermSS03.dark.svg +++ b/images/package-sample-IosevkaTermSS03.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS03.light.svg b/images/package-sample-IosevkaTermSS03.light.svg index 05dee92f0..60d942205 100644 --- a/images/package-sample-IosevkaTermSS03.light.svg +++ b/images/package-sample-IosevkaTermSS03.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS04.dark.svg b/images/package-sample-IosevkaTermSS04.dark.svg index fbcf17c04..a8f2f7673 100644 --- a/images/package-sample-IosevkaTermSS04.dark.svg +++ b/images/package-sample-IosevkaTermSS04.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS04.light.svg b/images/package-sample-IosevkaTermSS04.light.svg index e13722586..8b6acb25b 100644 --- a/images/package-sample-IosevkaTermSS04.light.svg +++ b/images/package-sample-IosevkaTermSS04.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS05.dark.svg b/images/package-sample-IosevkaTermSS05.dark.svg index e0476af0d..3db8f058f 100644 --- a/images/package-sample-IosevkaTermSS05.dark.svg +++ b/images/package-sample-IosevkaTermSS05.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS05.light.svg b/images/package-sample-IosevkaTermSS05.light.svg index 35b4312dc..b006ab662 100644 --- a/images/package-sample-IosevkaTermSS05.light.svg +++ b/images/package-sample-IosevkaTermSS05.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS06.dark.svg b/images/package-sample-IosevkaTermSS06.dark.svg index 2e76803e2..bc5e0f8d8 100644 --- a/images/package-sample-IosevkaTermSS06.dark.svg +++ b/images/package-sample-IosevkaTermSS06.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS06.light.svg b/images/package-sample-IosevkaTermSS06.light.svg index b149a2307..02020a72f 100644 --- a/images/package-sample-IosevkaTermSS06.light.svg +++ b/images/package-sample-IosevkaTermSS06.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS07.dark.svg b/images/package-sample-IosevkaTermSS07.dark.svg index 1632fa667..2d24c9c8d 100644 --- a/images/package-sample-IosevkaTermSS07.dark.svg +++ b/images/package-sample-IosevkaTermSS07.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS07.light.svg b/images/package-sample-IosevkaTermSS07.light.svg index bbb15c6d8..6a7d94135 100644 --- a/images/package-sample-IosevkaTermSS07.light.svg +++ b/images/package-sample-IosevkaTermSS07.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS08.dark.svg b/images/package-sample-IosevkaTermSS08.dark.svg index 65f768cf4..9cd5da64c 100644 --- a/images/package-sample-IosevkaTermSS08.dark.svg +++ b/images/package-sample-IosevkaTermSS08.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS08.light.svg b/images/package-sample-IosevkaTermSS08.light.svg index f931933c1..a5f2ab437 100644 --- a/images/package-sample-IosevkaTermSS08.light.svg +++ b/images/package-sample-IosevkaTermSS08.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS09.dark.svg b/images/package-sample-IosevkaTermSS09.dark.svg index 1033bed3d..e8db30f1f 100644 --- a/images/package-sample-IosevkaTermSS09.dark.svg +++ b/images/package-sample-IosevkaTermSS09.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS09.light.svg b/images/package-sample-IosevkaTermSS09.light.svg index eff7dc592..69ed0cf99 100644 --- a/images/package-sample-IosevkaTermSS09.light.svg +++ b/images/package-sample-IosevkaTermSS09.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS10.dark.svg b/images/package-sample-IosevkaTermSS10.dark.svg index 3d53342a1..32b84c336 100644 --- a/images/package-sample-IosevkaTermSS10.dark.svg +++ b/images/package-sample-IosevkaTermSS10.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS10.light.svg b/images/package-sample-IosevkaTermSS10.light.svg index c58b676f9..4146fb035 100644 --- a/images/package-sample-IosevkaTermSS10.light.svg +++ b/images/package-sample-IosevkaTermSS10.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS11.dark.svg b/images/package-sample-IosevkaTermSS11.dark.svg index a747bbfd4..ae523fdc5 100644 --- a/images/package-sample-IosevkaTermSS11.dark.svg +++ b/images/package-sample-IosevkaTermSS11.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS11.light.svg b/images/package-sample-IosevkaTermSS11.light.svg index 5c361785d..129ad4c43 100644 --- a/images/package-sample-IosevkaTermSS11.light.svg +++ b/images/package-sample-IosevkaTermSS11.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS12.dark.svg b/images/package-sample-IosevkaTermSS12.dark.svg index 59af9794c..e187d0378 100644 --- a/images/package-sample-IosevkaTermSS12.dark.svg +++ b/images/package-sample-IosevkaTermSS12.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS12.light.svg b/images/package-sample-IosevkaTermSS12.light.svg index 695266cb1..03937580b 100644 --- a/images/package-sample-IosevkaTermSS12.light.svg +++ b/images/package-sample-IosevkaTermSS12.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS13.dark.svg b/images/package-sample-IosevkaTermSS13.dark.svg index 1dbfd877d..91137b525 100644 --- a/images/package-sample-IosevkaTermSS13.dark.svg +++ b/images/package-sample-IosevkaTermSS13.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS13.light.svg b/images/package-sample-IosevkaTermSS13.light.svg index 1cb2ab065..00b8f863d 100644 --- a/images/package-sample-IosevkaTermSS13.light.svg +++ b/images/package-sample-IosevkaTermSS13.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS14.dark.svg b/images/package-sample-IosevkaTermSS14.dark.svg index caba52593..c0ec4fb30 100644 --- a/images/package-sample-IosevkaTermSS14.dark.svg +++ b/images/package-sample-IosevkaTermSS14.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS14.light.svg b/images/package-sample-IosevkaTermSS14.light.svg index 6d19afbb8..fb2714746 100644 --- a/images/package-sample-IosevkaTermSS14.light.svg +++ b/images/package-sample-IosevkaTermSS14.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS15.dark.svg b/images/package-sample-IosevkaTermSS15.dark.svg index 20339cf75..8185b359b 100644 --- a/images/package-sample-IosevkaTermSS15.dark.svg +++ b/images/package-sample-IosevkaTermSS15.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS15.light.svg b/images/package-sample-IosevkaTermSS15.light.svg index fa0dda72f..c39c719bc 100644 --- a/images/package-sample-IosevkaTermSS15.light.svg +++ b/images/package-sample-IosevkaTermSS15.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS17.dark.svg b/images/package-sample-IosevkaTermSS17.dark.svg index cec72b48f..2cbaaeee8 100644 --- a/images/package-sample-IosevkaTermSS17.dark.svg +++ b/images/package-sample-IosevkaTermSS17.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS17.light.svg b/images/package-sample-IosevkaTermSS17.light.svg index f63af3650..ef4d249b5 100644 --- a/images/package-sample-IosevkaTermSS17.light.svg +++ b/images/package-sample-IosevkaTermSS17.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS18.dark.svg b/images/package-sample-IosevkaTermSS18.dark.svg index 2cf496e24..d52a6931d 100644 --- a/images/package-sample-IosevkaTermSS18.dark.svg +++ b/images/package-sample-IosevkaTermSS18.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS18.light.svg b/images/package-sample-IosevkaTermSS18.light.svg index d9cecd813..97ac5fbe7 100644 --- a/images/package-sample-IosevkaTermSS18.light.svg +++ b/images/package-sample-IosevkaTermSS18.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSlab.dark.svg b/images/package-sample-IosevkaTermSlab.dark.svg index ec09249e9..3b1ca1381 100644 --- a/images/package-sample-IosevkaTermSlab.dark.svg +++ b/images/package-sample-IosevkaTermSlab.dark.svg @@ -24,7 +24,7 @@ - + @@ -50,7 +50,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/package-sample-IosevkaTermSlab.light.svg b/images/package-sample-IosevkaTermSlab.light.svg index 091bd9751..6a1c89896 100644 --- a/images/package-sample-IosevkaTermSlab.light.svg +++ b/images/package-sample-IosevkaTermSlab.light.svg @@ -24,7 +24,7 @@ - + @@ -50,7 +50,7 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/images/ss-i-off-0.dark.svg b/images/ss-i-off-0.dark.svg index d379b95cb..3607e96d2 100644 --- a/images/ss-i-off-0.dark.svg +++ b/images/ss-i-off-0.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-i-off-0.light.svg b/images/ss-i-off-0.light.svg index 2146cb730..0e838994e 100644 --- a/images/ss-i-off-0.light.svg +++ b/images/ss-i-off-0.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-i-ss01-1.dark.svg b/images/ss-i-ss01-1.dark.svg index 944240bb6..806787386 100644 --- a/images/ss-i-ss01-1.dark.svg +++ b/images/ss-i-ss01-1.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -328,10 +328,12 @@ - + - + + + diff --git a/images/ss-i-ss01-1.light.svg b/images/ss-i-ss01-1.light.svg index b6077cb39..1d662dccd 100644 --- a/images/ss-i-ss01-1.light.svg +++ b/images/ss-i-ss01-1.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -328,10 +328,12 @@ - + - + + + diff --git a/images/ss-i-ss02-1.dark.svg b/images/ss-i-ss02-1.dark.svg index 6c14ad8aa..41b877dbc 100644 --- a/images/ss-i-ss02-1.dark.svg +++ b/images/ss-i-ss02-1.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-i-ss02-1.light.svg b/images/ss-i-ss02-1.light.svg index 043989e4c..e85b958e7 100644 --- a/images/ss-i-ss02-1.light.svg +++ b/images/ss-i-ss02-1.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-i-ss03-1.dark.svg b/images/ss-i-ss03-1.dark.svg index 86d0d3f30..d627d63d3 100644 --- a/images/ss-i-ss03-1.dark.svg +++ b/images/ss-i-ss03-1.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -334,10 +334,12 @@ - + - + + + diff --git a/images/ss-i-ss03-1.light.svg b/images/ss-i-ss03-1.light.svg index 60662f5ba..e7187f36d 100644 --- a/images/ss-i-ss03-1.light.svg +++ b/images/ss-i-ss03-1.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -334,10 +334,12 @@ - + - + + + diff --git a/images/ss-i-ss04-1.dark.svg b/images/ss-i-ss04-1.dark.svg index 42f126f85..07ccad2c7 100644 --- a/images/ss-i-ss04-1.dark.svg +++ b/images/ss-i-ss04-1.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -371,10 +371,12 @@ - + - + + + diff --git a/images/ss-i-ss04-1.light.svg b/images/ss-i-ss04-1.light.svg index 771954d28..8471f494a 100644 --- a/images/ss-i-ss04-1.light.svg +++ b/images/ss-i-ss04-1.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -371,10 +371,12 @@ - + - + + + diff --git a/images/ss-i-ss05-1.dark.svg b/images/ss-i-ss05-1.dark.svg index 6d6393665..087b9cecb 100644 --- a/images/ss-i-ss05-1.dark.svg +++ b/images/ss-i-ss05-1.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-i-ss05-1.light.svg b/images/ss-i-ss05-1.light.svg index f52101e35..136e3e6c8 100644 --- a/images/ss-i-ss05-1.light.svg +++ b/images/ss-i-ss05-1.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-i-ss06-1.dark.svg b/images/ss-i-ss06-1.dark.svg index 8b4660623..e297171ea 100644 --- a/images/ss-i-ss06-1.dark.svg +++ b/images/ss-i-ss06-1.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -371,13 +371,15 @@ - + - + + + diff --git a/images/ss-i-ss06-1.light.svg b/images/ss-i-ss06-1.light.svg index 87797995f..56a8b6bdf 100644 --- a/images/ss-i-ss06-1.light.svg +++ b/images/ss-i-ss06-1.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -371,13 +371,15 @@ - + - + + + diff --git a/images/ss-i-ss07-1.dark.svg b/images/ss-i-ss07-1.dark.svg index 84d8ec0f8..c78f3486e 100644 --- a/images/ss-i-ss07-1.dark.svg +++ b/images/ss-i-ss07-1.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-i-ss07-1.light.svg b/images/ss-i-ss07-1.light.svg index 6a0e843c3..f18273049 100644 --- a/images/ss-i-ss07-1.light.svg +++ b/images/ss-i-ss07-1.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-i-ss08-1.dark.svg b/images/ss-i-ss08-1.dark.svg index a64cddc88..1268d69c1 100644 --- a/images/ss-i-ss08-1.dark.svg +++ b/images/ss-i-ss08-1.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -371,9 +371,11 @@ - + - + + + diff --git a/images/ss-i-ss08-1.light.svg b/images/ss-i-ss08-1.light.svg index 4789547d8..dd675ce19 100644 --- a/images/ss-i-ss08-1.light.svg +++ b/images/ss-i-ss08-1.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -371,9 +371,11 @@ - + - + + + diff --git a/images/ss-i-ss09-1.dark.svg b/images/ss-i-ss09-1.dark.svg index a3926cf63..60a5ab1d4 100644 --- a/images/ss-i-ss09-1.dark.svg +++ b/images/ss-i-ss09-1.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -338,10 +338,12 @@ - + - + + + diff --git a/images/ss-i-ss09-1.light.svg b/images/ss-i-ss09-1.light.svg index cd6287c0c..cd52cbbe3 100644 --- a/images/ss-i-ss09-1.light.svg +++ b/images/ss-i-ss09-1.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -338,10 +338,12 @@ - + - + + + diff --git a/images/ss-i-ss10-1.dark.svg b/images/ss-i-ss10-1.dark.svg index 749448fac..da6de3d68 100644 --- a/images/ss-i-ss10-1.dark.svg +++ b/images/ss-i-ss10-1.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-i-ss10-1.light.svg b/images/ss-i-ss10-1.light.svg index a71d0dcd2..650c86a9f 100644 --- a/images/ss-i-ss10-1.light.svg +++ b/images/ss-i-ss10-1.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-i-ss11-1.dark.svg b/images/ss-i-ss11-1.dark.svg index 7e5e0eb2b..a7b4ab36d 100644 --- a/images/ss-i-ss11-1.dark.svg +++ b/images/ss-i-ss11-1.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-i-ss11-1.light.svg b/images/ss-i-ss11-1.light.svg index f63306af1..9a791f0dd 100644 --- a/images/ss-i-ss11-1.light.svg +++ b/images/ss-i-ss11-1.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-i-ss12-1.dark.svg b/images/ss-i-ss12-1.dark.svg index 099de46c4..27bffb3e0 100644 --- a/images/ss-i-ss12-1.dark.svg +++ b/images/ss-i-ss12-1.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -339,13 +339,15 @@ - + - + + + diff --git a/images/ss-i-ss12-1.light.svg b/images/ss-i-ss12-1.light.svg index 164cd97c0..3cc7a7ea7 100644 --- a/images/ss-i-ss12-1.light.svg +++ b/images/ss-i-ss12-1.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -339,13 +339,15 @@ - + - + + + diff --git a/images/ss-i-ss13-1.dark.svg b/images/ss-i-ss13-1.dark.svg index 744a1c884..f7c0b88c6 100644 --- a/images/ss-i-ss13-1.dark.svg +++ b/images/ss-i-ss13-1.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -364,7 +364,7 @@ - + @@ -373,7 +373,9 @@ - + + + diff --git a/images/ss-i-ss13-1.light.svg b/images/ss-i-ss13-1.light.svg index 7179ad07c..5fc99445d 100644 --- a/images/ss-i-ss13-1.light.svg +++ b/images/ss-i-ss13-1.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -364,7 +364,7 @@ - + @@ -373,7 +373,9 @@ - + + + diff --git a/images/ss-i-ss14-1.dark.svg b/images/ss-i-ss14-1.dark.svg index 941d846fb..247332269 100644 --- a/images/ss-i-ss14-1.dark.svg +++ b/images/ss-i-ss14-1.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-i-ss14-1.light.svg b/images/ss-i-ss14-1.light.svg index c60a38afe..4166b2fcf 100644 --- a/images/ss-i-ss14-1.light.svg +++ b/images/ss-i-ss14-1.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-i-ss15-1.dark.svg b/images/ss-i-ss15-1.dark.svg index 42ad96425..bf6d68758 100644 --- a/images/ss-i-ss15-1.dark.svg +++ b/images/ss-i-ss15-1.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-i-ss15-1.light.svg b/images/ss-i-ss15-1.light.svg index e33148efe..48b345e0f 100644 --- a/images/ss-i-ss15-1.light.svg +++ b/images/ss-i-ss15-1.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-i-ss16-1.dark.svg b/images/ss-i-ss16-1.dark.svg index 4d08eb92a..0035e9b0a 100644 --- a/images/ss-i-ss16-1.dark.svg +++ b/images/ss-i-ss16-1.dark.svg @@ -607,8 +607,9 @@ - - + + + diff --git a/images/ss-i-ss16-1.light.svg b/images/ss-i-ss16-1.light.svg index 4e2684294..b1d2d733a 100644 --- a/images/ss-i-ss16-1.light.svg +++ b/images/ss-i-ss16-1.light.svg @@ -607,8 +607,9 @@ - - + + + diff --git a/images/ss-i-ss17-1.dark.svg b/images/ss-i-ss17-1.dark.svg index c515f4808..90ef62ea0 100644 --- a/images/ss-i-ss17-1.dark.svg +++ b/images/ss-i-ss17-1.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-i-ss17-1.light.svg b/images/ss-i-ss17-1.light.svg index df46349a1..0daa59561 100644 --- a/images/ss-i-ss17-1.light.svg +++ b/images/ss-i-ss17-1.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-i-ss18-1.dark.svg b/images/ss-i-ss18-1.dark.svg index 2abdc9b45..94d5ff300 100644 --- a/images/ss-i-ss18-1.dark.svg +++ b/images/ss-i-ss18-1.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-i-ss18-1.light.svg b/images/ss-i-ss18-1.light.svg index 13172f908..0f92cd992 100644 --- a/images/ss-i-ss18-1.light.svg +++ b/images/ss-i-ss18-1.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-i-ss20-1.dark.svg b/images/ss-i-ss20-1.dark.svg index 6c297e667..da4283ed5 100644 --- a/images/ss-i-ss20-1.dark.svg +++ b/images/ss-i-ss20-1.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-i-ss20-1.light.svg b/images/ss-i-ss20-1.light.svg index 399c1ec07..f34bf6100 100644 --- a/images/ss-i-ss20-1.light.svg +++ b/images/ss-i-ss20-1.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-u-off-0.dark.svg b/images/ss-u-off-0.dark.svg index 1f51b5fad..b27d670bf 100644 --- a/images/ss-u-off-0.dark.svg +++ b/images/ss-u-off-0.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-u-off-0.light.svg b/images/ss-u-off-0.light.svg index ee258dcb2..c6a8d03b5 100644 --- a/images/ss-u-off-0.light.svg +++ b/images/ss-u-off-0.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-u-ss01-1.dark.svg b/images/ss-u-ss01-1.dark.svg index b113b0edb..9b430bf6e 100644 --- a/images/ss-u-ss01-1.dark.svg +++ b/images/ss-u-ss01-1.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -320,10 +320,12 @@ - + - + + + diff --git a/images/ss-u-ss01-1.light.svg b/images/ss-u-ss01-1.light.svg index 765ea1498..44b2acecb 100644 --- a/images/ss-u-ss01-1.light.svg +++ b/images/ss-u-ss01-1.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -320,10 +320,12 @@ - + - + + + diff --git a/images/ss-u-ss02-1.dark.svg b/images/ss-u-ss02-1.dark.svg index 2f343692a..786ddd9cc 100644 --- a/images/ss-u-ss02-1.dark.svg +++ b/images/ss-u-ss02-1.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-u-ss02-1.light.svg b/images/ss-u-ss02-1.light.svg index e2988d40f..a7776dc19 100644 --- a/images/ss-u-ss02-1.light.svg +++ b/images/ss-u-ss02-1.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-u-ss03-1.dark.svg b/images/ss-u-ss03-1.dark.svg index dbbcbd122..e5ea7cc8b 100644 --- a/images/ss-u-ss03-1.dark.svg +++ b/images/ss-u-ss03-1.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -327,10 +327,12 @@ - + - + + + diff --git a/images/ss-u-ss03-1.light.svg b/images/ss-u-ss03-1.light.svg index 4c4ed00f8..720d2cfbe 100644 --- a/images/ss-u-ss03-1.light.svg +++ b/images/ss-u-ss03-1.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -327,10 +327,12 @@ - + - + + + diff --git a/images/ss-u-ss04-1.dark.svg b/images/ss-u-ss04-1.dark.svg index 2ac1a451a..67cd6f5e6 100644 --- a/images/ss-u-ss04-1.dark.svg +++ b/images/ss-u-ss04-1.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -365,10 +365,12 @@ - + - + + + diff --git a/images/ss-u-ss04-1.light.svg b/images/ss-u-ss04-1.light.svg index 6fd02d9ed..327000e75 100644 --- a/images/ss-u-ss04-1.light.svg +++ b/images/ss-u-ss04-1.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -365,10 +365,12 @@ - + - + + + diff --git a/images/ss-u-ss05-1.dark.svg b/images/ss-u-ss05-1.dark.svg index b60405fe1..2717bb253 100644 --- a/images/ss-u-ss05-1.dark.svg +++ b/images/ss-u-ss05-1.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-u-ss05-1.light.svg b/images/ss-u-ss05-1.light.svg index 51bbe8e9d..291210ffe 100644 --- a/images/ss-u-ss05-1.light.svg +++ b/images/ss-u-ss05-1.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-u-ss06-1.dark.svg b/images/ss-u-ss06-1.dark.svg index c4d7935e0..4345b3d66 100644 --- a/images/ss-u-ss06-1.dark.svg +++ b/images/ss-u-ss06-1.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -367,13 +367,15 @@ - + - + + + diff --git a/images/ss-u-ss06-1.light.svg b/images/ss-u-ss06-1.light.svg index b352fbb6a..db7aa16e2 100644 --- a/images/ss-u-ss06-1.light.svg +++ b/images/ss-u-ss06-1.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -367,13 +367,15 @@ - + - + + + diff --git a/images/ss-u-ss07-1.dark.svg b/images/ss-u-ss07-1.dark.svg index 88d41a12e..6aaee9220 100644 --- a/images/ss-u-ss07-1.dark.svg +++ b/images/ss-u-ss07-1.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-u-ss07-1.light.svg b/images/ss-u-ss07-1.light.svg index 69f5d283e..be9af91d2 100644 --- a/images/ss-u-ss07-1.light.svg +++ b/images/ss-u-ss07-1.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-u-ss08-1.dark.svg b/images/ss-u-ss08-1.dark.svg index e9c9d27d3..8615225a3 100644 --- a/images/ss-u-ss08-1.dark.svg +++ b/images/ss-u-ss08-1.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -363,9 +363,11 @@ - + - + + + diff --git a/images/ss-u-ss08-1.light.svg b/images/ss-u-ss08-1.light.svg index a4b807862..0db4b42b7 100644 --- a/images/ss-u-ss08-1.light.svg +++ b/images/ss-u-ss08-1.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -363,9 +363,11 @@ - + - + + + diff --git a/images/ss-u-ss09-1.dark.svg b/images/ss-u-ss09-1.dark.svg index 602adff38..c0fb2b53a 100644 --- a/images/ss-u-ss09-1.dark.svg +++ b/images/ss-u-ss09-1.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -335,10 +335,12 @@ - + - + + + diff --git a/images/ss-u-ss09-1.light.svg b/images/ss-u-ss09-1.light.svg index 6b52582fe..61ad39af7 100644 --- a/images/ss-u-ss09-1.light.svg +++ b/images/ss-u-ss09-1.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -335,10 +335,12 @@ - + - + + + diff --git a/images/ss-u-ss10-1.dark.svg b/images/ss-u-ss10-1.dark.svg index c7d074922..48e7f07d5 100644 --- a/images/ss-u-ss10-1.dark.svg +++ b/images/ss-u-ss10-1.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-u-ss10-1.light.svg b/images/ss-u-ss10-1.light.svg index 163b310e3..ff2439b06 100644 --- a/images/ss-u-ss10-1.light.svg +++ b/images/ss-u-ss10-1.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-u-ss11-1.dark.svg b/images/ss-u-ss11-1.dark.svg index eb3e88783..75368f578 100644 --- a/images/ss-u-ss11-1.dark.svg +++ b/images/ss-u-ss11-1.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-u-ss11-1.light.svg b/images/ss-u-ss11-1.light.svg index a171c88bd..23f87d11d 100644 --- a/images/ss-u-ss11-1.light.svg +++ b/images/ss-u-ss11-1.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-u-ss12-1.dark.svg b/images/ss-u-ss12-1.dark.svg index 66bd32e44..7f831f933 100644 --- a/images/ss-u-ss12-1.dark.svg +++ b/images/ss-u-ss12-1.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -349,13 +349,15 @@ - + - + + + diff --git a/images/ss-u-ss12-1.light.svg b/images/ss-u-ss12-1.light.svg index ac1e0318f..981b6986c 100644 --- a/images/ss-u-ss12-1.light.svg +++ b/images/ss-u-ss12-1.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -349,13 +349,15 @@ - + - + + + diff --git a/images/ss-u-ss13-1.dark.svg b/images/ss-u-ss13-1.dark.svg index 4d8e426f4..baab75c0a 100644 --- a/images/ss-u-ss13-1.dark.svg +++ b/images/ss-u-ss13-1.dark.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -358,7 +358,7 @@ - + @@ -367,7 +367,9 @@ - + + + diff --git a/images/ss-u-ss13-1.light.svg b/images/ss-u-ss13-1.light.svg index ff491c542..506637564 100644 --- a/images/ss-u-ss13-1.light.svg +++ b/images/ss-u-ss13-1.light.svg @@ -65,7 +65,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -358,7 +358,7 @@ - + @@ -367,7 +367,9 @@ - + + + diff --git a/images/ss-u-ss14-1.dark.svg b/images/ss-u-ss14-1.dark.svg index 65ba9155c..3bf464ff8 100644 --- a/images/ss-u-ss14-1.dark.svg +++ b/images/ss-u-ss14-1.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-u-ss14-1.light.svg b/images/ss-u-ss14-1.light.svg index 170d2d5cf..748c72f36 100644 --- a/images/ss-u-ss14-1.light.svg +++ b/images/ss-u-ss14-1.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-u-ss15-1.dark.svg b/images/ss-u-ss15-1.dark.svg index 14047f8c1..a51a158a4 100644 --- a/images/ss-u-ss15-1.dark.svg +++ b/images/ss-u-ss15-1.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-u-ss15-1.light.svg b/images/ss-u-ss15-1.light.svg index c36335ac2..ea7f9a157 100644 --- a/images/ss-u-ss15-1.light.svg +++ b/images/ss-u-ss15-1.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-u-ss16-1.dark.svg b/images/ss-u-ss16-1.dark.svg index 4e575e45e..e1eb045c0 100644 --- a/images/ss-u-ss16-1.dark.svg +++ b/images/ss-u-ss16-1.dark.svg @@ -607,8 +607,9 @@ - - + + + diff --git a/images/ss-u-ss16-1.light.svg b/images/ss-u-ss16-1.light.svg index b1f729669..c36384095 100644 --- a/images/ss-u-ss16-1.light.svg +++ b/images/ss-u-ss16-1.light.svg @@ -607,8 +607,9 @@ - - + + + diff --git a/images/ss-u-ss17-1.dark.svg b/images/ss-u-ss17-1.dark.svg index 6d2e90da5..484bc4d88 100644 --- a/images/ss-u-ss17-1.dark.svg +++ b/images/ss-u-ss17-1.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-u-ss17-1.light.svg b/images/ss-u-ss17-1.light.svg index 4682221b6..66a27fbca 100644 --- a/images/ss-u-ss17-1.light.svg +++ b/images/ss-u-ss17-1.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-u-ss18-1.dark.svg b/images/ss-u-ss18-1.dark.svg index 93b1067df..bc07862ec 100644 --- a/images/ss-u-ss18-1.dark.svg +++ b/images/ss-u-ss18-1.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-u-ss18-1.light.svg b/images/ss-u-ss18-1.light.svg index e51139c7d..49d102257 100644 --- a/images/ss-u-ss18-1.light.svg +++ b/images/ss-u-ss18-1.light.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-u-ss20-1.dark.svg b/images/ss-u-ss20-1.dark.svg index 7c4e76457..7f9ccf958 100644 --- a/images/ss-u-ss20-1.dark.svg +++ b/images/ss-u-ss20-1.dark.svg @@ -109,7 +109,7 @@ - + diff --git a/images/ss-u-ss20-1.light.svg b/images/ss-u-ss20-1.light.svg index 181997950..1d60f833d 100644 --- a/images/ss-u-ss20-1.light.svg +++ b/images/ss-u-ss20-1.light.svg @@ -109,7 +109,7 @@ - + diff --git a/package-lock.json b/package-lock.json index 2560aafac..ce5feebf4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@iosevka/monorepo", - "version": "32.5.0", + "version": "33.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@iosevka/monorepo", - "version": "32.5.0", + "version": "33.0.0", "workspaces": [ "packages/*", "tools/*" @@ -5157,16 +5157,16 @@ }, "packages/font": { "name": "@iosevka/font", - "version": "32.5.0", + "version": "33.0.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/font-glyphs": "32.5.0", - "@iosevka/font-otl": "32.5.0", - "@iosevka/geometry": "32.5.0", - "@iosevka/geometry-cache": "32.5.0", - "@iosevka/glyph": "32.5.0", - "@iosevka/param": "32.5.0", - "@iosevka/util": "32.5.0", + "@iosevka/font-glyphs": "33.0.0", + "@iosevka/font-otl": "33.0.0", + "@iosevka/geometry": "33.0.0", + "@iosevka/geometry-cache": "33.0.0", + "@iosevka/glyph": "33.0.0", + "@iosevka/param": "33.0.0", + "@iosevka/util": "33.0.0", "@msgpack/msgpack": "^2.8.0", "harfbuzzjs": "^0.4.4", "ot-builder": "^1.7.5", @@ -5175,86 +5175,86 @@ }, "packages/font-glyphs": { "name": "@iosevka/font-glyphs", - "version": "32.5.0", + "version": "33.0.0", "dependencies": { - "@iosevka/font-kits": "32.5.0", - "@iosevka/geometry": "32.5.0", - "@iosevka/geometry-cache": "32.5.0", - "@iosevka/glyph": "32.5.0", - "@iosevka/util": "32.5.0", + "@iosevka/font-kits": "33.0.0", + "@iosevka/geometry": "33.0.0", + "@iosevka/geometry-cache": "33.0.0", + "@iosevka/glyph": "33.0.0", + "@iosevka/util": "33.0.0", "typo-geom": "^0.16.1" } }, "packages/font-kits": { "name": "@iosevka/font-kits", - "version": "32.5.0", + "version": "33.0.0", "dependencies": { - "@iosevka/geometry": "32.5.0", - "@iosevka/glyph": "32.5.0", - "@iosevka/util": "32.5.0", + "@iosevka/geometry": "33.0.0", + "@iosevka/glyph": "33.0.0", + "@iosevka/util": "33.0.0", "typo-geom": "^0.16.1" } }, "packages/font-otl": { "name": "@iosevka/font-otl", - "version": "32.5.0", + "version": "33.0.0", "dependencies": { - "@iosevka/font-glyphs": "32.5.0", - "@iosevka/glyph": "32.5.0", + "@iosevka/font-glyphs": "33.0.0", + "@iosevka/glyph": "33.0.0", "toposort": "^2.0.2" } }, "packages/geometry": { "name": "@iosevka/geometry", - "version": "32.5.0", + "version": "33.0.0", "dependencies": { - "@iosevka/util": "32.5.0", + "@iosevka/util": "33.0.0", "spiro": "^3.0.1", "typo-geom": "^0.16.1" } }, "packages/geometry-cache": { "name": "@iosevka/geometry-cache", - "version": "32.5.0", + "version": "33.0.0", "dependencies": { - "@iosevka/geometry": "32.5.0", + "@iosevka/geometry": "33.0.0", "@msgpack/msgpack": "^2.8.0" } }, "packages/glyph": { "name": "@iosevka/glyph", - "version": "32.5.0", + "version": "33.0.0", "dependencies": { - "@iosevka/geometry": "32.5.0" + "@iosevka/geometry": "33.0.0" } }, "packages/param": { "name": "@iosevka/param", - "version": "32.5.0", + "version": "33.0.0", "dependencies": { - "@iosevka/util": "32.5.0" + "@iosevka/util": "33.0.0" } }, "packages/util": { "name": "@iosevka/util", - "version": "32.5.0" + "version": "33.0.0" }, "tools/amend-readme": { "name": "@iosevka/amend-readme", - "version": "32.5.0", + "version": "33.0.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "32.5.0", + "@iosevka/param": "33.0.0", "@unicode/unicode-16.0.0": "^1.6.5", "semver": "^7.6.3" } }, "tools/data-export": { "name": "@iosevka/data-export", - "version": "32.5.0", + "version": "33.0.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "32.5.0", + "@iosevka/param": "33.0.0", "@msgpack/msgpack": "^2.8.0", "@unicode/unicode-16.0.0": "^1.6.5", "cldr": "^7.6.0" @@ -5262,16 +5262,16 @@ }, "tools/generate-samples": { "name": "@iosevka/generate-samples", - "version": "32.5.0", + "version": "33.0.0", "dependencies": { - "@iosevka/data-export": "32.5.0" + "@iosevka/data-export": "33.0.0" } }, "tools/misc": { "name": "@iosevka/misc", - "version": "32.5.0", + "version": "33.0.0", "dependencies": { - "@iosevka/util": "32.5.0", + "@iosevka/util": "33.0.0", "@unicode/unicode-16.0.0": "^1.6.5", "semver": "^7.6.3", "wawoff2": "^2.0.1" diff --git a/package.json b/package.json index 3731d646e..d34f94b8e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/monorepo", - "version": "32.5.0", + "version": "33.0.0", "workspaces": [ "packages/*", "tools/*" diff --git a/packages/font-glyphs/package.json b/packages/font-glyphs/package.json index 146f31002..812a2a67b 100644 --- a/packages/font-glyphs/package.json +++ b/packages/font-glyphs/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font-glyphs", - "version": "32.5.0", + "version": "33.0.0", "private": true, "exports": { ".": "./lib/index.mjs", @@ -8,11 +8,11 @@ "./unicode-knowledge": "./lib/meta/unicode-knowledge.mjs" }, "dependencies": { - "@iosevka/font-kits": "32.5.0", - "@iosevka/geometry": "32.5.0", - "@iosevka/geometry-cache": "32.5.0", - "@iosevka/glyph": "32.5.0", - "@iosevka/util": "32.5.0", + "@iosevka/font-kits": "33.0.0", + "@iosevka/geometry": "33.0.0", + "@iosevka/geometry-cache": "33.0.0", + "@iosevka/glyph": "33.0.0", + "@iosevka/util": "33.0.0", "typo-geom": "^0.16.1" } } diff --git a/packages/font-kits/package.json b/packages/font-kits/package.json index 7283d451c..d9eeb3728 100644 --- a/packages/font-kits/package.json +++ b/packages/font-kits/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font-kits", - "version": "32.5.0", + "version": "33.0.0", "private": true, "exports": { "./derived-coordinates": "./src/derived-coordinates.mjs", @@ -8,9 +8,9 @@ "./spiro-kit": "./src/spiro-kit.mjs" }, "dependencies": { - "@iosevka/geometry": "32.5.0", - "@iosevka/glyph": "32.5.0", - "@iosevka/util": "32.5.0", + "@iosevka/geometry": "33.0.0", + "@iosevka/glyph": "33.0.0", + "@iosevka/util": "33.0.0", "typo-geom": "^0.16.1" } } diff --git a/packages/font-otl/package.json b/packages/font-otl/package.json index 75de8b48b..1daa831b3 100644 --- a/packages/font-otl/package.json +++ b/packages/font-otl/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/font-otl", - "version": "32.5.0", + "version": "33.0.0", "private": true, "exports": { ".": "./lib/index.mjs" }, "dependencies": { - "@iosevka/font-glyphs": "32.5.0", - "@iosevka/glyph": "32.5.0", + "@iosevka/font-glyphs": "33.0.0", + "@iosevka/glyph": "33.0.0", "toposort": "^2.0.2" } } diff --git a/packages/font/package.json b/packages/font/package.json index 0251de67f..ebd8f8f8d 100644 --- a/packages/font/package.json +++ b/packages/font/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font", - "version": "32.5.0", + "version": "33.0.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,13 +10,13 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/font-glyphs": "32.5.0", - "@iosevka/font-otl": "32.5.0", - "@iosevka/geometry": "32.5.0", - "@iosevka/geometry-cache": "32.5.0", - "@iosevka/glyph": "32.5.0", - "@iosevka/param": "32.5.0", - "@iosevka/util": "32.5.0", + "@iosevka/font-glyphs": "33.0.0", + "@iosevka/font-otl": "33.0.0", + "@iosevka/geometry": "33.0.0", + "@iosevka/geometry-cache": "33.0.0", + "@iosevka/glyph": "33.0.0", + "@iosevka/param": "33.0.0", + "@iosevka/util": "33.0.0", "harfbuzzjs": "^0.4.4", "ot-builder": "^1.7.5", "semver": "^7.6.3", diff --git a/packages/geometry-cache/package.json b/packages/geometry-cache/package.json index 24130b618..019f85d15 100644 --- a/packages/geometry-cache/package.json +++ b/packages/geometry-cache/package.json @@ -1,12 +1,12 @@ { "name": "@iosevka/geometry-cache", - "version": "32.5.0", + "version": "33.0.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/geometry": "32.5.0", + "@iosevka/geometry": "33.0.0", "@msgpack/msgpack": "^2.8.0" } } diff --git a/packages/geometry/package.json b/packages/geometry/package.json index 76e0d9eff..57c80e57f 100644 --- a/packages/geometry/package.json +++ b/packages/geometry/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/geometry", - "version": "32.5.0", + "version": "33.0.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -16,7 +16,7 @@ "./encoding": "./src/encoding.mjs" }, "dependencies": { - "@iosevka/util": "32.5.0", + "@iosevka/util": "33.0.0", "spiro": "^3.0.1", "typo-geom": "^0.16.1" } diff --git a/packages/glyph/package.json b/packages/glyph/package.json index 7057200d0..097a26518 100644 --- a/packages/glyph/package.json +++ b/packages/glyph/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/glyph", - "version": "32.5.0", + "version": "33.0.0", "private": true, "exports": { ".": "./src/glyph.mjs", @@ -9,6 +9,6 @@ "./relation": "./src/relation.mjs" }, "dependencies": { - "@iosevka/geometry": "32.5.0" + "@iosevka/geometry": "33.0.0" } } diff --git a/packages/param/package.json b/packages/param/package.json index b196c4bac..6861a6221 100644 --- a/packages/param/package.json +++ b/packages/param/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/param", - "version": "32.5.0", + "version": "33.0.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -9,6 +9,6 @@ "./metric-override": "./src/metric-override.mjs" }, "dependencies": { - "@iosevka/util": "32.5.0" + "@iosevka/util": "33.0.0" } } diff --git a/packages/util/package.json b/packages/util/package.json index bddfee7ce..aafa1fac9 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/util", - "version": "32.5.0", + "version": "33.0.0", "private": true, "exports": { ".": "./src/index.mjs", diff --git a/tools/amend-readme/package.json b/tools/amend-readme/package.json index 0569fd179..663d1a85f 100644 --- a/tools/amend-readme/package.json +++ b/tools/amend-readme/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/amend-readme", - "version": "32.5.0", + "version": "33.0.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "32.5.0", + "@iosevka/param": "33.0.0", "@unicode/unicode-16.0.0": "^1.6.5", "semver": "^7.6.3" } diff --git a/tools/data-export/package.json b/tools/data-export/package.json index 3224e4794..5fcf114d7 100644 --- a/tools/data-export/package.json +++ b/tools/data-export/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/data-export", - "version": "32.5.0", + "version": "33.0.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,7 +10,7 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "32.5.0", + "@iosevka/param": "33.0.0", "@unicode/unicode-16.0.0": "^1.6.5", "cldr": "^7.6.0", "@msgpack/msgpack": "^2.8.0" diff --git a/tools/generate-samples/package.json b/tools/generate-samples/package.json index cc0c202b7..d32abe17f 100644 --- a/tools/generate-samples/package.json +++ b/tools/generate-samples/package.json @@ -1,11 +1,11 @@ { "name": "@iosevka/generate-samples", - "version": "32.5.0", + "version": "33.0.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/data-export": "32.5.0" + "@iosevka/data-export": "33.0.0" } } diff --git a/tools/misc/package.json b/tools/misc/package.json index 06c558123..01d55c375 100644 --- a/tools/misc/package.json +++ b/tools/misc/package.json @@ -1,11 +1,11 @@ { "name": "@iosevka/misc", - "version": "32.5.0", + "version": "33.0.0", "private": true, "dependencies": { "semver": "^7.6.3", "wawoff2": "^2.0.1", - "@iosevka/util": "32.5.0", + "@iosevka/util": "33.0.0", "@unicode/unicode-16.0.0": "^1.6.5" } }