diff --git a/CHANGELOG.md b/CHANGELOG.md index 510ddba582..68d869d24f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,174 +1,49 @@ ## Modifications since last major version -### 28.1.0 - -* Add characters: - - LEFT VERTICAL BOX LINE (`U+23B8`) ... HORIZONTAL SCAN LINE-9 (`U+23BD`). - - SQUARE FOUR CORNERS (`U+26F6`). - - TWO JOINED SQUARES (`U+29C9`). - - OVERLAPPING WHITE SQUARES (`U+2BBA`). - - OVERLAPPING WHITE AND BLACK SQUARES (`U+2BBB`). - - OVERLAPPING BLACK SQUARES (`U+2BBC`). - - OUTLINED LATIN CAPITAL LETTER A (`U+1CCD6`) ... OUTLINED LATIN CAPITAL LETTER Z (`U+1CCEF`) (Purposed for Unicode 16; L2/21-235). - - OUTLINED DIGIT ZERO (`U+1CCF0`) ... OUTLINED DIGIT NINE (`U+1CCF9`) (Purposed for Unicode 16; L2/21-235). - - BLOCK OCTANT-3 (`U+1CD00`) ... BLOCK OCTANT-2345678 (`U+1CDE5`) (Purposed for Unicode 16; L2/21-235). - - LEFT HALF TRIPLE DASH HORIZONTAL (`U+1CE0D`) ... LARGE TYPE PIECE STEM-12 (`U+1CE50`) (Purposed for Unicode 16; L2/21-235). -* Fix metrics of Cyrillic Yery (#2182). -* Fix Italic/Upright localization forms for Serbian/Macedonian Cyrillic. -* Add Bosnian Cyrillic localization forms based on Serbian/Macedonian. -* Add italic form for Combining Cyrillic Letter Es-Te (U+2DF5) (#2187). -* `zero` feature will apply to composites (#2191). - - -### 28.0.7 - -* Make superscript/subscript/overscript Cyrillic characters obey localization forms of base letters (#2177). -* Add IPA localization forms for Greek Lower Beta (`β`) and Chi (`χ`). -* Add APLF variants for `U+25F0`, `U+25F3`, and `U+25F4`. -* Make Ezh follow variants of `Z`/`z` (#1957). -* Fix serif form for Cyrillic Lower Tall / Iotified Yat (#2178). -* Make top serifs of Cyrillic Lower Straight U (`ү`, `ұ`) and Latin Lower Gamma (`ɣ`) respond to italics. -* Fix leaning marks of Capital Turned/Half H (`U+2C75`, `U+2C76`, `U+A78D`, `U+A7F5`, `U+A7F6`). -* Fix leaning marks of Wynn (`U+01BF`, `U+01F7`). -* Fix leaning marks of Insular R (`U+A782`, `U+A783`). -* Fix leaning marks of Greek/Latin Beta (`U+03B2`, `U+A7B4`, `U+A7B5`). -* Fix leaning marks of Greek Lower San (`U+03FB`). - - -### 28.0.6 - -* Fix application of `APLF` for several [Uiua](https://www.uiua.org/) operators. -* Adjust serif shapes for lowercase italic Yeri glyphs with corner body shape (#2151). -* Adjustments to CV defaults: - - Make `a` (`cv26`) use `single-storey-tailed` under slab italic by default. - - Make `b` (`cv27`) use `toothed-motion-serifed` under slab italic by default. - - Make `g` (`cv32`) use `single-storey-serifless` under slab italic by default. - - Make `q` (`cv41`) use `straight-bottom-serifed` under slab italic by default. - - -### 28.0.5 - -* Add characters: - - LIGHTNING (`U+2607`) (#2158). - - SUBSET WITH DOT (`U+2ABD`). - - SUPERSET WITH DOT (`U+2ABE`). -* Add untagged variant selector for Cyrillic Capital Ef (`Ф`) for style-driven variation. -* Allow turned h (`ɥ`) and turned m with long leg (`ɰ`) to use toothless-corner variants. -* Fix leaning marks of Turned/Reversed Sans-Serif Capital L. -* Fix leaning marks of Cyrillic Tall Te. -* Fix leaning marks of Greek Lower Mu/Rho. -* `APLF` feature will apply to all [Uiua](https://www.uiua.org/) operators. - - -### 28.0.4 - -* Fix leaning marks of turned capital F/L (#2137). -* Fix overlay bar placement of Z with Hook and Z with Swash Tail (#2141). -* Fix attachment of descender parts of Cyrillic Lower Ha/X under `x` = `cursive` (#2142). -* Make the Eng part in LATIN SMALL LETTER FENG DIGRAPH always connected to the f part (#2143). -* Fix top bar shape in CYRILLIC CAPITAL LETTER DJE (#2145). -* Fix leaning marks placement for reversed k/F/P (#2150). - - -### 28.0.3 - -* Add characters: - - COMBINING SUSPENSION MARK (`U+1DC3`). - - FROWN (`U+2322`). - - SMILE (`U+2323`). - - CIRCLE WITH HORIZONTAL BAR (`U+29B5`). - - LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER (`U+A750`) (#1797). - - LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER (`U+A751`) (#1797). -* Remove tailless variants for Latin Iota (`U+0196`, `U+0269`) and Cyrillic Iota (`U+A646`, `U+A647`). -* Fix slash ligations when `frac` feature is enabled (#2130). -* Fix leaning marks of turned `r` (#2133). - - -### 28.0.2 - -* Add characters: - - LATIN CAPITAL LETTER AU (`U+A736`) (#1689). - - LATIN SMALL LETTER AU (`U+A737`) (#1689). -* Refine shape of Tshe and Cyrillic Capital Letter Te with Middle Hook (`U+A68A`) (#2123). -* Remove bottom serif of Cyrillic Small Letter Ghe with Middle Hook (`U+0495`) under italics. -* Make serif variants of Cyrillic Small Letter Tall Te (`U+1C84`) respond to italics. -* Make terminal serif behavior of palatalized Komi consonants (`U+0502`...`U+0505`, `U+0508`...`U+050F`) more consistent with each other. -* Refine serifs of Turned M (`U+019C`, `U+026F`, `U+0270`, `U+1D1F`, `U+1D5A`, `U+1DAD`), Cyrillic Sha (`U+0448`, `U+2DF2`, `U+1E046`, `U+1E064`), and Cyrillic Shcha (`U+0449`, `U+2DF3`) under monospace. - - -### 28.0.1 - -* Add italic form of CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK (`U+A68B`) (#2119). -* Add missing feature tag to chaining plus ligation (#2118). -* Make the central part of Cyrillic Twe to follow lowercase Tau variants (#2122). - - -### 28.0.0 - -* \[**BREAKING**\] The filenames and package filenames are changed. - - They will now use PascalCase instead of kebab-case. - - To package manager maintainers: Please upgrade your script to make it capable to download and install the fonts under new names, and properly uninstall the fonts under old names. -* \[**BREAKING**\] Certain properties in the build plans are changed to camelCase. Using them will trigger a build failure. - - `no-cv-ss` → `noCvSs` - - `no-ligation` → `noLigation` - - `export-glyph-names` → `exportGlyphNames` - - `build-texture-feature` → `buildTextureFeature` - - `metric-override` → `metricOverride` - - `compatibility-ligatures` → `compatibilityLigatures` - - `exclude-chars` → `excludeChars` - - `webfont-formats` → `webfontFormats` -* \[**BREAKING**\] The "SGr" TTC packages for Iosevka Aile and Etoile will no longer be generated, as they are duplicates to the non-SGr TTC packages. +### 29.0.0-beta.1 + +* \[**BREAKING**\] Add separate serifed variants for digits `2` through `5`. As a result, current variants are partially renamed and reordered (#1965). Change of variant names: + - `two`.`straight-neck` → `two`.`straight-neck-serifless` + - `two`.`curly-neck` → `two`.`curly-neck-serifless` + - `three`.`flat-top` → `three`.`flat-top-serifless` + - `four`.`closed` → `four`.`closed-serifless` + - `four`.`closed-non-crossing` → `four`.`closed-non-crossing-serifless` + - `four`.`semi-open` → `four`.`semi-open-serifless` + - `four`.`semi-open-non-crossing` → `four`.`semi-open-non-crossing-serifless` + - `four`.`open` → `four`.`open-serifless` + - `four`.`open-non-crossing` → `four`.`open-non-crossing-serifless` + - `five`.`upright-arched` → `five`.`upright-arched-serifless` + - `five`.`upright-flat` → `five`.`upright-flat-serifless` + - `five`.`oblique-arched` → `five`.`oblique-arched-serifless` + - `five`.`oblique-flat` → `five`.`oblique-flat-serifless` * \[**BREAKING**\] Reorder of glyph variants: - - Influenced characters: `M`, `R`, `f`, `i`, `l`, `t`, `x`, Long S (`ſ`), Lower Lambda (`λ`), Lower Tau (`τ`), Lower Chi (`χ`), Cyrillic Lower Em (`м`), Cyrillic Lower Ef (`ф`), Cyrillic Ya (`Я`, `я`), `5`. -* \[**BREAKING**\] Tags for variant features for Cyrillic lowercase Er and U are changed to `cv76` and `cv78`. - - Various other glyph variant tags are also changed to reflect this insertion. -* \[**BREAKING**\] Make the ligation group names for symbol connections more intuitive, and add alternatives to start chaining from at least 3 continuous characters (#2100): - - `plusplus` → `plus-plus`, `plus-plus-plus`. - - `connected-hyphen` → `minus-minus`, `minus-minus-minus`. - - `connected-tilde-as-wave` → `tilde-tilde`, `tilde-tilde-tilde`. - - `connected-underscore` → `underscore-underscore`, `underscore-underscore-underscore`. - - `connected-number-sign` → `hash-hash`, `hash-hash-hash`. -* Add Characters: - - CYRILLIC CAPITAL LETTER LHA (`U+0514`) ... CYRILLIC SMALL LETTER YAE (`U+0519`) (#2018). - - GEORGIAN PARAGRAPH SEPARATOR (`U+10FB`). - - COMBINING BREVE-MACRON (`U+1DCB`) ... COMBINING MACRON-BREVE (`U+1DCC`) (#1880). - - COMBINING DOUBLE CIRCUMFLEX ABOVE (`U+1DCD`). - - COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE (`U+1DD3`). - - COMBINING DELETION MARK (`U+1DFB`). - - LINE SEPARATOR (`U+2028`) ... PARAGRAPH SEPARATOR (`U+2029`). - - TRIANGLE-HEADED RIGHTWARDS ARROW (`U+279D`). - - LONG RIGHTWARDS SQUIGGLE ARROW (`U+27FF`). - - LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE (`U+2902`) ... LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE (`U+2904`). - - LONG LEFTWARDS SQUIGGLE ARROW (`U+2B33`). - - DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW (`U+2B4D`). - - RAISED SQUARE (`U+2E0B`). - - HYPODIASTOLE (`U+2E12`). - - TWO DOTS OVER ONE DOT PUNCTUATION (`U+2E2A`) ... FIVE DOT MARK (`U+2E2D`). - - LATIN SMALL LETTER U WITH LEFT HOOK (`U+AB52`). - - MODIFIER LETTER SMALL U WITH LEFT HOOK (`U+AB5F`). -* Add hook-inward-serifed variants for `a` (#2085). -* Add single-storey-double-serifed and single-storey-tailed-serifed variants for `a` and Greek Lower Alpha (`α`) (#1949). - - Make `a`.`single-storey-tailed-serifed` the default for slab italic to match `g` and `q`. -* Add bottom-serifed variants for `d`, and `q`. -* Add bottom-right-serifed variants for `U`. -* Add tailless variants for Greek Lower Iota (`ι`). -* Make Greek Lower Iota (`ι`) and Greek Lower Tau (`τ`) semi-tailed under default upright and tailed under default italic. -* Remove earless-rounded variants for `U+01A5`, `U+0256`, `U+02A0`, and `U+1D91`. -* Remove earless-corner variants for `U+027E`. -* Improve serifs for turned k (`U+029E`) to match `q` and turned h (`U+0265`). -* Improve top-left serif for LATIN SMALL LETTER KRA (`U+0138`) to match `k`. -* Make Greek Kappa (`U+03BA`) respond to more serif variants for `k` (`cv36`). -* Add a top-left serif to GREEK SMALL LETTER HETA (`U+0371`) under slab. -* Add a serif to MATHEMATICAL DOUBLE-STRUCK SMALL J (`U+1D55B`) to match that of MATHEMATICAL DOUBLE-STRUCK SMALL I (`U+1D55A`). -* Improve vertical alignmant of bowl for LATIN CAPITAL LETTER THORN WITH STROKE (`U+A764`) and LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER (`U+A766`). -* Stylistic set fixes: - - Fix `cv10` for `ss01`, `ss02`, and `ss08` under slab. - - Fix `cv53` for `ss16`. - - Fix `cv64` and `cv65` for `ss07`. - - Fix `cv66` for `ss17`. - - Fix `cv81` and `cv82` for `ss03` and `ss08` under italic slab. - - Fix `cv93` for `ss01`. - - Fix `vsAJ` for `ss10`. - - Fix `vlAB` for `ss09` and `ss14`. - - Fix `vlAD` for `ss05` and `ss14`. + - Influenced characters: `I`, `U`, `Z`, `i`, `l`, `u`, `z`, Greek Lower Mu (`μ`), Micro Sign (`µ`). +* \[**BREAKING**\] Quasi-proportional will now use a six-unit system instead of four. Metrics of various letters (`f`, `t`, `r`, `m`, `w`, etc.) are adjusted. +* Add characters: + - UPWARDS WHITE ARROW FROM BAR (`U+21EA`) ... RIGHTWARDS WHITE ARROW FROM WALL (`U+21F0`). + - RETURN SYMBOL (`U+23CE`). + - UPWARDS WHITE ARROW FROM BAR WITH HORIZONTAL BAR (`U+2BB8`). + - LOWER HORIZONTAL RULER SEGMENT (`U+1CC05`) (Purposed for Unicode 16; L2/21-235). + - RIGHT VERTICAL RULER SEGMENT (`U+1CC06`) (Purposed for Unicode 16; L2/21-235). + - LOWER RIGHT RULER SEGMENT (`U+1CC07`) (Purposed for Unicode 16; L2/21-235). + - BOX DRAWINGS LIGHT HORIZONTAL AND UPPER RIGHT (`U+1CC1B`) ... BOX DRAWINGS LIGHT BOTTOM AND LOWER LEFT (`U+1CC1E`) (Purposed for Unicode 16; L2/21-235). + - SEPARATED BLOCK QUADRANT-1 (`U+1CC21`) ... SEPARATED BLOCK QUADRANT-1234 (`U+1CC2F`) (Purposed for Unicode 16; L2/21-235). + - BLACK NEUTRAL FACE (`U+1CC6F`) (Purposed for Unicode 16; L2/21-235). + - VERTICAL LINE WITH FOUR TICK MARKS (`U+1CC90`) (Purposed for Unicode 16; L2/21-235). + - HORIZONTAL LINE WITH FOUR TICK MARKS (`U+1CC91`) (Purposed for Unicode 16; L2/21-235). + - BOX DRAWINGS DOUBLE DIAGONAL LOWER LEFT TO MIDDLE CENTRE TO LOWER RIGHT (`U+1CE09`) (Purposed for Unicode 16; L2/21-235). + - BOX DRAWINGS DOUBLE DIAGONAL UPPER LEFT TO MIDDLE CENTRE TO UPPER RIGHT (`U+1CE0A`) (Purposed for Unicode 16; L2/21-235). + - SEPARATED BLOCK SEXTANT-1 (`U+1CE51`) ... SEPARATED BLOCK SEXTANT-123456 (`U+1CE8F`) (Purposed for Unicode 16; L2/21-235). + - UPPER LEFT ONE SIXTEENTH BLOCK (`U+1CE90`) ... LOWER HALF RIGHT ONE QUARTER BLOCK (`U+1CEAF`) (Purposed for Unicode 16; L2/21-235). + - FOLDER (`U+1F5C0`) (#2181). + - DOWNWARDS BLACK ARROW TO BAR (`U+1F8B3`) ... SOUTH WEST ARROW FROM BAR (`U+1F8BB`) (Purposed for Unicode 16; L2/21-235). + - LEFT TWO THIRDS BLOCK (`U+1FBCE`) (Purposed for Unicode 16; L2/21-235). + - LEFT ONE THIRD BLOCK (`U+1FBCF`) (Purposed for Unicode 16; L2/21-235). + - BOX DRAWINGS LIGHT DIAGONAL MIDDLE RIGHT TO LOWER LEFT (`U+1FBD0`) ... BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO MIDDLE RIGHT TO LOWER LEFT (`U+1FBDF`) (Purposed for Unicode 16; L2/21-235). + - UPPER CENTRE ONE QUARTER BLOCK (`U+1FBE4`) ... MIDDLE RIGHT ONE QUARTER BLOCK (`U+1FBE7`) (Purposed for Unicode 16; L2/21-235). +* Fix a disjoint stroke of Outlined Curly `Z` under some weights (#2195). +* Unify diagonal box drawings' angles (#2197). +* Fix Large Type Piece `U+1CE3B` (#2206). +* Added a `MOSC` feature that turns certain geometric shapes into mosaics (#2212). +* Fix `frac` feature for better recognizing fraction patterns (#2214). diff --git a/README.md b/README.md index d4ca1ced0a..a68f4bcd23 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,29 @@

-**Iosevka** is an *open-source*, *sans-serif* + *slab-serif*, *monospace* + *quasi‑proportional* typeface family, designed for *writing code*, using in *terminals*, and preparing *technical documents*. +**Iosevka** \[ˌjɔˈseβ.kʰa\] is an *open-source*, *sans-serif* + *slab-serif*, *monospace* + *quasi‑proportional* typeface family, designed for *writing code*, using in *terminals*, and preparing *technical documents*. ## Installation +### Installing from GitHub Releases + +1. Download your font package from [releases](https://github.com/be5invis/Iosevka/releases). + * For Linux users you could use the following command to download all the packages in the latest release: + ```bash + curl -s 'https://api.github.com/repos/be5invis/Iosevka/releases/latest' | jq -r ".assets[] | .browser_download_url" | grep ttf-iosevka | xargs -n 1 curl -L -O --fail --silent --show-error + ``` +2. Quit all your editors / programs. +3. Unarchive the font package and you will see the font files. +4. Take actions depending on your OS: + * **Windows**: Select the font files and drag into font [settings](ms-settings:fonts) / font control panel page. + * On Windows 10 1809 or newer, the default font installation is per-user, and it may cause compatibility issues for some applications, mostly written in Java. To cope with this, right click and select “Install for all users” instead. [Ref.](https://youtrack.jetbrains.com/issue/JRE-1166?p=IDEA-200145) + * **macOS**: [Follow instructions here](http://support.apple.com/kb/HT2509). + * **Linux** : Copy the font files to your fonts directory then run `sudo fc-cache`. + ### Installing via Package Managers +*Disclaimer: This repository does not maintain any package manager distribution. The packages listed below may not always be up-to-date.* + * **macOS** * Standard distribution in Homebrew: ```bash @@ -26,21 +43,6 @@ * **FreeBSD**: The font can be installed with `pkg install iosevka`. * **OpenBSD**: Run `pkg_info -Q iosevka` to see which Iosevka packages are available. Use `pkg_add` to install the chosen package(s). -### Manual Installation - -1. Download your font package from [releases](https://github.com/be5invis/Iosevka/releases). - * For Linux users you could use the following command to download all the packages in the latest release: - ```bash - curl -s 'https://api.github.com/repos/be5invis/Iosevka/releases/latest' | jq -r ".assets[] | .browser_download_url" | grep ttf-iosevka | xargs -n 1 curl -L -O --fail --silent --show-error - ``` -2. Quit all your editors / programs. -3. Unarchive the font package and you will see the font files. -4. Take actions depending on your OS: - * **Windows**: Select the font files and drag into font [settings](ms-settings:fonts) / font control panel page. - * On Windows 10 1809 or newer, the default font installation is per-user, and it may cause compatibility issues for some applications, mostly written in Java. To cope with this, right click and select “Install for all users” instead. [Ref.](https://youtrack.jetbrains.com/issue/JRE-1166?p=IDEA-200145) - * **macOS**: [Follow instructions here](http://support.apple.com/kb/HT2509). - * **Linux** : Copy the font files to your fonts directory then run `sudo fc-cache`. - ## Features In the official package, Iosevka provides 6 monospace subfamilies (sans-serif and slab-serif, each in the 3 spacings Default, Term and Fixed) and 2 quasi-proportional subfamilies (Aile (sans-serif) and Etoile (slab-serif)). In all the monospace subfamilies, 9 weights (Thin to Heavy), 2 widths (Normal and Extended), and 3 slopes (Upright, Italic and Oblique) are included. In the quasi-proportional subfamilies, the quantity of widths is reduced to 1. diff --git a/changes/29.0.0-beta.1.md b/changes/29.0.0-beta.1.md new file mode 100644 index 0000000000..f42e517606 --- /dev/null +++ b/changes/29.0.0-beta.1.md @@ -0,0 +1,44 @@ +* \[**BREAKING**\] Add separate serifed variants for digits `2` through `5`. As a result, current variants are partially renamed and reordered (#1965). Change of variant names: + - `two`.`straight-neck` → `two`.`straight-neck-serifless` + - `two`.`curly-neck` → `two`.`curly-neck-serifless` + - `three`.`flat-top` → `three`.`flat-top-serifless` + - `four`.`closed` → `four`.`closed-serifless` + - `four`.`closed-non-crossing` → `four`.`closed-non-crossing-serifless` + - `four`.`semi-open` → `four`.`semi-open-serifless` + - `four`.`semi-open-non-crossing` → `four`.`semi-open-non-crossing-serifless` + - `four`.`open` → `four`.`open-serifless` + - `four`.`open-non-crossing` → `four`.`open-non-crossing-serifless` + - `five`.`upright-arched` → `five`.`upright-arched-serifless` + - `five`.`upright-flat` → `five`.`upright-flat-serifless` + - `five`.`oblique-arched` → `five`.`oblique-arched-serifless` + - `five`.`oblique-flat` → `five`.`oblique-flat-serifless` +* \[**BREAKING**\] Reorder of glyph variants: + - Influenced characters: `I`, `U`, `Z`, `i`, `l`, `u`, `z`, Greek Lower Mu (`μ`), Micro Sign (`µ`). +* \[**BREAKING**\] Quasi-proportional will now use a six-unit system instead of four. Metrics of various letters (`f`, `t`, `r`, `m`, `w`, etc.) are adjusted. +* Add characters: + - UPWARDS WHITE ARROW FROM BAR (`U+21EA`) ... RIGHTWARDS WHITE ARROW FROM WALL (`U+21F0`). + - RETURN SYMBOL (`U+23CE`). + - UPWARDS WHITE ARROW FROM BAR WITH HORIZONTAL BAR (`U+2BB8`). + - LOWER HORIZONTAL RULER SEGMENT (`U+1CC05`) (Purposed for Unicode 16; L2/21-235). + - RIGHT VERTICAL RULER SEGMENT (`U+1CC06`) (Purposed for Unicode 16; L2/21-235). + - LOWER RIGHT RULER SEGMENT (`U+1CC07`) (Purposed for Unicode 16; L2/21-235). + - BOX DRAWINGS LIGHT HORIZONTAL AND UPPER RIGHT (`U+1CC1B`) ... BOX DRAWINGS LIGHT BOTTOM AND LOWER LEFT (`U+1CC1E`) (Purposed for Unicode 16; L2/21-235). + - SEPARATED BLOCK QUADRANT-1 (`U+1CC21`) ... SEPARATED BLOCK QUADRANT-1234 (`U+1CC2F`) (Purposed for Unicode 16; L2/21-235). + - BLACK NEUTRAL FACE (`U+1CC6F`) (Purposed for Unicode 16; L2/21-235). + - VERTICAL LINE WITH FOUR TICK MARKS (`U+1CC90`) (Purposed for Unicode 16; L2/21-235). + - HORIZONTAL LINE WITH FOUR TICK MARKS (`U+1CC91`) (Purposed for Unicode 16; L2/21-235). + - BOX DRAWINGS DOUBLE DIAGONAL LOWER LEFT TO MIDDLE CENTRE TO LOWER RIGHT (`U+1CE09`) (Purposed for Unicode 16; L2/21-235). + - BOX DRAWINGS DOUBLE DIAGONAL UPPER LEFT TO MIDDLE CENTRE TO UPPER RIGHT (`U+1CE0A`) (Purposed for Unicode 16; L2/21-235). + - SEPARATED BLOCK SEXTANT-1 (`U+1CE51`) ... SEPARATED BLOCK SEXTANT-123456 (`U+1CE8F`) (Purposed for Unicode 16; L2/21-235). + - UPPER LEFT ONE SIXTEENTH BLOCK (`U+1CE90`) ... LOWER HALF RIGHT ONE QUARTER BLOCK (`U+1CEAF`) (Purposed for Unicode 16; L2/21-235). + - FOLDER (`U+1F5C0`) (#2181). + - DOWNWARDS BLACK ARROW TO BAR (`U+1F8B3`) ... SOUTH WEST ARROW FROM BAR (`U+1F8BB`) (Purposed for Unicode 16; L2/21-235). + - LEFT TWO THIRDS BLOCK (`U+1FBCE`) (Purposed for Unicode 16; L2/21-235). + - LEFT ONE THIRD BLOCK (`U+1FBCF`) (Purposed for Unicode 16; L2/21-235). + - BOX DRAWINGS LIGHT DIAGONAL MIDDLE RIGHT TO LOWER LEFT (`U+1FBD0`) ... BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO MIDDLE RIGHT TO LOWER LEFT (`U+1FBDF`) (Purposed for Unicode 16; L2/21-235). + - UPPER CENTRE ONE QUARTER BLOCK (`U+1FBE4`) ... MIDDLE RIGHT ONE QUARTER BLOCK (`U+1FBE7`) (Purposed for Unicode 16; L2/21-235). +* Fix a disjoint stroke of Outlined Curly `Z` under some weights (#2195). +* Unify diagonal box drawings' angles (#2197). +* Fix Large Type Piece `U+1CE3B` (#2206). +* Added a `MOSC` feature that turns certain geometric shapes into mosaics (#2212). +* Fix `frac` feature for better recognizing fraction patterns (#2214). diff --git a/changes/28.0.0.md b/changes/archives/28.x/28.0.0.md similarity index 100% rename from changes/28.0.0.md rename to changes/archives/28.x/28.0.0.md diff --git a/changes/28.0.1.md b/changes/archives/28.x/28.0.1.md similarity index 100% rename from changes/28.0.1.md rename to changes/archives/28.x/28.0.1.md diff --git a/changes/28.0.2.md b/changes/archives/28.x/28.0.2.md similarity index 100% rename from changes/28.0.2.md rename to changes/archives/28.x/28.0.2.md diff --git a/changes/28.0.3.md b/changes/archives/28.x/28.0.3.md similarity index 100% rename from changes/28.0.3.md rename to changes/archives/28.x/28.0.3.md diff --git a/changes/28.0.4.md b/changes/archives/28.x/28.0.4.md similarity index 100% rename from changes/28.0.4.md rename to changes/archives/28.x/28.0.4.md diff --git a/changes/28.0.5.md b/changes/archives/28.x/28.0.5.md similarity index 100% rename from changes/28.0.5.md rename to changes/archives/28.x/28.0.5.md diff --git a/changes/28.0.6.md b/changes/archives/28.x/28.0.6.md similarity index 100% rename from changes/28.0.6.md rename to changes/archives/28.x/28.0.6.md diff --git a/changes/28.0.7.md b/changes/archives/28.x/28.0.7.md similarity index 100% rename from changes/28.0.7.md rename to changes/archives/28.x/28.0.7.md diff --git a/changes/28.1.0.md b/changes/archives/28.x/28.1.0.md similarity index 100% rename from changes/28.1.0.md rename to changes/archives/28.x/28.1.0.md diff --git a/doc/PACKAGE-LIST.md b/doc/PACKAGE-LIST.md index 1e616860e1..32957d32b6 100644 --- a/doc/PACKAGE-LIST.md +++ b/doc/PACKAGE-LIST.md @@ -1,7 +1,7 @@ -# Package list of Release 28.1.0 +# Package list of Release 29.0.0-beta.1 ## 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 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ 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 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ 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 b5c73ea7b3..7eb7d3e1e4 100644 --- a/doc/character-variants.md +++ b/doc/character-variants.md @@ -204,8 +204,8 @@ cv09 - + @@ -520,8 +520,8 @@ cv20 - + @@ -671,15 +671,15 @@ - - - - - - + + + + + + 1 @@ -699,15 +699,15 @@ - - - - - - + + + + + + 13 @@ -965,11 +965,11 @@ cv34 - + @@ -1096,11 +1096,11 @@ cv37 - + @@ -1477,8 +1477,8 @@ cv45 - + @@ -1664,15 +1664,15 @@ - - - - - - + + + + + + 1 @@ -1692,15 +1692,15 @@ - - - - - - + + + + + + 13 @@ -2066,8 +2066,8 @@ cv62 - + @@ -2870,35 +2870,46 @@ cv87 - - - + + + + + 1 2 - +3 +4 + cv88 - + + - + 1 2 - +3 + cv89 - - - - - - - + + + + + + + + + + + + 1 @@ -2907,22 +2918,35 @@ 4 5 6 - +7 +8 +9 +10 +11 +12 cv90 - - - - - + + + + + + + + + 1 2 3 4 - +5 +6 +7 +8 + cv91 @@ -3312,8 +3336,8 @@ VSAQ - + @@ -3399,7 +3423,7 @@ -VXAA +VLAE @@ -3410,7 +3434,7 @@ -VLAE +VLAF @@ -3421,7 +3445,7 @@ -VLAF +VLAG diff --git a/doc/custom-build.md b/doc/custom-build.md index 8adaa0d1a9..9cf1061e29 100644 --- a/doc/custom-build.md +++ b/doc/custom-build.md @@ -60,8 +60,16 @@ Inside the plan, top-level properties include: - As a consequence, the following characters will be **removed**: - `U+27F5` LONG LEFTWARDS ARROW - `U+27F6` LONG RIGHTWARDS ARROW + - `U+27F7` LONG LEFT RIGHT ARROW + - `U+27F8` LONG LEFTWARDS DOUBLE ARROW + - `U+27F9` LONG RIGHTWARDS DOUBLE ARROW + - `U+27FA` LONG LEFT RIGHT DOUBLE ARROW - `U+27FB` LONG LEFTWARDS ARROW FROM BAR - `U+27FC` LONG RIGHTWARDS ARROW FROM BAR + - `U+27FD` LONG LEFTWARDS DOUBLE ARROW FROM BAR + - `U+27FE` LONG RIGHTWARDS DOUBLE ARROW FROM BAR + - `U+27FF` LONG RIGHTWARDS SQUIGGLE ARROW + - `U+2B33` LONG LEFTWARDS SQUIGGLE ARROW - Remove `NWID` and `WWID` features typographic features - `fixed`: Apply `fontconfig-mono` changes and further remove ligations. * `serifs`: Optional, String, configures style of serifs. @@ -426,10 +434,10 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `I`
3 variants - - - + + +
capital-i = 'serifed', cv09 = 1
I with standard (long) serifs (default)
capital-i = 'serifless', cv09 = 2
capital-i = 'serifless', cv09 = 1
I without serifs, like a straight bar
capital-i = 'serifed', cv09 = 2
I with standard (long) serifs (default)
capital-i = 'short-serifed', cv09 = 3
I with short serifs
@@ -696,10 +704,10 @@ Subsection `variants` is used to configure character variants in the font. Prope - - - + + + @@ -826,48 +834,48 @@ Subsection `variants` is used to configure character variants in the font. Prope - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + @@ -1074,16 +1082,16 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `i`
14 variants
capital-u = 'toothed-serifless', cv20 = 1
U with toothed shape; without serifs
capital-u = 'toothed-motion-serifed', cv20 = 2
U with toothed shape, and motion serifs at top-left and bottom-right
capital-u = 'toothed-bottom-right-serifed', cv20 = 3
capital-u = 'toothed-bottom-right-serifed', cv20 = 2
U with toothed shape, and serif at bottom-right
capital-u = 'toothed-motion-serifed', cv20 = 3
U with toothed shape, and motion serifs at top-left and bottom-right
capital-u = 'toothed-serifed', cv20 = 4
U with toothed shape, and serifs
capital-u = 'tailed-serifless', cv20 = 5
Z with straight body shape, and a diagonal crossbar; without serifs
capital-z = 'straight-serifless-with-horizontal-crossbar', cv25 = 3
Z with straight body shape, and a horizontal crossbar; without serifs
capital-z = 'straight-serifed', cv25 = 4
Z with straight body shape, and serifs (default for Slab)
capital-z = 'straight-serifed-with-crossbar', cv25 = 5
Z with straight body shape, serifs, and a diagonal crossbar
capital-z = 'straight-serifed-with-horizontal-crossbar', cv25 = 6
Z with straight body shape, serifs, and a horizontal crossbar
capital-z = 'straight-top-serifed', cv25 = 4
Z with straight body shape, and serifs at top
capital-z = 'straight-top-serifed-with-crossbar', cv25 = 5
Z with straight body shape, serifs at top, and a diagonal crossbar
capital-z = 'straight-top-serifed-with-horizontal-crossbar', cv25 = 6
Z with straight body shape, serifs at top, and a horizontal crossbar
capital-z = 'straight-bottom-serifed', cv25 = 7
Z with straight body shape, and serifs at bottom
capital-z = 'straight-bottom-serifed-with-crossbar', cv25 = 8
Z with straight body shape, serifs at bottom, and a diagonal crossbar
capital-z = 'straight-bottom-serifed-with-horizontal-crossbar', cv25 = 9
Z with straight body shape, serifs at bottom, and a horizontal crossbar
capital-z = 'straight-top-serifed', cv25 = 10
Z with straight body shape, and serifs at top
capital-z = 'straight-top-serifed-with-crossbar', cv25 = 11
Z with straight body shape, serifs at top, and a diagonal crossbar
capital-z = 'straight-top-serifed-with-horizontal-crossbar', cv25 = 12
Z with straight body shape, serifs at top, and a horizontal crossbar
capital-z = 'straight-serifed', cv25 = 10
Z with straight body shape, and serifs (default for Slab)
capital-z = 'straight-serifed-with-crossbar', cv25 = 11
Z with straight body shape, serifs, and a diagonal crossbar
capital-z = 'straight-serifed-with-horizontal-crossbar', cv25 = 12
Z with straight body shape, serifs, and a horizontal crossbar
capital-z = 'curly-serifless', cv25 = 13
Z with curly body shape; without serifs
capital-z = 'curly-serifless-with-crossbar', cv25 = 14
Z with curly body shape, and a diagonal crossbar; without serifs
capital-z = 'curly-serifless-with-horizontal-crossbar', cv25 = 15
Z with curly body shape, and a horizontal crossbar; without serifs
capital-z = 'curly-serifed', cv25 = 16
Z with curly body shape, and serifs
capital-z = 'curly-serifed-with-crossbar', cv25 = 17
Z with curly body shape, serifs, and a diagonal crossbar
capital-z = 'curly-serifed-with-horizontal-crossbar', cv25 = 18
Z with curly body shape, serifs, and a horizontal crossbar
capital-z = 'curly-top-serifed', cv25 = 16
Z with curly body shape, and serifs at top
capital-z = 'curly-top-serifed-with-crossbar', cv25 = 17
Z with curly body shape, serifs at top, and a diagonal crossbar
capital-z = 'curly-top-serifed-with-horizontal-crossbar', cv25 = 18
Z with curly body shape, serifs at top, and a horizontal crossbar
capital-z = 'curly-bottom-serifed', cv25 = 19
Z with curly body shape, and serifs at bottom
capital-z = 'curly-bottom-serifed-with-crossbar', cv25 = 20
Z with curly body shape, serifs at bottom, and a diagonal crossbar
capital-z = 'curly-bottom-serifed-with-horizontal-crossbar', cv25 = 21
Z with curly body shape, serifs at bottom, and a horizontal crossbar
capital-z = 'curly-top-serifed', cv25 = 22
Z with curly body shape, and serifs at top
capital-z = 'curly-top-serifed-with-crossbar', cv25 = 23
Z with curly body shape, serifs at top, and a diagonal crossbar
capital-z = 'curly-top-serifed-with-horizontal-crossbar', cv25 = 24
Z with curly body shape, serifs at top, and a horizontal crossbar
capital-z = 'curly-serifed', cv25 = 22
Z with curly body shape, and serifs
capital-z = 'curly-serifed-with-crossbar', cv25 = 23
Z with curly body shape, serifs, and a diagonal crossbar
capital-z = 'curly-serifed-with-horizontal-crossbar', cv25 = 24
Z with curly body shape, serifs, and a horizontal crossbar
capital-z = 'cursive', cv25 = 25
Z with cursive body shape
capital-z = 'cursive-with-crossbar', cv25 = 26
- - - + - + - + - + + + @@ -1184,16 +1192,16 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `l`
14 variants
i = 'serifed', cv34 = 1
Serifed i (default for Upright)
i = 'serifless', cv34 = 2
i = 'serifless', cv34 = 1
i like a straight line
i = 'hooky', cv34 = 3
i = 'hooky', cv34 = 2
Hooky i
i = 'hooky-bottom', cv34 = 4
i = 'hooky-bottom', cv34 = 3
i with a sharp-turning horizontal tail
i = 'zshaped', cv34 = 5
i = 'zshaped', cv34 = 4
Z-shaped i
i = 'serifed', cv34 = 5
Serifed i (default for Upright)
i = 'serifed-asymmetric', cv34 = 6
i with shorter top serif and full bottom serif
i = 'tailed', cv34 = 7
- - - + - + - + - + + + @@ -1512,10 +1520,10 @@ Subsection `variants` is used to configure character variants in the font. Prope
l = 'serifed', cv37 = 1
Serifed l (default for Upright)
l = 'serifless', cv37 = 2
l = 'serifless', cv37 = 1
l like a straight line
l = 'hooky', cv37 = 3
l = 'hooky', cv37 = 2
Hooky l
l = 'hooky-bottom', cv37 = 4
l = 'hooky-bottom', cv37 = 3
l with a straight sharp-turning horizontal tail
l = 'zshaped', cv37 = 5
l = 'zshaped', cv37 = 4
Z-shaped l
l = 'serifed', cv37 = 5
Serifed l (default for Upright)
l = 'serifed-asymmetric', cv37 = 6
l with shorter top serif and full bottom serif
l = 'tailed', cv37 = 7
- - - + + + @@ -1674,48 +1682,48 @@ Subsection `variants` is used to configure character variants in the font. Prope - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + @@ -2014,10 +2022,10 @@ Subsection `variants` is used to configure character variants in the font. Prope
u = 'toothed-serifless', cv45 = 1
u with toothed shape; without serifs (default for Sans Upright)
u = 'toothed-motion-serifed', cv45 = 2
u with toothed shape, and motion serifs at top-left and bottom-right
u = 'toothed-bottom-right-serifed', cv45 = 3
u = 'toothed-bottom-right-serifed', cv45 = 2
u with toothed shape, and serif at bottom-right
u = 'toothed-motion-serifed', cv45 = 3
u with toothed shape, and motion serifs at top-left and bottom-right
u = 'toothed-serifed', cv45 = 4
u with toothed shape, and serifs (default for Slab Upright)
u = 'tailed-serifless', cv45 = 5
z with straight body shape, and a diagonal crossbar; without serifs
z = 'straight-serifless-with-horizontal-crossbar', cv50 = 3
z with straight body shape, and a horizontal crossbar; without serifs
z = 'straight-serifed', cv50 = 4
z with straight body shape, and serifs (default for Slab Upright)
z = 'straight-serifed-with-crossbar', cv50 = 5
z with straight body shape, serifs, and a diagonal crossbar
z = 'straight-serifed-with-horizontal-crossbar', cv50 = 6
z with straight body shape, serifs, and a horizontal crossbar
z = 'straight-top-serifed', cv50 = 4
z with straight body shape, and serifs at top
z = 'straight-top-serifed-with-crossbar', cv50 = 5
z with straight body shape, serifs at top, and a diagonal crossbar
z = 'straight-top-serifed-with-horizontal-crossbar', cv50 = 6
z with straight body shape, serifs at top, and a horizontal crossbar
z = 'straight-bottom-serifed', cv50 = 7
z with straight body shape, and serifs at bottom
z = 'straight-bottom-serifed-with-crossbar', cv50 = 8
z with straight body shape, serifs at bottom, and a diagonal crossbar
z = 'straight-bottom-serifed-with-horizontal-crossbar', cv50 = 9
z with straight body shape, serifs at bottom, and a horizontal crossbar
z = 'straight-top-serifed', cv50 = 10
z with straight body shape, and serifs at top
z = 'straight-top-serifed-with-crossbar', cv50 = 11
z with straight body shape, serifs at top, and a diagonal crossbar
z = 'straight-top-serifed-with-horizontal-crossbar', cv50 = 12
z with straight body shape, serifs at top, and a horizontal crossbar
z = 'straight-serifed', cv50 = 10
z with straight body shape, and serifs (default for Slab Upright)
z = 'straight-serifed-with-crossbar', cv50 = 11
z with straight body shape, serifs, and a diagonal crossbar
z = 'straight-serifed-with-horizontal-crossbar', cv50 = 12
z with straight body shape, serifs, and a horizontal crossbar
z = 'curly-serifless', cv50 = 13
z with curly body shape; without serifs
z = 'curly-serifless-with-crossbar', cv50 = 14
z with curly body shape, and a diagonal crossbar; without serifs
z = 'curly-serifless-with-horizontal-crossbar', cv50 = 15
z with curly body shape, and a horizontal crossbar; without serifs
z = 'curly-serifed', cv50 = 16
z with curly body shape, and serifs
z = 'curly-serifed-with-crossbar', cv50 = 17
z with curly body shape, serifs, and a diagonal crossbar
z = 'curly-serifed-with-horizontal-crossbar', cv50 = 18
z with curly body shape, serifs, and a horizontal crossbar
z = 'curly-top-serifed', cv50 = 16
z with curly body shape, and serifs at top
z = 'curly-top-serifed-with-crossbar', cv50 = 17
z with curly body shape, serifs at top, and a diagonal crossbar
z = 'curly-top-serifed-with-horizontal-crossbar', cv50 = 18
z with curly body shape, serifs at top, and a horizontal crossbar
z = 'curly-bottom-serifed', cv50 = 19
z with curly body shape, and serifs at bottom
z = 'curly-bottom-serifed-with-crossbar', cv50 = 20
z with curly body shape, serifs at bottom, and a diagonal crossbar
z = 'curly-bottom-serifed-with-horizontal-crossbar', cv50 = 21
z with curly body shape, serifs at bottom, and a horizontal crossbar
z = 'curly-top-serifed', cv50 = 22
z with curly body shape, and serifs at top
z = 'curly-top-serifed-with-crossbar', cv50 = 23
z with curly body shape, serifs at top, and a diagonal crossbar
z = 'curly-top-serifed-with-horizontal-crossbar', cv50 = 24
z with curly body shape, serifs at top, and a horizontal crossbar
z = 'curly-serifed', cv50 = 22
z with curly body shape, and serifs
z = 'curly-serifed-with-crossbar', cv50 = 23
z with curly body shape, serifs, and a diagonal crossbar
z = 'curly-serifed-with-horizontal-crossbar', cv50 = 24
z with curly body shape, serifs, and a horizontal crossbar
z = 'cursive', cv50 = 25
z with cursive body shape (default for Slab Italic)
z = 'cursive-with-crossbar', cv50 = 26
- - - + + + @@ -2696,48 +2704,74 @@ Subsection `variants` is used to configure character variants in the font. Prope
lower-mu = 'toothed-serifless', cv62 = 1
Greek small Mu (μ) with toothed shape; without serifs
lower-mu = 'toothed-motion-serifed', cv62 = 2
Greek small Mu (μ) with toothed shape, and motion serifs at top-left and bottom-right
lower-mu = 'toothed-bottom-right-serifed', cv62 = 3
lower-mu = 'toothed-bottom-right-serifed', cv62 = 2
Greek small Mu (μ) with toothed shape, and serif at bottom-right
lower-mu = 'toothed-motion-serifed', cv62 = 3
Greek small Mu (μ) with toothed shape, and motion serifs at top-left and bottom-right
lower-mu = 'toothed-serifed', cv62 = 4
Greek small Mu (μ) with toothed shape, and serifs
lower-mu = 'tailed-serifless', cv62 = 5
1 with bottom serif and a diagonal cut at top
- Styles for `2` -
2 variants +
4 variants - - - - + + + + + + + +
two = 'straight-neck', cv87 = 1
2 with straight neck
two = 'curly-neck', cv87 = 2
2 with curly neck (default)
two = 'straight-neck-serifless', cv87 = 1
2 with straight neck; without serifs
two = 'straight-neck-serifed', cv87 = 2
2 with straight neck, and serifs
two = 'curly-neck-serifless', cv87 = 3
2 with curly neck; without serifs (default for Sans)
two = 'curly-neck-serifed', cv87 = 4
2 with curly neck, and serifs (default for Slab)
- Styles for `3` -
2 variants +
3 variants - - - - + + + + + +
three = 'flat-top', cv88 = 1
Flat top 3 (Like Museo Sans / Montserrat)
three = 'two-arcs', cv88 = 2
Arched top 3 (default)
three = 'flat-top-serifless', cv88 = 1
3 with flat top (Like Museo Sans / Montserrat); without serifs
three = 'flat-top-serifed', cv88 = 2
3 with flat top (Like Museo Sans / Montserrat), and serifs
three = 'two-arcs', cv88 = 3
3 with arched top (default)
- Styles for `4` -
6 variants +
12 variants - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + +
four = 'closed', cv89 = 1
4 with closed contour
four = 'closed-non-crossing', cv89 = 2
4 with closed contour but the horizontal bar does not overflow the vertical bar
four = 'semi-open', cv89 = 3
4 with semi-open contour (default)
four = 'semi-open-non-crossing', cv89 = 4
4 with semi-open contour but the horizontal bar does not overflow the vertical bar
four = 'open', cv89 = 5
4 with open contour
four = 'open-non-crossing', cv89 = 6
4 with open contour but the horizontal bar does not overflow the vertical bar
four = 'closed-serifless', cv89 = 1
4 with closed contour; without serifs
four = 'closed-serifed', cv89 = 2
4 with closed contour, and serifs
four = 'closed-non-crossing-serifless', cv89 = 3
4 with closed contour, and horizontal bar that does not overflow the vertical bar; without serifs
four = 'closed-non-crossing-serifed', cv89 = 4
4 with closed contour, horizontal bar that does not overflow the vertical bar, and serifs
four = 'semi-open-serifless', cv89 = 5
4 with semi-open contour; without serifs (default for Sans)
four = 'semi-open-serifed', cv89 = 6
4 with semi-open contour, and serifs (default for Slab)
four = 'semi-open-non-crossing-serifless', cv89 = 7
4 with semi-open contour, and horizontal bar that does not overflow the vertical bar; without serifs
four = 'semi-open-non-crossing-serifed', cv89 = 8
4 with semi-open contour, horizontal bar that does not overflow the vertical bar, and serifs
four = 'open-serifless', cv89 = 9
4 with open contour; without serifs
four = 'open-serifed', cv89 = 10
4 with open contour, and serifs
four = 'open-non-crossing-serifless', cv89 = 11
4 with open contour, and horizontal bar that does not overflow the vertical bar; without serifs
four = 'open-non-crossing-serifed', cv89 = 12
4 with open contour, horizontal bar that does not overflow the vertical bar, and serifs
- Styles for `5` -
4 variants +
8 variants - - - - - - - - + + + + + + + + + + + + + + + +
five = 'upright-arched', cv90 = 1
5 with upright upper-left bar, and arched middle part (default)
five = 'upright-flat', cv90 = 2
5 with upright upper-left bar, and flat middle part
five = 'oblique-arched', cv90 = 3
5 with arched middle part
five = 'oblique-flat', cv90 = 4
5 with flat middle part
five = 'upright-arched-serifless', cv90 = 1
5 with upright upper-left bar, and arched middle part; without serifs (default for Sans)
five = 'upright-arched-serifed', cv90 = 2
5 with upright upper-left bar, arched middle part, and serifs (default for Slab)
five = 'upright-flat-serifless', cv90 = 3
5 with upright upper-left bar, and flat middle part; without serifs
five = 'upright-flat-serifed', cv90 = 4
5 with upright upper-left bar, flat middle part, and serifs
five = 'oblique-arched-serifless', cv90 = 5
5 with arched middle part; without serifs
five = 'oblique-arched-serifed', cv90 = 6
5 with arched middle part, and serifs
five = 'oblique-flat-serifless', cv90 = 7
5 with flat middle part; without serifs
five = 'oblique-flat-serifed', cv90 = 8
5 with flat middle part, and serifs
- Styles for `6`
3 variants @@ -3060,10 +3094,10 @@ Subsection `variants` is used to configure character variants in the font. Prope - - - + + + @@ -3128,25 +3162,25 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `++` (Plus ligations)
2 variants
micro-sign = 'toothed-serifless', VSAQ = 1
Micro Sign (µ) with toothed shape; without serifs (default for Sans Upright)
micro-sign = 'toothed-motion-serifed', VSAQ = 2
Micro Sign (µ) with toothed shape, and motion serifs at top-left and bottom-right
micro-sign = 'toothed-bottom-right-serifed', VSAQ = 3
micro-sign = 'toothed-bottom-right-serifed', VSAQ = 2
Micro Sign (µ) with toothed shape, and serif at bottom-right
micro-sign = 'toothed-motion-serifed', VSAQ = 3
Micro Sign (µ) with toothed shape, and motion serifs at top-left and bottom-right
micro-sign = 'toothed-serifed', VSAQ = 4
Micro Sign (µ) with toothed shape, and serifs (default for Slab Upright)
micro-sign = 'tailed-serifless', VSAQ = 5
- + - +
lig-plus-chain = 'with-notch', VXAA = 1
lig-plus-chain = 'with-notch', VLAE = 1
The bars in connected plus (++, etc.) ligation have notches in the middle
lig-plus-chain = 'without-notch', VXAA = 2
lig-plus-chain = 'without-notch', VLAE = 2
The bars in connected plus (++, etc.) ligation do not have notches in the middle (default)
- Styles for `=>` (Double arrow ligation)
2 variants - + - +
lig-double-arrow-bar = 'with-notch', VLAE = 1
lig-double-arrow-bar = 'with-notch', VLAF = 1
The bars in double arrow (=>, etc.) ligation have notches in the middle
lig-double-arrow-bar = 'without-notch', VLAE = 2
lig-double-arrow-bar = 'without-notch', VLAF = 2
The bars in double arrow (=>, etc.) ligation do not have notches in the middle (default)
- Styles for `->` (Single arrow ligation)
2 variants - + - +
lig-single-arrow-bar = 'with-notch', VLAF = 1
lig-single-arrow-bar = 'with-notch', VLAG = 1
The bars in single arrow (=>, etc.) ligation have notches in the middle
lig-single-arrow-bar = 'without-notch', VLAF = 2
lig-single-arrow-bar = 'without-notch', VLAG = 2
The bars in single arrow (=>, etc.) ligation do not have notches in the middle (default)
diff --git a/doc/packages-sha.txt b/doc/packages-sha.txt index 04799cbbcd..127928fcd3 100644 --- a/doc/packages-sha.txt +++ b/doc/packages-sha.txt @@ -1,452 +1,452 @@ -8180eb43c5f6ffa09c2fb14304930c45bdd5013d6714d7dec21245873b2c2b31 undefined -536a6f7387ac385037bcad6bf050832adb89299e45e40570c87e466d631b84f5 undefined -954d9ae953cb969575593917bc5a544e08b62fb357814c163eef7bf5580f196c undefined -c82c91e16441b01804e7698aae710d8ffdc7087a7c54fda91ebda38baaea48e6 undefined -1be3d9df8049b6e616daba33f6710c720b5bb74da03fd1ffa35cbb16338ed2c2 undefined -8b6a63665137d714128237c9af530d274da3d24c4172e29e45a57ea15eaad1a8 undefined -2411bc1d08bd2632eb2625f78cf15ac3cfd12a269bd96d9254eb5b1dbc8729a1 undefined -9eb94fb9f21a04dfa608d8a5eeaf092d14c8db16adc21e86a6be709841dbd351 undefined -559ed7fc2860ba895eb0f83088c322ec7e2f1a49adf671ddf893695351023680 undefined -4c33072f9309dc69cb6b9129bd1f557520383285128d654a7021813a74ce42a2 undefined -06ad63203743a6873f018ae815705e707b5540a04a587a3eb0ca4886616781ca undefined -7ae42041f15319c4ae1143bc31501d957ff87b041b3572350477297e7f7afa2f undefined -c10753e8e79ef42ea09a2550e4a74f3e1b094c19746cf73e7a8659675b73753d undefined -7f97e55377c118c2058b0cc194515810d4b9aa88ccd925e6c1b398329380d0f9 undefined -0b8b54c29d3db0cbdbc0a4a0798dde6cbf1ddca7e0692c3eacead7dd3bf31d61 undefined -c9fb3689d0da864ea28946628e90526d8f23563248cdff1055fb22d1425fae33 undefined -cd9f581ad6c5e02dd2af966904fa009d9789fd0b679d2775dc64f1bf543f5d49 undefined -838c34fee093ee23d73eda2e5575397dbbaed9b3d37ae51b5ee9944f23daae80 undefined -480fa0b7973ef95e12be3e9e932e0a382d27430c4ba1b06d0b93a212e468efb4 undefined -8ac89242ed5c6b81c95bda5fb47660ac781d09ce232f1366215386a64cf4025b undefined -a52c121670738b5d55571860429c0d4af825a985981f679b9be0a98336c50e5f undefined -e19e777992cc5b8f5a1ee6cd40e06f90a46e919ade92a317f9889d7f68c65f8c undefined -145c3dd7519cf36ca047b100ef729c0d1a78167ac23806e2635d3d6dfdc21eb2 undefined -4fb58ebd344ff0ce03fc4e74aede0c6baf4abccfdd926947309cfb82b44241c9 undefined -ab6257d4a3617407f6a0fafe9247d166dd60853e2ec625f0303787e289bf7b88 undefined -f308b9f577e0b2b9ed915424dae71f39c7a3a03e756f044cc2b9863f6dd7fd58 undefined -7efdcdf11717c0e762b7be9b55cd2291de6c30d1afd19974f396eea592b20723 undefined -3a7c9a8b2436a785044d3bd3bb3614cd09850a053ec5f4a84777fd63bb893e78 undefined -f867d002f595a3173197a306d6dbf411ccf5a905dff7c8a259be8ea4e31e482f undefined -04424bec675654aa802f603b3b2978c838b22dccd220521bb75974e72406a03e undefined -135b48b1dc5b1f53b37462bcbb5dfe601c90e0c3c7b13a9b8977d05c99cdd736 undefined -441f64eeeb1cf369bfc24f37171eac3deacbc88ca4d7321bf0480c0cfec8c97a undefined -aafef47ec35c7cc98b197bff63108481d679082dce831dae61b6c773045605af undefined -1c02aac0abd6ce7d94b0c5877b91619a5db8892206df9882a0214b0ad6a96b65 undefined -b75c72626e8e5f4d2c8fa55816cd071b10bc26ca127263d5f28a4afad547fa85 undefined -14d20c8c55bdfe074d9d6883f74b4309124ff4c12cd07a74c4e8a8f2afedeea2 undefined -56fee28179f823b6a1169d05af45932cd9afca4dec2b6a3c9633f0c4c7980f72 undefined -cb2e6d3dee04e5bbe8bf10a0a7991bc2552f686f6a25f044c22093494f0f31a1 undefined -0aacd6975b491add4f1dcdc3b2c463bbc1360c56c0aed349d3385ea463001713 undefined -f2a9dbb1a37446b80bfb8cfeb66b0c2cb56055f5bfb8c659509868f9c417dc77 undefined -43768c868910d111b99f53c9868bed238f3a4f246db3f4806db93ffe8bcdd817 undefined -ec3aba99e8f5415e7e011d21d1f481ed3130c52e73ec6f7a326dde1c63e7814e undefined -f2aa3e19fac0b2069e0e2a26c62a8f7cf829d6a0a74e6b8422278569a2a063e5 undefined -ea67a20d27165f552e27a80b1854959070b46f61413c887b7172d9d995240894 undefined -2c91c3aeda3c37dafdaa9b020c9a865568b5e0379d5751294c528bcdbdf12ab7 undefined -30608829b5236024bdd337c78fe97cc0ef888b1b97f54df9407cc9b07d6733b2 undefined -efb974d784ffe8abe0f9fd03e8c737d91dcbea61129c21a86952e5d11db97557 undefined -1fcabb93efd682d4fb821718745e0c63d23384e4b4c1e1c514581c2313876fda undefined -489e1fa217d98fb1b9729c62ff8149128487c76759e7d04d338910844a7db50f undefined -b99e882c61b7a4a43be3ebe1de45a331928e2dfe6a78740a1c9555e03369cd7a undefined -cebe496e5d5b3958591978caf6f82fe3bc609e799a8288ce10b29bfdc931e98e undefined -75f3f6e9a6b0c5dcba78cd08659382fff4326714165973f27bbdce2ef4b237f1 undefined -0fc4d9b1640a2b73acd131e429e5a11efe5d827c9531ed81c110c633baac49b7 undefined -914b6ba64a20564e3c78b6d54d078a21e2fa0a9e421bd4783febfb50fd6552d8 undefined -fdbd9d3eeba9774db337a6e55c8d5ed5e2ceb0e426af9fb4edf62d679c310d22 undefined -3d746f9889d6805e4b21fd605d5dede4f139dc6921f1b6a5aa56edfdd8dd32d3 undefined -d2073abc967a177bc6680f045f2ed07c7ef9e7e1ea0d449a1abb2c0e414b25d5 undefined -197a7235de5ead95695c43ddece88b0a500bea01c88c88e85e05b6bdd4ab25e0 undefined -654c757df9802af08f4472ec7fec315b90157b18cf1310381a2b07334601875b undefined -17b50a4cde32cc95bcab0731c246396edeee88be7763930192e952559abaa7c6 undefined -586adf9077a3d83d2e9d17f224f654de220283ab374d73a5681c748bd728c3da undefined -e1608497d823fff722f0403a5c4c105ecbcdecbf8abb538183c0351391cb8d34 undefined -e52c04e8ba366f8e02623093a2e9189de84df5287970d20509e64d63216f8cd9 undefined -d0ce4f9a50307d9b9668a05a7702216fa42fe91dbde93b42c42044e16b90f9cd undefined -ad3022dfd211c98bf0e7c0d88ad3bdc27221d95aa8bb7e223d81b03ff91956ef undefined -acb406726051e08c3e6c69a703f2f5ad24b3068350aae82c3f08462cabcca130 undefined -18f8c6493ea7c762b2aaecfb0bacc9b9d79814c8d7d990e06d990ef59f20b933 undefined -c45da79aed2de2387538a15ee92a347066428063b8fc1fa9582605a184673204 undefined -e795a550aea72efe7a702c86cf3d337a444ed76f6facf800093d48fad5c5f7e0 undefined -92356aaedb4b4211feb57d9be8959478a22f7ead0a76c9b28a85027da128f276 undefined -571f01beb24266c6287afcfc2a2c599d7c4f2884f3564373f4b8eaea52b1b25f undefined -2d0b1d0caf12fcbc14bf630a07e372018981a61e8af5aa9fef7c791f682e8ccf undefined -cb25a6448c6d93c28b47845bfff0441c27cb93c6595a63a6619b9064e13933eb undefined -9170560b051f9392856073cb8bfe0e8a27a02257b0438383cf49158b57ee804e undefined -9e6e04cb7bf126b8e2468ee953ef410a091bf5666861391ea42769ecf202a066 undefined -285149ba7792e423e7f2603c9cc3a38a3eb7b6cb44e5aba0a483f181ae1e25c6 undefined -a58856122a74bd802d3ef577eb10de55441da39bcbfcdb79e900dec40e0f86dd undefined -ef6626fcbfa451ad35cfefd5460a3cd5e90538cef5e72455872753b220a411da undefined -260f4bb5acb7f5ee766c7a8501ebb3e517e61813247a081e789a76b052f7e09a undefined -bedcb682b61d1cbb5092142af381245de8faab09a685b4bf1b1e568b4c337ef6 undefined -9ee7bc60f819290ad6fa58f7140d1f6cb0780fa10dd5c6e8431c80a43c25b715 undefined -a33e12353c870b0753c7f58fa07668f41b3d486a560261656be16f52398e3c15 undefined -8eb8d9560e83cf6cf5bee3d9ca12e9301ce1dfcdfcb8613ce1fde42d72bb8aeb undefined -a2bbc233f2dfc29be7816620330da03048bd8f9776089b3034af85ef45c66c01 undefined -68244732de1bf90722adc3fbeb318332f5833869467dede28ef4361111f638f3 undefined -82990b3a21a3bb87d7f7a9e75e4eb7eb496d6099c8876939ca5ed7351eb4331f undefined -26171b52081c4936bc481173bfb0abf5c8138e8f70f7ca7f0c1cdb9520a6b5bf undefined -cfae8945d8b01c0d5c6c4df44185b5af790dad49f7fa61049d3529eacd1c4c70 undefined -f077855d778611ac5bf1e0b8c106608cddd475dbf80f21d40552f17e075f96bf undefined -8fff7b0b3ce9e2a1e4700834b01b0f2e96b08290bc71e6a392e118ef03fd2420 undefined -3ba0a89dfb29231a2669b78e2684351fffde30d1d96b3f2e93a39704d0b4b7bc undefined -47614d665496ff8cd8b48e552548377fdcd91f63a361a2ca5b08f180166bc648 undefined -7196bfffa2ecd904dc1c152b211e86732e3f6a3e580f9d50da527ce18beadae4 undefined -62d1d0b05c341cee881f659d5882b1af8d15d50fbf72a0749fe242e3016431a5 undefined -1b73c805e76c7354567e4f10840608537ffb758b63d7cecb78dbeec8d196ae2c undefined -deba93f6e00c7997c4710da13e49985faa5a32f6414149cacf99f9f83fa6edd9 undefined -a5d95ba4a9ba7455ce84fd6038605df4a0b034981dece6b47cd0322bfe00b763 undefined -5c3ff0c3d6cd1a71891ef6e496d1e231b43e5b16d56454c0df577cf350171b22 undefined -a4bc3fe83535802ac737fb4bee5893e1dd558490fe28e45a10c08031c96c6536 undefined -5ae0cbba176c40069770743726f1f63c571ddb54b779a38f9213a4fedbed003e undefined -20d45ee6a517f2a1e47d805cf0359ced2d8c52d4986b38ef07a56f7117effdc6 undefined -eb59813ebb6493b46cb17b7a310522a06125d69e2f8e87547973a6b78a773f23 undefined -ec34f6411c6874bf2c58549d4875d0cb3e002fee64915937961610b4ab98a1c6 undefined -69dedaa72e63528b0cd40fb997467c22b3be2c0b30a4799a982611dd4d79d9e7 undefined -f44b26d45899c00f892e77f85c52bf9320ee9614891ce02ac692f4c4f354997e undefined -a7931623b6b14426bfac86001ddff78f49f0fbd519146a7e092e149d36f380d1 undefined -a6c45d695ca09030b0316178df205f4d35cebab2764932c41925861363024610 undefined -ceac6154e3a4823722418a205c9ad9c483d04cdf7661f1ccd27ef79c15886dc7 undefined -dcc491016e4803ab2c9a6a2cbefe5249791eb620a49058afec56176f4c3b49be undefined -06dc72a88aa7da761b7536cbd06d41e8a442ce951da58b01db0624214da67ceb undefined -6274c1545f521aca3fbf77ef0d3f494ce3e6052592fc070e30fe919995364744 undefined -375f6827611f28b5bee60b3624785e10a0b4de1ff2850f2f13e2e0e7f6c626ae undefined -72aa4f0f842037e7acd27fe06d6fe88f994f010a81cda55df75921b7b7a7aca3 undefined -141087329908aaf5bece625ef5c3a6196e03952e07977ee64a5f9578b000d92f undefined -2afadb822a73489387f3ae76b1fd61f905f365fbca3d04983b7f5c97c970a974 undefined -73fdf71d5edf506fa49ee77bc339e7272d311b69fdd4bf5af5fcd0de54feb038 undefined -9b4b8d8b9478867c2cd1cef70a5f7112904a5ee9053246a32f246ae1242d6890 undefined -cc0e5defc612e3ad7f146d92a42870448a4068dc1f38def205ffe1fd05decc6b undefined -1b8282bd1c1f32f961906cc138f68dbbce581884f7bb69733d31605f3903d439 undefined -5279c921f6ca00444a06972b938f7bb45e8dc40cc756b8b60f90a48c347d5970 undefined -80ee3009882c43efb5790c305e8754d3bfdb34cef3b052d8b8c210ee8b92f34c undefined -9efcdcb77363a7e33ca2dc28ddf1ec41b59778bc816e03748970a1245996f90c undefined -49132853f8b2f87627aa2f600c92f1e0b99e678636695d215374f2550edd8893 undefined -d2a5253ed14511d9462a54b394f25abdf79a642d99cedae2446efd7acf86805c undefined -6738709d7c4dd889eb8d32a90d2142ac6082b29c712c1a9c6fa0c52ffaf5669b undefined -577a112f8033a7702b9399b4408f6b85fedaa3bd09ce7f0bf8018a1a81d8c37b undefined -a4478f834f7f968909fd75609915f87f93548b5bbcf3e80baf0ced381d846efa undefined -c26ba5a3408adcb339bc96805a8c6ad89689cbbdfa15cc8ee09eda4da9191f6d undefined -00532a6d8fab0f2e8e653f188cb952fd01b3ec6eba7cde4b72a3846f3e661500 undefined -63d043acdeac5d52329d528f8790097546eea0b88531d4cdbfc8b5cd626c70a1 undefined -ed8925d6937df2c07e679cc925d2bf73c655d3257101914ee58dd2e547b39fea undefined -7d6eb04b4216fd8fad37f6ec9f64dad6654405ba6f4db7d8b6970ae8bb7cccbf undefined -86ea1cdece92c05973e4c16881672cc8b6882afa025ec338f8282dd76f26f2ff undefined -ccf3e0f2fbdd5b1d5c4382f8f82e1c6dc98711e4f4692d7b853b913e91067c45 undefined -575b39e956a54268d6994b270179c07a8db27ce6486da46178eaaeccb1a74586 undefined -b6ea6ffd7d5fbc1559ed8370d9b00a80c87e0d35329e97557b846229c7783ad9 undefined -19467e5ee30a4a50950bc739d1e19b350af954fbb1633b6b495921295bd04706 undefined -d91fde24066eba62a666254de5c0e6717ff926c058786dfad13a3b010b22f65a undefined -2c9350d82210f0400647333405810a31adc9bedb5e54951c0b12537ce43aa42d undefined -541cbd17757dabb61b05c4cddc3bc10bbacd0945c233fd4910ca5fd23f4ee2dc undefined -9f9e3be1d4807a9a517ad35a6b91b47def552ea830761ce7b5c49de8ac10e64c undefined -c5f02c6a123f3e356baa56b48a57bdd939a2db27e109c4c34a85182f740bd2b9 undefined -9587ac730eb7dec01c9e676eabb1fffe5782e6634cb11c8cc5060b99b6774131 undefined -5e0f3e96ad5538632429be12f708cada970c3ac72b97153e889fd1e19a2db4f4 undefined -10b2bb83a6c052a45b9ed54bc84b423fcc71b734b350f2ea990d222925c9fd55 undefined -92432f58b4079fd003ba4d60ab4b9067c0cbd22a940a7d2b2480f922f089b874 undefined -8df310a1e62ed1b0e95f001e53303cb06737bbd0ee5a01ec93627bd8d26a35f6 undefined -0e9e887f5c7f230b839ea6bd703ee64a652a0489f30dcef125e20d2fd6d955fd undefined -ed53662a62375ed0b8a5f8207632fdbc451d7449b817e011116fbe55be382f8f undefined -12b9eac9f336aac75cb57279ec5481baed9267c7c0fe55d5b7ccd73b11e6c10e undefined -c65194ec750b412b44e4a0cad879bea8fdb9bd540d6b6186c9da8f58818db4b7 undefined -f3a0fde5edbececa7164bd923ac07c6b339b34b8db7645dde40281cd536d2aed undefined -30842fd49359b685e449c35e033c10df093344db88a255e27f6c934103a8db1c undefined -9d9144db8d068b5c0d0e7675d07ba25ac8219d4d71796b5e804fa547a9d1752b undefined -556689ceb98e3be22cfebc3b36dd63ef1e9af3b7107415401271c519b83b289d undefined -00c76fe8f1fd29a51a7a2a37f118b74a7a6bcc77af4508b2d4f8afa0f30ab286 undefined -faf1c0afda223ed3ea5f7489cc932d67b3b437fbc757f17a305e030cf522a553 undefined -f95b6405289f17000b1d3ff3a5622bb5287298a6243eb595bf08fd52d92f8967 undefined -8220c065fbbf189864b5c69a3030b4442127c5b14ba8d16cc2812603acdf458b undefined -8c44e804e8d46f8b30abbd26c7f555edc04660796554f39d9cea83ba0f6c4a2d undefined -350ac302de4edfd6e0da56d2809f815a3ddc293c1038d372206e327ee46cdd4e undefined -8680d89cd33ae2a3e517ddf42608ccca5133d74a3024f876ed8b00cca09a849b undefined -3c877410e5762a68e5c711f681d377109f51a1a1b7b6818330c678dd6648429e undefined -7a34e7afacb31f07180a6a7fe761e17ad183846a0e2653099da6598b47ecb060 undefined -a640c23cdf72775db905d3d548a2698da7b14114c6efd76f654c258451755196 undefined -7bdbcba53ab09765ef30e09bcd4b80888226f67a9c02e1403cfad4531afa4938 undefined -56e27738058b50089e281da81fb6c02f99b3a911fc43f0568664ce87460885ce undefined -53238032980b97ca6bdf3d475de8d5a96938dd2e08147a91a4e138cb662ef357 undefined -12061b27dcce1ec10528668b46beeaae3e696f17f33237ea0bd71ca5d57ac53d undefined -7978432678cedc2e0e8569821cbeb9322fb25608894f5bff255a10550623dc17 undefined -8deec0d122a8ef9be87ee8f9c69d89d83881add87db7cd209e9c459cd2235c8f undefined -e7ab164517a4750c92137d6f5a1ca93f469c303e59e159f6011a1ef46f52da5f undefined -d56d31384359c98bdb725f1219e3071dd030237688f101ef8654c813bdb3446c undefined -375a6d58e075cbb083c9d431cebe012dbe292fe0b140cc3f2c64fe8e960e5457 undefined -5ea400b4ff6bed10c53249ef87cdc234a37056542231be589f86b879ee1691eb undefined -5b91e7f247fd8117d0ace526383a1ad4191669e1eb1f155b887af692c7cf8ce9 undefined -36183aec1fe24f7aaee492152febd345455a5b152718cbd7e85ce81d10ec3841 undefined -aae303adba1d66b1e0f24f2424d912e1d8f300e21e5228d5bc454ec8b5a44c37 undefined -2822c4deb1fccf8d76479ab178fc0d8d6175f2be92f84346010d5fb5d594659c undefined -40bc4c8b34142a6c9e9cbb8d00fcab0b4fc74864054582d776a9a1c70bda7a78 undefined -fc5677faf43b70a81f7a3a56c2ccba63f2b371ef927f5b789adca6c9cba3598a undefined -491dfb39a9e31de6ed6059d3c22179f84601b4e7f026d32a990ac46ae5ada712 undefined -2a509bbcc6afe9eff34091187923f91e6298c45640a9c619731cc61c0c584047 undefined -d8f58641f00fc6eddb339dcc23c9bcb0f3ac568070a3807125920a0d372d896e undefined -47d0a70ab899c2952374ee54c060393bcd527b35bea8a7150e96b2211a12f969 undefined -2a9a0cb11c09dfd6b7ed85d895a181d489a8424d7bb47c8d2f1fd6811ca8636f undefined -0c36b5751de0c12f3dc8f62041949a6709c1a534859b8613ca1b0ca6d0c0bd58 undefined -4da15ea2d72ad4a7be99295ae8981a8d65c4808bd0ee8ada67567fe10c00e9a9 undefined -d39daed2546f1f9166b70e40c572d0283aac19c94459bbd104351eb64f8d782c undefined -ea789b3aa66faf8307da7135922ef7ae626d51eeba259b398d0b40a57359b605 undefined -a1f0da59f567674e95706c696afc51b50195d3f840d63f7edc7bcdda794ccba0 undefined -5c341fd5407602ed4e6f90a54a292bc71a8d82818f8fb3e960ae535ec44b3a65 undefined -a99f47c62aa6d3a8d323561292d2d0bb779223a60af488294cf710796c94bbd5 undefined -1f1550ce63fcc2a799a87c4af471ef846786aa48d154efbc1187a372219a9c12 undefined -99f7a62e30863f6cebf4641096647b19142fdbcffe097f9704ceb21f7c38d9df undefined -a3a6e18de9f888347f45443d231622528de39ecae466f3b0e51abb8157157e16 undefined -1bbb7d724669320fcb85efb233e8952dd9661e0a2086a8f990af6d71941770b4 undefined -8df80ee852bda9d9852a2cb467583d7f8aafd74f311540bd4dfaffcaf73b1e7c undefined -7ce71c34b6745a27705ea8b0ce6f2a23a997c8953fbdb8eda42ec0177da6bd35 undefined -ad668df5591a59ad8867fb1f6606f147cdda5f4c3637d71f8a806d76ed98df90 undefined -e9511d08de35658c4d25986cfccbcb977533ae5f42e2c5cfbc92ba7ccde528dd undefined -eb699995868522801a2699fcc808969737f12a82e4b2ef20f755ed7949fd58cc undefined -54aad64468d589941f921ac594eac0e0dcccc0ca0e3673a8649cfad233cd5554 undefined -f70c95db6ff5d9e37cd104d9028047a62e544cce34452a58ed47f9c1985aa5c4 undefined -0f9bdc0eced9d0711b1e39f5aff4d557eb8e483895e211bb3d7525601600bfbc undefined -9ac005a53f27441029ed23be12a83ccc04ff7feecd2642edc30c7688ca06552c undefined -0ad67feaf30bdeca1733150dd6803594f5e2c52e61d672f1d64d5b0670793adf undefined -81965395de04f93afa40c9a8fc4056e5ba3d43f1d0c68de2a47d301b12dd40df undefined -37317d22c326e41721df99c7df9dd3d39745cd0a03c9f8289e9de0a96cf0f75a undefined -ec1f470e718be260a34338079d185a79802ede3cf500fa430422c63da30a64e1 undefined -77b43ab1a4387c59aa0b3568ca0c0fc19183708518d0fc18b237a3ae73555cde undefined -00bd5422721e2524702dba7231d71bb435149371f5a9c0efef71401a2b2ecdc1 undefined -ab69c96d3532d2b2335c011cf74c2216cc7fc14a7cd41fe1f60dc4ed27df3bd1 undefined -c289e4b296d266e4570f3ab691603e0ea3525283e2b5b4e68c069e9e738c02ee undefined -d51562952455e5014d40ab48fa98f267e5e575f2b64ac21fedc09a8cd550872b undefined -21d57c9e4f323b22d6c50d7f5557d0f54fba126fbb112ad6570de31240fa90bf undefined -297b978ffb950783d250eb3658679ea49a8fb45b28fd99c2f92efc7553802341 undefined -36f2a38804350bd910ee8abe312e38be268d297d290819f728ea7d04d99a4ee4 undefined -b009f8510672963ccd9340da849341daaad5613223194a0db152b96c6c12fa8b undefined -cf3f950c545eba6fc6d6e467850222795c2475066f5307ad52b28624d929bc05 undefined -af8253d4e2ca4c07fb25fa0f3515465077cd40610e8ec5d140c81a0f77e6961d undefined -be79856bda439aedd86374a93ebd0d2c1532de98503309836ecc9251a19a05ac undefined -449a7e1d2a0bcadd0627059d60dbd378f4e3877ec5344f01dfa81bcdfd157bdf undefined -e1cf490134357ee178c47e761413c3ee3d9d2585ad27800009ce77b8f7cb8400 undefined -9a1511dda79958f5d5f6de8acae1efe4148141e00df445ce2146ea8b27543cde undefined -0349260cf6c24a1af0461ad5bee99bbbd094b18ff27eb6e95cb5bf4e4f63ee70 undefined -6686eb8d7af9728f610ac253ee80c8458f121f2485dcd6d3a59d75902d354e9e undefined -c67f2c0a232c45ee5b5e9d68e7ed2f46da55ebeb7ac5eb49ea3f7de4ebba96ee undefined -0aa2a481cfe7825c6badd34f8455e0e147a4bcace6028e9ea22437dd4b70db42 undefined -bab4b385871bb42dc31236397305ac290622b19c67ca0629556f092860841762 undefined -1c690fb60993743ef123845b5e9202e8967495898a01bca8d95b97541a66966e undefined -0b461e090645accd42f0de163ef155d61c6e83d11ef334a000565b6b9d24f9fb undefined -6fe9a06fb9e6f6afa5ad83bc74ce4d3c12aea70c31be8356c1ed2cb87402832a undefined -c4696fd547e5ccaa9734025eb14622c23d10336f647a0977b6d9b7cafbfc4188 undefined -43084eff59b231a5e6cefa802ffc631ec185e94ca692ed5406cb44ead88402e3 undefined -7acc35d866ad60b164b71b316198025f901c31009e1278d28587528eac06903a undefined -86eb8ff1a0cd76174e57bcf6fb84c763502da2e44b40e887f4b40deb6bbf8c03 undefined -d4e4ba015f69931d33fa5d1b8d89912b3e01771af7b83ecd23bad418f6679e23 undefined -b4a8750183a43deb5db4e6a47a1bfd25506c896476ce660b9e3fe6866e44a89a undefined -c1bec94342de3044bb170693b2f51551d9f5ee4b07fad95a4f9b057c6fe5dd80 undefined -083e76510f872a53824d3a109bd9e389683b9ed1df67a6651fabbaf526236d65 undefined -d65fc0acf067b9468d830ca059316aa839878973ff322cbc61a4cf77b21ec495 undefined -e9cc1371328b7fdf1ce121172423a0dcd01e46828ac71d69cf241dd273652ed6 undefined -cbeae8ef360d55d8604e30e8e82adbd5062ff6c07588053e2f4c953662f09d1e undefined -9361b16af13f7e335336a9dd0bc5516a606f195ba0f58444a54b125ab13cd6d4 undefined -9aefb684edadfcc4d86a2726cd30acc3aae9aba0e06bb749621e994172809bf5 undefined -443cf4b440d476d7c63e681cccc80505e237f8531b38369964752e57d5a8a474 undefined -9efd9efc82769a99cb29ac195a0d9574d97d8035b659242e69f258c3a07e8333 undefined -0ad5b273e05357bcfdb37521869a4c77e1738ea6b11c4faf93f09af487f3c29f undefined -e22f06cf8ad814ca2be3d8201661e478b2f3535e28e4d1a64f74730a8ca47812 undefined -9cb2edfd5788b0f4cdf3f24b30516eb5a3c9f6a21b3fb9badb93a4454f1e1aa2 undefined -c880988fdfaf8e9d916bfa341cc259899f2a93688c7a5d53aee76827855960d1 undefined -3f7b5e8d47ccbee5da9ef0a763489a59ae129cf5a37a4afc5dbe82a48d44ad69 undefined -a89523576631b48b2c14d0860b862b49810a9c848e44609b41eef615f819b9f8 undefined -e4831e6e1b86fb1b46f4edc9600ef76a1601e8230e8e895ef77f0d590db43cbe undefined -6d2aa54435867dbbcb423e1a44b1a0bc1bd927afcb977c96b1ea4fb4cb98cef9 undefined -3abc3060da008ab20d2be3849fe8f39a992986f082c55127ad915b686b26de89 undefined -bbe6b827c066439db40a389cf49c8f9540e5bcb0f5b03ded09244fbd06d0ce51 undefined -396398035127d682df2e515824454527643277abdba2fa7cffb61a76cb1df1be undefined -ffc7842ded5add0ea1ca190a03805cee4896ed58e1097be33b8ccbdf497006fc undefined -7dce606be7ac516e0ec2323c530b348b02e273482faf52595f3e23b842491713 undefined -19d9378a9559bdc54490203f34633181ac5f508919d90accc68a6afff296608a undefined -5cf33d59d70ea031ffa9bdf810abf20d448745072ddd0e9eda3dc144ca220739 undefined -61209a2b8e029d364046b6a8180352cca418bf517c87d62310f095e7d2d3adaf undefined -e7b3af0d80bcd055f976acbacbb84d2e5b8b023e2b82c6872c178429446c2446 undefined -9c19a6d0768b102e720d69873eec867e50049b945eda1328ca79ec514c83de72 undefined -7b82ca3c37954c6192542f8600955f9bfdfba826d3f6fa6c6bed66ae88acfae9 undefined -acef27db2d21e9a96889b0243adc4732ceea9e6536912a45fb9142c321a97e71 undefined -03d585b351558e03966c4749fafff57e729c9bdf8bc0625f667ef0cc4c024bad undefined -e0be738976942a7c0e9186366c7b19ed2dace21c6e6fd82adfe4e7720bbf98fd undefined -9304bf524f6793955741a754d2b93d5f1a1c0d81b11a3e1781f194f446bf7c8e undefined -184be5236833d1ad9605dd27c0a3813ff9cf94ff537d94e3d7743f232e5eb782 undefined -effcd9d5ca95a1e645f8eabc22b99132c444f49ac6e73ff98bd8c0c253d7c7f8 undefined -d2534ff9efae1030289a5eee1d05a82b4250df94c33b70c93012575c3b2d7443 undefined -a4b7c0f81a52bb69642ef206593aa7c781fb6ca4c823a50e50d0b8d3c33aca88 undefined -cfa78c6d98b1e5652395a4d2d9947d7732b7b0bfb125d691d56dfa275fb85f54 undefined -ee83853a19e03c611d6508a9b8b9c844880d097ebf20b3920c9a21770510f72b undefined -505d331858c06aeebd783da4304cda685b1bbd040f349c78494e1284d1601277 undefined -0f456d8ac7414ddcda2c8199ed28cc4edceb5c99c0494f706607bcc538d233a1 undefined -48502230983c5b3b056f592aad46e8c9ff059f3b3ada1f5bf420fca5613d4266 undefined -e8306f7d47ed39e9751c3b7e600ecae0474c1022f69dc8476e07297adf01d513 undefined -8ab8dfd837d1c6a2031af36a53a8584d1c7a9bbed5e3205d1355862be0843ef7 undefined -4acf6e0fbf3b5565309605d38afa582684db1b6c64cfbaff4e8ceba186dc5e71 undefined -930cbd1ecdebda00c7a779cb8154c1a1a83c79842debb48005e260e41eac22ff undefined -80e81b8e0d5af7e00cb9137e205421ddc9565c8455f377164a3d9c72dfc6cdb5 undefined -e13dde851aaf201a8a69f20a149b37bcfe8f276bba171e749bd298d854c65326 undefined -b187874c60cb10e3f0b9b7e590b34a0d3d4cbdee3fc62a1ec08fecfd8e069062 undefined -0e93715a994b613d882ed28c1a58c03642cda0edf3def0b39792577553b8fb6e undefined -b4c5c76d45344a734824ca946f7e74976f722ea8f923b3a5fff730bb256e8c09 undefined -7f47fb5c6e1d36d23c2f4dcd11769697a369b9b9bd7033844a2b683918029db2 undefined -e75bcbcea1edb3eea9e70f6eb462e1dc6c935b0a8401ea5ea450e456767e1223 undefined -b12b1c823084505452641dd16e0dcaa92952c014257812c0c1fb159e633fe435 undefined -b4c60a3b9ea7bb7b298b1668f790985c1aa509c84ef02019cbdef400eb3a11af undefined -c2d9908f9f9483b26fc8f647068f71794c78816251b8eb18d52f09bea609bd0d undefined -826834c36229a8cc74c9100bc0c138ce5d8d8ae31d283a71936d995b7515f4bb undefined -b93d6cc4e3be7049eb5cd67e4418b570040b76ab1a493121eb98430a4b99f997 undefined -c7053854fcb8bd90019d5904d4c516530da543ed15faad061981f23b8377f6a8 undefined -3bc3224e03f81d4f3ae15f5f52dedfc0599c2b61e633a514e8ff39920a8034bf undefined -0c42f62ba0f758aa2d56f1eee684623a9a36877ed4fd1dd6f81ad8f7cfe3d65d undefined -63933a65c14a2ce196347fee9028b6b55c1d1787c5a300b4127ba3fa5e75bfc6 undefined -6f67f2137c4f7e0ebbbea7b0932c29cf399cebf58173b0e1c65b05bfb59a7724 undefined -d34a60a575f8544ec07ddb384430c6e9241d485a84cf342a57e377ae871259fd undefined -07f8a58d666d885d21f54d16a7981e95f4a0a7be55ae24aa3d542d4a88083b31 undefined -e08eb5d960003e406a06d374d0d2b6d4bbf0c74a1d85b521d422e1cd63f1fd11 undefined -21863756722ec0caee67b38df0fd6a20c2eedd3a043cf87e683d18ef01d44f5f undefined -60f03c564bce96ff71dba10827da75c9975ca59d8ea215bb5e8076c645864813 undefined -85b8a414c8153f4c9da829f31578cfcd5327008aad9fb6f80dbff21c9d4205fd undefined -0e9bd714046074147ab0f8304e98802cd27a2553209314c0d0fc330947bda5aa undefined -3980e55d04c31c1b3bf9f4969ea249b66988c05e8be142132318e8bea2cf300c undefined -1a4c260bb5713e1efb60cc714b320db770925d15368641a718fe7dbc45a6ede1 undefined -be4755f473b4e188e6ba773439c85270ddc985f151ce591dfafcd06346f332a7 undefined -c87e64ce1bb41db4518fcd61250792a0bd849e460c6141c4b154917d225c8cb0 undefined -0a261ababf7b8b90ea121b6fb0b21b52fdabc7f2b75d47f4ed494bf0183b3413 undefined -c9d513563542ad2271a5bdc732c2e7f9f1157c488f36334d0a9e314b484268f2 undefined -9cdf740b2733523c570dc8d636fce31978d2f31a680b82417a1553ca9cbead2a undefined -9dd5b5289046e084e8a41b28ebe2fc50193b5974ac4a5be3674fc9e6cfbbd666 undefined -2e560b6e7c6d0d70a95bee77fe9eb94c710c82c10dbe8862c7258f1d8c5d2298 undefined -218fc410a981ae825c0d25496bbb6e94376036aabe5c1d9e45773031d75716f2 undefined -46ff1cc27e392f65e744356139b9c245e678c3d4ff9467072075bcfa6c967f3d undefined -849337a7b7c646391be1ce7a477c632b8579d3aa98d95c24643862947b6d55d3 undefined -b018750d7e57b53c3966eb7ad21ef6a09d435ef639513a5ed80c19e12eff9501 undefined -be5b1af565df5527a6845f2fd502855e1b57faeec2785da565432a7a40c00359 undefined -224b01b864d850436f60294aaf413a99b16555232108b9bc4cc503d0dfabc57c undefined -41026f640c42dabe32cf554f716285b98362d7811c13c2ca77c00ac266ea9bc3 undefined -2faf12778fb0ad5cc485321d66b1743e6403eec1837965339cc0f516aee4d4d1 undefined -7427058b9f2443c4106bb913b8fbf67f8a582525b279a85cf6ca169ff70b5205 undefined -8b0968f1e2059f14388d2e9b97f02ba91fc464756f338699416ed4aa99a78cf5 undefined -5fede47789117f75e4ffdb84526609ed95211fadbfeb069ff1c236962e7392e9 undefined -1cf63d625560f9dafb86c3c5f0449b087443793b940d573a9bc51b8b7d223b90 undefined -daac28f485b52d87f61f8a307f6b957d5d0499d4908ba095893f7a8643a2be11 undefined -3cb58d91cf901eac1c1660855215b0fdee6ad7995e6010a64c145b1e71e160c0 undefined -03b51c0e161d8351a2e7704af2be5540bd50d0730e9608d1ea9eeebe3741ccb3 undefined -e3eede48d0856b77b02a77cf0e804cc64a1c2bd3e6c315156f37f5bec80d2f93 undefined -e0004835741ab5cc54210b1ada9d18a62106cfef80c52eae137975774dfb38ab undefined -9d1640119173cc815dfe2585b60c304c7eb04edd28b8ab4493be645e1ecb2f20 undefined -1bf20c49e3b59248c72b4ed82aa3f7965616c35d1c60c2262086acc8fefba30d undefined -b964b4ef5996ec90172875fb5cb3b99db5be83cb0141b558e66bde043755d436 undefined -2cc09c1b087f906824025314968090397b7bac6aa051596f6a97c0f628c7bbe6 undefined -f368034f2bf3bd31820c8c68ef48b3a48d75311081b42ae73b7f81141e123521 undefined -8412f7231a5df139cb3ff0bb3369c34100cefd7ee0e580ddfd3fa41f5979d499 undefined -e2cb36510a2b17470819abcebe6fd850705cd2dd8be8d5b159f5443732467b4b undefined -90697c7e37c602319bd8c0116c987c33172099c3dcb223b181f2d5ecf6874f44 undefined -a36a5e879ac7d202cf8b250a6ce5cdb7023bda76908fc421961333866badfaaf undefined -f7a2801f1ae98ffbda8faec436f64bbbf01f8b6860b62afc44ca5b4e167e9314 undefined -416cb98593dae9eaeaf2ade0e705fc245b739a5c942c887bb09f929b62ed20fa undefined -f2fd1db127713f643d1e5bf8d933dba44498a908f6d7ea5dc2c66a01f18ca319 undefined -219ba97564a5f7b7a87267b78722df2e21d53487b40f5def7c07e0e9bb495e5b undefined -944ac8431163dabaca48400eb7d536b00e0f5d186a4740016686a6b7947ea71b undefined -1c4d2df36f4ca80aa242c9dd4d7c82d9420fdb7955b72f7a0abf472359549674 undefined -9c88a67ca8da7681ee8a3556fa7c3b9e54b8c37479ae2872a233f5e1505801b6 undefined -c2a297e1c66eec3cf10cb9820eef9a44a0908805bf9b1475dc19d1e29c3def12 undefined -07e4b00dabbc498858060be306229bf2dac5579fe5803f642da43b6ee30b1c00 undefined -ccc422589003feb274d01494bbbda394dd99d523525951b8d6df3dc17374c628 undefined -d0c63cb6c7ad8fb2b405ebb66a38d7c5b0e950fa389b235fa4fdf5b47a2861b2 undefined -192f53587f9fa0e7c26c03ec7117fa2063b201a543ec27c81c6aca7ffc2d44ae undefined -21cef8bf8a4101f6e068f518b99a1b02bdb7e7430956c4897e2ff9c13064ca22 undefined -9633db3338990db3cb994e899a9b48b1b1404ce5187edd8ba30fda5b12208d3e undefined -e64aa6012be2555e851455fcf2aba6abe1a26dedd69c66d0251bf9cf9df42947 undefined -8d951a926d097b61d392811e21d9399f78024272a095311863b1cfa206a74784 undefined -8d9e9f379371b85b2b65bb03fb60bc628e28e3f7f7e3609545bfbf6fdbb49441 undefined -b118bb6a94cb27b984e1cdaec1c99915c5aaa48f6f77f72cdbb5cd0fb1896a1c undefined -223c198d4ddb3b98b56cc61ae955bfffc043d106da6b797531d0b6bd80b98d27 undefined -81a2988f75e6b38d1849bf10921591c1ede959860788253ed936f35fa797ad2d undefined -a5ca5991d64d82bc66021f9ee275a42610ffe8fdf757648242756e7c9884a2df undefined -71e1c6bd94ecb15640969dcc59e1de6d684f3ab2a6bfcf540272dc5d072d524d undefined -25ed878e6315c8e57ea95cf00ed4934c7e29074ff9e1fc8b33c3997039f10e58 undefined -92ae2335774a06e4c63fefb8cfb82b7d1a5c7b39e38d28a04f2a2d17d39153fb undefined -040510bf1bed16c88e8007da60c12dfe5d194b557706e6c1c9af3394192ff970 undefined -a59f7100a2292f1071711b99eca40c4d460df356509dddf62f0ee2549dde2761 undefined -5e595f19d59a487139c938014af181bf195df439b587255d9f5615fa60530c77 undefined -3b07ee2f778b6cfb44ab6a0d246e844d0304a5b2ca17ff90504f6ac502713f17 undefined -34a42b6d58ec3cb5f835e1b5a39dea370eabb77e5864e40c185a185af641a067 undefined -3b01bc1ebc9e4fcee170a54550de85e392d0ff4cebebd942f6a31e055d29b0cb undefined -64c579bc38331f0d32fd1dbc0ec1843c289223fedf38f41223f66a8d26f44345 undefined -080a3a71f1605b1ef85cb0388f00d99cffd4f9f4afcf830b4f313e285d6bd9ee undefined -cecfc38b3cdebb00d985f401072a179db63720232fcc3cfc98978b70fa407254 undefined -f0ae832843292201300fa5755066e3eeb56b95da50a49a69576d2991d57d8d60 undefined -172621129c8cc043f1c7ed14d67f59a03ea32b64b701c374e952e695d4f5d983 undefined -a230e92354c058b517dd3939dcd86c06560b0ed59b20465a6e680ae5f14cb132 undefined -18eff5040ad7e9b2e1455186bf2a416dca4c12ace46b9ea77a4e8f2f9876d0ef undefined -5983fe64b2708c316eaa19d56f8cf25fa6e36628e94a01e0eafa6652fcf3a202 undefined -e383a27f46a7fb200083f0e67715667f896dd5de2cf718b54821122770ac2b39 undefined -829e985e3983433fc7e042122e420bf8573df44c89a8a9ca14f133be69fbff65 undefined -83ae578838b4b6c782e5e789aa6d1b6202323558cbab26cad6b90813a99f43ac undefined -97f8454394e32626eca962b6d5f0518a5d6d34c0510073e4492dd634cd86b856 undefined -19bccf3d1d60a038e2d565ff056273173c8068f5fda143b21b5930b8153e9ec8 undefined -ece4186e64145ed8aed4b73b2c0bf18a70d84f0a612440713de599fa008cd303 undefined -3470792f12393571bee8ad1412237e6a9a8bd1bf4dcc27e19b2ae76c7ad4746a undefined -f5d43934bd602f11cb5b8040d02eb38d4ad4c784f734bc8102cbfc5e90c2aa2f undefined -498a88c3d920ede6d7fc13ce92368391638d49e3d81d9069cdbf0dd2460a71fb undefined -051f8f0e9c141d3eb19a650ae26aed937c8f921f9abe3d90de60fcd20163a4fb undefined -fe2e11938ecbee5a9e93a3233c2daed53a0302915c0c926525a11aab8a512b21 undefined -f95cdc1fbe6663a5c2b1340447673583d77c158589ca757d0ce87aa99dee3a11 undefined -2531da0328bae393bdec6d08ba6e7356a48d782460301fb32d1012759010c8a0 undefined -667596e29a688ea5b55ea0c597551da8d9300637c63c4cbb8a93e2411a600d3c undefined -480af52ead65c364c0b46a8dbefb63d61517e156e4a7ed0996ed11f6b5cb38f0 undefined -da4e4631c39919f740cc74bddb2b8065eaaa5c213f3b1c19d33d218ec111664d undefined -e04f67be955ab095688188f1b12755ff78c15bd863f5556ccd2a9c1803754d16 undefined -6be574c2eeee7a26bc4956439a273b2a881661719f9b077ef41a8d5ecaabf8b0 undefined -44627026daf89397b5785a35f9209303d3ba377819d03bf2252b618df36889b4 undefined -e16bf7bb3d81e2003c301d60f137530be257374c684394351c332e719ace1228 undefined -4bdf34cb3d163dc6dbe3aba99bbc85eb3e833f6aee8719570d471730f7121498 undefined -ef2f657dcd855ccb11730c74272f68d7251c143e5d52898350f6af1dc35d0238 undefined -a767deb31bd525145085aa0266d04534040089f5fa9b0b76dbcdf8a60d5ae142 undefined -97df3dd32106517df97f66bda56780510ae9f6797bf79982ff66e1ab42c61833 undefined -9b93d7daf7213a6fa110d4335759c3443a63baaf02caff85b050b93e2fa7e08a undefined -3a73e26402f39e5f01d29b1da2bf52384bca37a75493e5d2cbdd9d9e16a00c6a undefined -405294a4ef4bd3970ecaba6cf0e6e7df79e70e3c1b852a430632ba13554d722c undefined -a8d05f277eb2ca8007a2d0eb514a056d6a065d5d66db5966a0b492683fcabb25 undefined -d04aa4f9da0e35ff36c2973ce9fd92e25d4af7054ca3adb79cf8ebac5af7c0b8 undefined -ae1907d41e0d3707cc51aba098a68408a61920a8e0dbb361c40edcca09360c6e undefined -6fbcb61be8cd342d851cf3707079f763a7edb4fd3385ba113288da4d5c2d93a0 undefined -2f3881870514e5ee13a59ff53a4c64abe6ab1a7c2f106768f2fdef3a829afe71 undefined -decd0a2c9902837d81bfa566eeb831a328254735d2c7115e653c28b5d81b59a0 undefined -df83bbabf3d3957a88783f0d76762cc42e0603cea4d0968aee90781e994e1067 undefined -80afdc6d02405dd21d13e4d58bd5202367191c78409c77de7578ae756f0f7b9b undefined -6bdbfc3052a7a7a0ef173638e57c98cc76a6d4db9e4c2181237bb7fdaf9d4169 undefined -9356e01b5e1fe32a773f73d4a448400a510c841fb6508fa02f2c8923c0ce6fab undefined -99977cc0e63a2a0a45833abaa953ec08a0db3c5452f62fd7938980462f638c8d undefined -2ef70f006e32eeae6d72cfd5d92e966f0e49c86b94c3b947cf21757576c5d954 undefined -81ffbceedc3307a7ac7026c7267b6d8af98f37bfc0baa9bc78ab9f7fdcbfaf7b undefined -4f7f83601b11574198bfb4c953392a97a13435930f86736be944ba2253809d9b undefined -8a0c91a128cd1b132936ea6fd9ce4644018f39eda46e758ca31b103f2926f993 undefined -a5004568db6cba1cb5d62a7d746ccafd1862e509ba52cfec928bbc6da7dbaa18 undefined -f60e9307874ba26716fef5094196efbedf064d4da4dceb1831479c4fd5b035af undefined -411375b7360b34ae5966a82b0f3adc65f9897963e044b827a198e454f80ad330 undefined -40c8f89f169c5f279998763b298a3f29386b5412c07d138ae2ecd597603b9643 undefined -558a1e87dfac396b4eacf2bb75a39208a67b424415727b114081c251c2219e86 undefined -7d5638fd9f240a6015ff701c3f9346c045e9a92b1f6c750cfbc7bd6b0ec5b092 undefined -dcbe1adeea2ed0c25a2dc3e3dafe20391ff005439c9d1785876acf01291f004a undefined -a935d0a04203323bc3c8a9d1df77dae656e01f605947be8ebf5ae68b77d4ed46 undefined -0d9fde8ff36196a70e020bc8f5b1bfde13f380821f485928c1ed645fa2739724 undefined -9fb86193e60699e4b4bc65f45dff6e600aef04411432d94dc83447eb1ad254d1 undefined -5652df97e0c8707cb7b072fd20d5bf8968684ad89de6a5cd64028cfcd3b1a313 undefined -5dd9e8b0499a611292131369157dc87727631c381a800fe6ccece7eafca54997 undefined -e7d93f100a4f5f23608267b36558d910471426009708b8910447910970c010e3 undefined -19c02e71a9b35fa26bcb7d87844f61d715da3d440e522a391f81b27008f156d9 undefined -3438dffb4b10a738a92fcffcb53409730957a4103fa0feea87b662bbcf32b0aa undefined -5c6ac7632d0b339d26af1a5a67f380b383001327e7d8317e167f7b11cbf1ac09 undefined -db6f178cfdb06c29ff8dc72e721da34344fab70ac35d332d2e0cfca19345ac1d undefined -021c7bdbddbef863b9cf8879ce83ddfd69dec7c56082eebc6a67eb4504b83858 undefined -1ec1cb9305de93a135f16137ea3ff2e984a3ca4a0eb1469a9864a275b59c3526 undefined -0cf15720c2fb614bcaa94a82b7354e7c63a3aa8a270233409b298cca19f436dc undefined -3cc822516ceb5f626f0ba10d0105aa1a2020104711ca6479a4f3fb9afbd80524 undefined -2a9295bfc1b82166e077e973e450679d02ee2947ea5d5481308a37f325f0daa5 undefined -593667165e8197d89313997696c14b609b16bfcab5bee9de80a238eb5c0011e4 undefined -86cd3c76d23fba5e59244c5af99d44af7bccaf2b891ce171aaeef609fe8ee8e2 undefined -e38e93fc1d5d9791bbaa82aac0db93c69db9307f8b9ed8b117752b7423571483 undefined -7c24bd9013371428e21677e6e6b05a02c0854ed7c53dcf15a338ed884ebc0bf8 undefined -f1db829afefbe25e092395c5d42882d7a365403d5b260c54f7e82e78768c5f9d undefined -ea05b200b9a872ffd4ccf757bc69de89d5d9eea3d80713c85be707322b43ff4e undefined -376ba40d335cfa1015ad55e3c94a85404100bcf21d699476bf809b38eef91b29 undefined +86ed0435596bd9ca24db3f8f1f19afc20205781f6f7cf805ce09e5d10de77e7b PkgTTC-Iosevka-29.0.0-beta.1.zip +1869e2d6b96b72218a9e35bd1806165670519a40ee0a242d04385feeafc4dea8 PkgTTC-IosevkaAile-29.0.0-beta.1.zip +4e46218a4388ef7fefda8e3731bacec66349aac03b48c50e9339297ba711fd68 PkgTTC-IosevkaCurly-29.0.0-beta.1.zip +2b5dc140d176e58825f32436a1b1a72b62223e91fa0433b4b73bb6090a26bc08 PkgTTC-IosevkaCurlySlab-29.0.0-beta.1.zip +872e23c9ef7bc58299fe8943ff7f5363759377c19459336e36292763ea60c6b0 PkgTTC-IosevkaEtoile-29.0.0-beta.1.zip +90def7b96933ed0a022c0aac5149a1f9335bc94fb6e29e3cbf7fed6192441a07 PkgTTC-IosevkaSS01-29.0.0-beta.1.zip +f8a46286772c19dc84facb8ba9c5ff13ae99459bcf4ee714eb7d96d236c3b212 PkgTTC-IosevkaSS02-29.0.0-beta.1.zip +962e1a2d6f1654c7100164011d1e703f59b8d45d7b059da207f71e05d06f3014 PkgTTC-IosevkaSS03-29.0.0-beta.1.zip +552720550d7b50dcf426d73b4d19b8d7b8a137d9d3fae145e8a32f051c770007 PkgTTC-IosevkaSS04-29.0.0-beta.1.zip +086d0ef2d9f5adff826365a79c2261c7dee498277c1b9de1fc42f3fe005b461e PkgTTC-IosevkaSS05-29.0.0-beta.1.zip +a4c2625082c85088e56e0e77476da3c48298df6a71b53b2e0357324c548c89e6 PkgTTC-IosevkaSS06-29.0.0-beta.1.zip +5c0b887a539b5b4cd294e773168ab49b6070711cbbf8b095da9c032c57d7990b PkgTTC-IosevkaSS07-29.0.0-beta.1.zip +f237b78190952022e495778c639e2602e29414012baee926377705a2f2bd5afc PkgTTC-IosevkaSS08-29.0.0-beta.1.zip +8e8f61c996152bcf7cad39caca2af658fe99faaf472da42ebfbe9a2ce20f14c0 PkgTTC-IosevkaSS09-29.0.0-beta.1.zip +3f76132d909ddb69e6e07971356b9bbd2b350762c0d9eb01d3fccbf84630d90f PkgTTC-IosevkaSS10-29.0.0-beta.1.zip +97b55d8a839bb382b382557a2962caf49288ceaa0fa325dd5e8de084d44d5070 PkgTTC-IosevkaSS11-29.0.0-beta.1.zip +e74faa19442ad346610425cc2e8fff0afd91f57555963968c52725acfc3e1696 PkgTTC-IosevkaSS12-29.0.0-beta.1.zip +0404ceb5c274759f78eb966ed5884de9c91cca56fcce0e821eef65519b8342f2 PkgTTC-IosevkaSS13-29.0.0-beta.1.zip +6c1299a1ccd446094156d8aca38ee59ed73b5cf7ee5fc8f5e972dfbd88384fc9 PkgTTC-IosevkaSS14-29.0.0-beta.1.zip +e1cf26c7c12a8d140864365805b4b8428d4f6b7fcde293b92c62a5256b8896e9 PkgTTC-IosevkaSS15-29.0.0-beta.1.zip +244c51218b8a77810cbee17c9ea5ce7e11544a78e2bef987986de6386e2331db PkgTTC-IosevkaSS16-29.0.0-beta.1.zip +217019fbfbb9a0fd80d83cdf2678c5aeb3299d5d9e6e2d68431be439100556f7 PkgTTC-IosevkaSS17-29.0.0-beta.1.zip +5e73453f734af4aaf63295d5fc9d5972f0ef3f415dc71f0b3ef88396d57793f4 PkgTTC-IosevkaSS18-29.0.0-beta.1.zip +73ee4144087d020c7eff7901ab11c203f7318f711d8737ae570d6fd7ee695aa6 PkgTTC-IosevkaSlab-29.0.0-beta.1.zip +64aa7e1b01df4e1df1b4cd4c24ada42e238ffd24c29ebc2fd69fdbef2e3a96fc PkgTTC-SGr-Iosevka-29.0.0-beta.1.zip +858381f87ecbe640f3442a1add14c2f51fcc6c0c7add48f7237263707aea8113 PkgTTC-SGr-IosevkaCurly-29.0.0-beta.1.zip +6c176f5a4dc12bd87051200228cfd23659fc0efad92bb3e559c47b8c060fd35f PkgTTC-SGr-IosevkaCurlySlab-29.0.0-beta.1.zip +3f44c0d123abab972248b807fcae40821c998984ec282e8253d80f9d26edd930 PkgTTC-SGr-IosevkaFixed-29.0.0-beta.1.zip +eafbaff01e2da33a02bbe6542987fabab3ac99a4e1ac1cf0b27bdcd4c033b2f7 PkgTTC-SGr-IosevkaFixedCurly-29.0.0-beta.1.zip +2ba09a31c3b7cf8ec3ad8c56b31fba21e707e897e5ab6f24cbb0cd40c489d015 PkgTTC-SGr-IosevkaFixedCurlySlab-29.0.0-beta.1.zip +bb8ce122ce8c8e772068715dbcc1791121a320b9101ac2e5031c5e83ead139ea PkgTTC-SGr-IosevkaFixedSS01-29.0.0-beta.1.zip +17f834dc28999409363850ca0c63d911e43eaa65151b3a0e4c4a6257595d1140 PkgTTC-SGr-IosevkaFixedSS02-29.0.0-beta.1.zip +edc1c406b3236b5cd23eaa13349cffb8ad636824555128e6cf3ef1e37bea6066 PkgTTC-SGr-IosevkaFixedSS03-29.0.0-beta.1.zip +4e618bb712c7fde3511f7bddd878723d09a074c6e0fdd75b8c7800332fcb7e86 PkgTTC-SGr-IosevkaFixedSS04-29.0.0-beta.1.zip +dd35dff85dbd7c474daa99583868e6305958112f499ae513c5a24cb43b75eb0d PkgTTC-SGr-IosevkaFixedSS05-29.0.0-beta.1.zip +0427d9b5cc3c5df5258d60a5122645c654939d19b47e180811106d2956277248 PkgTTC-SGr-IosevkaFixedSS06-29.0.0-beta.1.zip +6ff131e5e269b3d673e89a78d1c96476a0bffaed62b7ef76f15783973f57b6b1 PkgTTC-SGr-IosevkaFixedSS07-29.0.0-beta.1.zip +3a0adaeaab935ba36a69f739132098a8d6ec4783ebabd1465cb76e7024f26696 PkgTTC-SGr-IosevkaFixedSS08-29.0.0-beta.1.zip +2ff64a6bc0c90b7aca62b7a613fdaed3afcb19d98f115790ebb4326e21b98334 PkgTTC-SGr-IosevkaFixedSS09-29.0.0-beta.1.zip +0526da19d74e9511e2c1e7de872103c034cd35117eea87ef270747b7be304cfd PkgTTC-SGr-IosevkaFixedSS10-29.0.0-beta.1.zip +5660eddeca320059e8ecc9c4654bf81c8907a7bfec50d87170ec7f02b6e30682 PkgTTC-SGr-IosevkaFixedSS11-29.0.0-beta.1.zip +9aaca2b55a0e101b932e3159531951d8ad2d9f14374216950306d617e0aacdad PkgTTC-SGr-IosevkaFixedSS12-29.0.0-beta.1.zip +752e54fd37903bce356b9b74455870bcefae366e8457bd35c929e439b90d0879 PkgTTC-SGr-IosevkaFixedSS13-29.0.0-beta.1.zip +348bc5ea56555e28a320641630ec4ad0269e3929dd6fb6e5fe5b49bd002054e1 PkgTTC-SGr-IosevkaFixedSS14-29.0.0-beta.1.zip +015bd289bcca340409d55d040094b84c3491527c5cfde81fbef57bff99cb6ca5 PkgTTC-SGr-IosevkaFixedSS15-29.0.0-beta.1.zip +521f8f1021c63368c69257812d53f3bbbfeefe42244583e925232d2a405e58aa PkgTTC-SGr-IosevkaFixedSS16-29.0.0-beta.1.zip +296a557c67abc01c1961da5a413913d88fa546a4383e0f97663ac3f9392ac76f PkgTTC-SGr-IosevkaFixedSS17-29.0.0-beta.1.zip +b60cfae5c07cfd4a44086af7534099f9d96ce425883e8f684e10fa2d61e702fd PkgTTC-SGr-IosevkaFixedSS18-29.0.0-beta.1.zip +c458a2ea23bb78a25b8c9dfceb39166de62409e8484b99f1c4afe78d21ca425d PkgTTC-SGr-IosevkaFixedSlab-29.0.0-beta.1.zip +54a318ae0b5d077c82daf3dd52b83b78d8fa97932b5d8fe401fd5f2fc79c9318 PkgTTC-SGr-IosevkaSS01-29.0.0-beta.1.zip +e9b545c48abdb44798bbf26b015a73af2b3f771668581b631c9fabf5736e0235 PkgTTC-SGr-IosevkaSS02-29.0.0-beta.1.zip +e0508684e9e85e6dafd8120719092414b93c3c21976d34baba582c6a5dfee9cf PkgTTC-SGr-IosevkaSS03-29.0.0-beta.1.zip +94b3ec8f74fa63453b00f17ba5168c9d77c3e1128a6103df4d2bdf0cb9247d84 PkgTTC-SGr-IosevkaSS04-29.0.0-beta.1.zip +e0262d379d58d38006aab42ca6bdeb0c64993ebdcab167feb2c3004316a4c2e1 PkgTTC-SGr-IosevkaSS05-29.0.0-beta.1.zip +bf2a02bfb52aa13148ad2bdf780775447df8c79d474235ac9d6faea5553c1032 PkgTTC-SGr-IosevkaSS06-29.0.0-beta.1.zip +3b1534ff278c5db75b57f86580c3eab85456ffaaf6f6fa1e8e522b1855c41a46 PkgTTC-SGr-IosevkaSS07-29.0.0-beta.1.zip +0b8422e6b99764dcb057b9143beb3506c9f0bf71d179966569865faaa206a3a9 PkgTTC-SGr-IosevkaSS08-29.0.0-beta.1.zip +7e0853892f4a2bfb6a1bacac406455bc53819b0cff7a214b83be0ba665622687 PkgTTC-SGr-IosevkaSS09-29.0.0-beta.1.zip +609a05373e7059f20ca381b76a7cca40fe6547241f9dd6721b14e71758067013 PkgTTC-SGr-IosevkaSS10-29.0.0-beta.1.zip +baf0b13bc63522d4a50a3d3dae9a14b8c26e05d4930ce2b79b9aa8a041266226 PkgTTC-SGr-IosevkaSS11-29.0.0-beta.1.zip +4dc200f17894cbd002c2e10cd5ce65edd045b18b8ab85e6cf5d8d6c28e0bebf9 PkgTTC-SGr-IosevkaSS12-29.0.0-beta.1.zip +b49e964b51a68ab119faa42a01b0598ef0aa14df8a446d7e9daa4e66dc816767 PkgTTC-SGr-IosevkaSS13-29.0.0-beta.1.zip +602e4cb9634f04e6de29116ece345c35a0f33035ecc994b3d576905af8242f8e PkgTTC-SGr-IosevkaSS14-29.0.0-beta.1.zip +2f5a431c0cf1640f67d68710a3a1d5b6f90da74ef15403e34787e75bb0f147ff PkgTTC-SGr-IosevkaSS15-29.0.0-beta.1.zip +36b1e01ee37d26083a181bec809c84ab359284224d691808fff744244cdc447f PkgTTC-SGr-IosevkaSS16-29.0.0-beta.1.zip +3741deef10c399184956e956fde0c1636929563036a9889d74af83e3e998b957 PkgTTC-SGr-IosevkaSS17-29.0.0-beta.1.zip +60f7ab5dd42a913e8bd80d9b32399ae297ce9a6d4e4e18533f991c17bd0f4cea PkgTTC-SGr-IosevkaSS18-29.0.0-beta.1.zip +895ace0d3a0a82b1a07fd4ae547c6957010c5b445ae6c3005397a9152e198c4c PkgTTC-SGr-IosevkaSlab-29.0.0-beta.1.zip +f47b27457680f135ec449a99230c25e9a83849f759f66db3f00a46145da6b0b2 PkgTTC-SGr-IosevkaTerm-29.0.0-beta.1.zip +e3f6bcaf3978dbf6d3ba5e7e041a956382d70b905ddc88c64b0054a558f7e442 PkgTTC-SGr-IosevkaTermCurly-29.0.0-beta.1.zip +8ea505292f361b4e6cd0ad7ccd6a98eda2c688d63e3a71115d2ff22ca03d9a11 PkgTTC-SGr-IosevkaTermCurlySlab-29.0.0-beta.1.zip +df12cdf6283f70292ff2b54b259d4e8bafe7bc7c33bc85f8f050f7056ca3dc07 PkgTTC-SGr-IosevkaTermSS01-29.0.0-beta.1.zip +68904b516ef0df7723fed26dbb183d00f49164831cc31d90bebd3a2cf51fc9cf PkgTTC-SGr-IosevkaTermSS02-29.0.0-beta.1.zip +5427cdf4ade97a111eafa1a6f7f63a0711cff1ac9e619c05583f5501013c6d7c PkgTTC-SGr-IosevkaTermSS03-29.0.0-beta.1.zip +cd2ec80bf0311d211d7bf85bba0857b3e96c4ee86af6af772e3a8e7b39bb1c6d PkgTTC-SGr-IosevkaTermSS04-29.0.0-beta.1.zip +98f786d5e5098d20218aa88dcad981c51382add002be2aff1dbb81a905f7da7b PkgTTC-SGr-IosevkaTermSS05-29.0.0-beta.1.zip +485a9bf0741b48a2881c4af9ceefdbf8aece7c8438c914879ee624c2ffa48c50 PkgTTC-SGr-IosevkaTermSS06-29.0.0-beta.1.zip +574fe01fcdc0d88bc37cd63da2b92c4b8591adb41a8a9fd84ec440b6068998a5 PkgTTC-SGr-IosevkaTermSS07-29.0.0-beta.1.zip +d302ea43f4979733981509268bc0511790b258436941ca50e98c9c7a17ec87a5 PkgTTC-SGr-IosevkaTermSS08-29.0.0-beta.1.zip +eb1befcaf8fef9e9bb46b421f3368ca06a6acc2e76b04d5438359023d09e4b32 PkgTTC-SGr-IosevkaTermSS09-29.0.0-beta.1.zip +bade69c2386bccdd7a983711b44cbbc2def621d51f67be435ba1e78932935207 PkgTTC-SGr-IosevkaTermSS10-29.0.0-beta.1.zip +fab0112c0ba4b8735e44c0ab05470ec94e5126f45e3b1932555f2cf7ecc124ba PkgTTC-SGr-IosevkaTermSS11-29.0.0-beta.1.zip +eb2b7307cebe93e539eab6dbfc05cc71788eda5d09002a7b63449219cd1d2937 PkgTTC-SGr-IosevkaTermSS12-29.0.0-beta.1.zip +22b8cd76bb1253dfb5313dd89e10aaba1e1a6f122add6149fae4e2da7bc3edb1 PkgTTC-SGr-IosevkaTermSS13-29.0.0-beta.1.zip +c2488ad4bbb25d308a7a10e6e6a2fff623e0b6480e8bd4d6ff1c354121e55e99 PkgTTC-SGr-IosevkaTermSS14-29.0.0-beta.1.zip +a3d6d502ed74954fb492693ed9131a5b9f64f6983125a86333e7010066e005a9 PkgTTC-SGr-IosevkaTermSS15-29.0.0-beta.1.zip +e4fb8d90be5e6019231c6d59f9c75bed58b99c03326923072f34fe0869cfc715 PkgTTC-SGr-IosevkaTermSS16-29.0.0-beta.1.zip +137f74ccc4a7db34b182cc15246021163220105634bb15a79b99b249a50301df PkgTTC-SGr-IosevkaTermSS17-29.0.0-beta.1.zip +2d7e9b26385fc6b1070d169048ee7a0d04215f5a96c9a972dc8236c383ddf38b PkgTTC-SGr-IosevkaTermSS18-29.0.0-beta.1.zip +a505891cf7555b4e09bcdf2172cc84967e2b460283758f755e33cc8037e05805 PkgTTC-SGr-IosevkaTermSlab-29.0.0-beta.1.zip +b5e265c083bb7cff9f2005ba17ca05b18926d112c140dc69b8d93530f26175b2 PkgTTF-Iosevka-29.0.0-beta.1.zip +12a55e9a6a7e447561fce4b0cee184a65fc65ce6296b6a4b29ca74c6435335dd PkgTTF-IosevkaAile-29.0.0-beta.1.zip +fcd220c4258d0d42ff3dee509fd369838c6eb187bddd5564d92d3e2e88a67ac4 PkgTTF-IosevkaCurly-29.0.0-beta.1.zip +2b0a28f32dd7f77338d9de826db29c94f308c4c94effdead1d059a2029b3af67 PkgTTF-IosevkaCurlySlab-29.0.0-beta.1.zip +40fa2781d96f3d07dadbf42a51466b7c1727ec5b0680e2789a293682a66ab9f5 PkgTTF-IosevkaEtoile-29.0.0-beta.1.zip +c2818aa63b2e05dc94d1a3b71c9bbcebe1b4bc0b21f0aab361fd3d4860424f4a PkgTTF-IosevkaFixed-29.0.0-beta.1.zip +8fa55e86dc0291547f7a9be08dbd4cf932f16f7ca287900d60f427910bdbe086 PkgTTF-IosevkaFixedCurly-29.0.0-beta.1.zip +0e57c72695e43523dcb594961bce7d13c37fcaafa8a9075d28ee1ea4b02747e7 PkgTTF-IosevkaFixedCurlySlab-29.0.0-beta.1.zip +3e10027b3657054b0bde5285114cfabfbbe55000db694c671a97269a72114cb2 PkgTTF-IosevkaFixedSS01-29.0.0-beta.1.zip +96b1dfe93aa2958ba3fb00aefd36afafeff98cf7c5f9b3967cd48594f8c0d8a5 PkgTTF-IosevkaFixedSS02-29.0.0-beta.1.zip +078b6837677e26183ec5b4e6678e1e1896df0dc5df22c2d73a3f21d8eded44f4 PkgTTF-IosevkaFixedSS03-29.0.0-beta.1.zip +6a3730dd4dffb175b3f0a39cf519dca066a4a6a206a06afd21cb205b65f65a0d PkgTTF-IosevkaFixedSS04-29.0.0-beta.1.zip +6cee010a789f3379ad45f8cbde412c5b24f0d0fe720626f0d679d9f070ec7bb5 PkgTTF-IosevkaFixedSS05-29.0.0-beta.1.zip +911455c93ed37f50ff6b7b1166a92dc8e19908ffb588f27785c1d897dac95780 PkgTTF-IosevkaFixedSS06-29.0.0-beta.1.zip +3fff691d4ed54c8deeeff5cfc7514bed805e3a4350b6f26c95bb3418e91588f2 PkgTTF-IosevkaFixedSS07-29.0.0-beta.1.zip +741d8c3b5d121a360f1032c2f9c20621d2e92d5bda1021db9acb6e2a99ae3a24 PkgTTF-IosevkaFixedSS08-29.0.0-beta.1.zip +1435e5677d19bec0b9cccfb06c05851cb74c2a4166db99f3df28b0ef176c4f66 PkgTTF-IosevkaFixedSS09-29.0.0-beta.1.zip +681f91069b48bedab939915fc466ceeb66caf03f5772ef774d84bab32b15dbd5 PkgTTF-IosevkaFixedSS10-29.0.0-beta.1.zip +db19f078a6969f7bf5836403b32d910e470f95177f047976b9f132f5fa22f712 PkgTTF-IosevkaFixedSS11-29.0.0-beta.1.zip +bb405346eef0b05e9d9b8924aa8f1959eb349c4a13df37b4e13b5c4f297934ab PkgTTF-IosevkaFixedSS12-29.0.0-beta.1.zip +1365836c2ed3e182bdbd417d8a8a22fff95be7beec4ac1d552fc0c325baa7318 PkgTTF-IosevkaFixedSS13-29.0.0-beta.1.zip +8958551394986cd88b9c953505e18937a31efc2dc441390537678af4a13a17a9 PkgTTF-IosevkaFixedSS14-29.0.0-beta.1.zip +68c1d508e36ad444f6d4e673fda46842de970f07e0f0dba05345e350c328efed PkgTTF-IosevkaFixedSS15-29.0.0-beta.1.zip +a6fd351b1ccfd7dd197248908d22e9032822d1b15991436d1fc7fe34d85d4e7d PkgTTF-IosevkaFixedSS16-29.0.0-beta.1.zip +023de989acaa1222fc82f8538ca0497be63c39745d75a981ef0e0752e509331e PkgTTF-IosevkaFixedSS17-29.0.0-beta.1.zip +c567d26ee86e7d3007c93a0ecc1a67d639161c94661e526b1263b5c58e59ad41 PkgTTF-IosevkaFixedSS18-29.0.0-beta.1.zip +f671d69497f32429b57dd0a6920d808a6160334de7ca9b02d24fde14a2ea458d PkgTTF-IosevkaFixedSlab-29.0.0-beta.1.zip +061b52ad55fcb8b88384f208b6cbbbc4c1633af085e10f6617fd3d01c3139c34 PkgTTF-IosevkaSS01-29.0.0-beta.1.zip +1392dc2a7e25f5dc1cdab54bb7b3b5278a842e8e93fadd928acc5a3d6ab07fef PkgTTF-IosevkaSS02-29.0.0-beta.1.zip +14e63b1615b77cf54d1d5a82e5681531fff0959d836b57fb59a87d51d5dd25e9 PkgTTF-IosevkaSS03-29.0.0-beta.1.zip +d39e3ab8ba1c86a6938cc96abdadcf5e0df1831553541a193e13c64812eab03a PkgTTF-IosevkaSS04-29.0.0-beta.1.zip +2fdfabc436308b443410b748c29a51f305cd88b6beb9ab8b3667fdfb5af38486 PkgTTF-IosevkaSS05-29.0.0-beta.1.zip +4e3c3961e34281c155801be3ecc82b5c7fc3175af2dc7fa63e0695bcbbcd8507 PkgTTF-IosevkaSS06-29.0.0-beta.1.zip +86c594afb4c5c499c91a880f19a1227e477be98a743859bab715ac800ae915ca PkgTTF-IosevkaSS07-29.0.0-beta.1.zip +7e91bd2d61e5a2ae5c5faa8f5a6dafec0fcee3855f773c43d9d69f47f76b1e55 PkgTTF-IosevkaSS08-29.0.0-beta.1.zip +c0523f45d4155f9a32bc2b08266f6f6fef051b1a3f68ce248485a35156466d35 PkgTTF-IosevkaSS09-29.0.0-beta.1.zip +2314d395723952375fc8ade77d589639cd66862944f971d08838774ff535a992 PkgTTF-IosevkaSS10-29.0.0-beta.1.zip +ef3215deab7a58f8e23cb3f0ce474a1c9c9841435fc9b74a8a7f369c2ac077e4 PkgTTF-IosevkaSS11-29.0.0-beta.1.zip +899dcf9744f198cba2446aaf2eaf16b14c1c716935bbac861de3af8891ac5fb2 PkgTTF-IosevkaSS12-29.0.0-beta.1.zip +b84e2f5adcd325f728c677c97f96ae52229e1c191a451494726fff324a453b36 PkgTTF-IosevkaSS13-29.0.0-beta.1.zip +2b86d5cec0487eb3e5120cdc78726f06dff7869ab42ce63acdde434a171a24e6 PkgTTF-IosevkaSS14-29.0.0-beta.1.zip +614bfb9a6da8f2689c286401398f7c205fd2eac0b55b0157813391407c318d67 PkgTTF-IosevkaSS15-29.0.0-beta.1.zip +e2316c771ea048915917f9029083aa3d790ca9c25b5445bfba1450feb3954350 PkgTTF-IosevkaSS16-29.0.0-beta.1.zip +dd794bb1a6f470584a85c1601e8f80e66aae06564e6650d4201a45e8b5d7dff7 PkgTTF-IosevkaSS17-29.0.0-beta.1.zip +b6ad952bce3efbe44489ce7171550431c5f6cb1a76576791b209ab4258c53f25 PkgTTF-IosevkaSS18-29.0.0-beta.1.zip +3fe727839cecb98f5c29c9b0bf258abfbd022c8d24e0f3b8999f35676707a260 PkgTTF-IosevkaSlab-29.0.0-beta.1.zip +a3dc5839a9abc89fde9566994e90e12ff676e325d22df4dfdd3c44d052f95885 PkgTTF-IosevkaTerm-29.0.0-beta.1.zip +f0eb2f0f9a31329fc72e49edd936002d396d49fa938eaadae38ee2ed58f35c86 PkgTTF-IosevkaTermCurly-29.0.0-beta.1.zip +51cb921a4cb1f9534eb0f15652b7031c2706cf41d51f621ab5eda157276bcb61 PkgTTF-IosevkaTermCurlySlab-29.0.0-beta.1.zip +d161fcd588d995e5fe13f1b6868645efc970e72d2514df1d2208561f29d5b2b0 PkgTTF-IosevkaTermSS01-29.0.0-beta.1.zip +d2904e8f6e953c6ee827e49e66a5158b41c02d5caa2dd4b3230e7c7b3bc7a454 PkgTTF-IosevkaTermSS02-29.0.0-beta.1.zip +fb4d17c72c970da89697f907e11f18bb47714f051779cf6c7327d710a731180a PkgTTF-IosevkaTermSS03-29.0.0-beta.1.zip +de909f269ec66c3b53d7067095744338fa97aa2185e384ea126fbcc1baef8aa1 PkgTTF-IosevkaTermSS04-29.0.0-beta.1.zip +1f37e05a1f66f71b34e28e4c032ad8f6663dae5a75d4a070e9193000e9ecbc5d PkgTTF-IosevkaTermSS05-29.0.0-beta.1.zip +d67300182297560e6abb12d7d7d5dbccb4dbd152ac077c2526e912e0a97acdac PkgTTF-IosevkaTermSS06-29.0.0-beta.1.zip +7b9f6114820f4820bb265bb68d1858f28e1bc336f3c92a43915c5c5543bc3a45 PkgTTF-IosevkaTermSS07-29.0.0-beta.1.zip +a669da74ef289143280e42ab274358f829f73d103bb0e0b722308819244f4662 PkgTTF-IosevkaTermSS08-29.0.0-beta.1.zip +6ec7f33f8f07d7476a856c37001552bdc9d78af25794b7f33f135be2d2586c23 PkgTTF-IosevkaTermSS09-29.0.0-beta.1.zip +c039b6ba920555dac36d9cb68adcb6d64b9ff0f700e4821467434b794e9184d4 PkgTTF-IosevkaTermSS10-29.0.0-beta.1.zip +733c12212b836e0a2d44aa69063c59da8a592dbc82921b3365cb5fba9691def8 PkgTTF-IosevkaTermSS11-29.0.0-beta.1.zip +23d245b0955aaf0754715ee1930c987db7b9a3d4ffd6363e73aa9dd10859850c PkgTTF-IosevkaTermSS12-29.0.0-beta.1.zip +c714b868fb578f9b94e500c333fdfba6ef7d16067510482f4a565515cdefbfb4 PkgTTF-IosevkaTermSS13-29.0.0-beta.1.zip +dad6c68af04ccbc3bb5db721c2dac540dae53da207c32cc152b9881f365ea867 PkgTTF-IosevkaTermSS14-29.0.0-beta.1.zip +01f8eac1fb8837cb33f865ac5d3360427f8c55fd077c2c5262320e88c0bf4191 PkgTTF-IosevkaTermSS15-29.0.0-beta.1.zip +9602d1731f48d2e4ed1c18eb66e4ce0af766ad1e8868f56f04632b44f14ef172 PkgTTF-IosevkaTermSS16-29.0.0-beta.1.zip +7afbb20ab9b25849c29ba264eecaf6409d4f5cd97f65a5edaf3beaa7b6120e0c PkgTTF-IosevkaTermSS17-29.0.0-beta.1.zip +0f5ebee98dc87609d3a2668998d58cb99069892b8c5b42bc47b07ccd7e962d66 PkgTTF-IosevkaTermSS18-29.0.0-beta.1.zip +61bbec28189fd6336b402f65110670bfea0675d35edfafbc7c4d226ccb29e318 PkgTTF-IosevkaTermSlab-29.0.0-beta.1.zip +58188865fef7b43d239b1f24a0563811b34affe23764abf4465989b4c04f7aa0 PkgTTF-Unhinted-Iosevka-29.0.0-beta.1.zip +47adb778d329ee2df1ca488562da6769a6c0a48359afae1f738116370e98d308 PkgTTF-Unhinted-IosevkaAile-29.0.0-beta.1.zip +ece47c670c78f2ec7af4d29393a047248dcb197d795201879781de713b5e6183 PkgTTF-Unhinted-IosevkaCurly-29.0.0-beta.1.zip +ffe8a2e63c034569a170c6aeddd152a236b563628bc2bff0c880a59016978a84 PkgTTF-Unhinted-IosevkaCurlySlab-29.0.0-beta.1.zip +04b3301ee7ca98c519846b5d3d615d20eb7999bfe34e6508ca40cd1e8649fd63 PkgTTF-Unhinted-IosevkaEtoile-29.0.0-beta.1.zip +8b36be64c3fe5db7cc867483893fd51a969517f91f6cc2077343bbbaf55e29b5 PkgTTF-Unhinted-IosevkaFixed-29.0.0-beta.1.zip +c11e7e51abaf0d3bbbf4a0b933d4b717928f502d3fb570279207bcbe97f0c2db PkgTTF-Unhinted-IosevkaFixedCurly-29.0.0-beta.1.zip +dde7c167adfd264a5aa38bb2ebc20935f59324ecedbf8658a3f1fe456a08a7eb PkgTTF-Unhinted-IosevkaFixedCurlySlab-29.0.0-beta.1.zip +8c9e61fbe1b98bab015c703d2920c740ebe2d87829f697d4d4784959da9bda86 PkgTTF-Unhinted-IosevkaFixedSS01-29.0.0-beta.1.zip +4cbf843c69dd2d46ce538a01e32fd5108327c1420dfb4b80bfe0fbec6ad43ef9 PkgTTF-Unhinted-IosevkaFixedSS02-29.0.0-beta.1.zip +b0039bb92ce7c34fe90b6824f88206b29c40b7e6ed3f01219ade43cc327d7c52 PkgTTF-Unhinted-IosevkaFixedSS03-29.0.0-beta.1.zip +790b123f7ec695100fca8cd221bc1b48b1ff3d0854a756606cf07b0d68fa14c0 PkgTTF-Unhinted-IosevkaFixedSS04-29.0.0-beta.1.zip +6d6e46646119f14011e03692b571a4e0b185cb7847696e1271e9f1a4fb0ddd90 PkgTTF-Unhinted-IosevkaFixedSS05-29.0.0-beta.1.zip +a48862c26cfa567b86f637857d27b42d85df6ae5634973ed5f52a243f5f9831e PkgTTF-Unhinted-IosevkaFixedSS06-29.0.0-beta.1.zip +78b955def4b45d1d28deab084a7dd333190e6592248eafe643fc8a0dfd52d5a7 PkgTTF-Unhinted-IosevkaFixedSS07-29.0.0-beta.1.zip +03eb5ec12eb71f637be8d838a625b1bfa2e8c237aa73d718fbf7f79f831d2e4a PkgTTF-Unhinted-IosevkaFixedSS08-29.0.0-beta.1.zip +cc6670ab00f56a6be902859c0c19a5731dc4eca2ab51e09d28958d458e29c60e PkgTTF-Unhinted-IosevkaFixedSS09-29.0.0-beta.1.zip +6c18c9cc97c46d80f00049999de2a9705f30b98a53b2e5d988b29387ddef74ce PkgTTF-Unhinted-IosevkaFixedSS10-29.0.0-beta.1.zip +093fd676eb3ee181a56cee87114d2d6bff158dca1fa30d950666446665df1fac PkgTTF-Unhinted-IosevkaFixedSS11-29.0.0-beta.1.zip +4f81c38a9bdd30d1adefcad2a85e275ec3ae08d370ab7a39a34f78c5df62722b PkgTTF-Unhinted-IosevkaFixedSS12-29.0.0-beta.1.zip +c8f976eea15bfb7dd58f7e7860847b79d72cfb94b58fa4bb27472020738a251f PkgTTF-Unhinted-IosevkaFixedSS13-29.0.0-beta.1.zip +0e77632a7a7813b4492e37750bde23d5c80fa9cf816d9f763392433efb9b7dbb PkgTTF-Unhinted-IosevkaFixedSS14-29.0.0-beta.1.zip +f10125812c6d37c36e94f0d97acc1a473c833ea14247cce5aeaf540d6301ea88 PkgTTF-Unhinted-IosevkaFixedSS15-29.0.0-beta.1.zip +616fb5f44c65f3c962d4dd3e09f84f46c908b6aa2ba3f4cae237382e92a3322d PkgTTF-Unhinted-IosevkaFixedSS16-29.0.0-beta.1.zip +87915ce06d3ee66be53edde45813db709a2fe7693643c69b8c31fdc81cb36d4d PkgTTF-Unhinted-IosevkaFixedSS17-29.0.0-beta.1.zip +f3ad122565901ad31aab2534a1444dd6b07fac7f146b7c6d4d60508596cac7fb PkgTTF-Unhinted-IosevkaFixedSS18-29.0.0-beta.1.zip +0b035ca531e6938f60159b128d870fe02e8a335d2eafee0e4fe53c2565c0f474 PkgTTF-Unhinted-IosevkaFixedSlab-29.0.0-beta.1.zip +cc8889c1cad5456d9dd0941f6086b90697e06339026fa53f36479958117cb9de PkgTTF-Unhinted-IosevkaSS01-29.0.0-beta.1.zip +f0e0050bbd72aef3cd1d26dd4e58d67cea7f17f4bc5d09474baeffd866727c01 PkgTTF-Unhinted-IosevkaSS02-29.0.0-beta.1.zip +839cc89c4e8963290dd431e2a0239830c0d6288b144336c65e07eff89c6907e5 PkgTTF-Unhinted-IosevkaSS03-29.0.0-beta.1.zip +86a399a6d0d3fd074c418c0d448fb55ea94f73fd61ef1e7c1efe67027a49cc04 PkgTTF-Unhinted-IosevkaSS04-29.0.0-beta.1.zip +d6a41cbe343b89f74abbe56c7b0f5bb1927ad56413518cafd344a7f630cb2811 PkgTTF-Unhinted-IosevkaSS05-29.0.0-beta.1.zip +cc60259858a449288f5130e17c18bdfc8d884e9b846ee7171c5b533bebf06960 PkgTTF-Unhinted-IosevkaSS06-29.0.0-beta.1.zip +081912a74c7ab492d2ef2497096d7b3bf007de2ab6b0f1738a197b71c964879c PkgTTF-Unhinted-IosevkaSS07-29.0.0-beta.1.zip +33b090f8663f33e73ea0912e69a4d023fc5bc5e66916c304a39cbdf8618fb48f PkgTTF-Unhinted-IosevkaSS08-29.0.0-beta.1.zip +adcf3789b1323a1e23965e32cfcbe83afce1fd1a5fc5d02ef49b81149c89f7db PkgTTF-Unhinted-IosevkaSS09-29.0.0-beta.1.zip +a5049d949d6d099a587904dee951dc7c2a3df1006b28973ae9790c6e03090af0 PkgTTF-Unhinted-IosevkaSS10-29.0.0-beta.1.zip +0332170be9c1c3422fe54afb9ac993ad5dec101d4b7d677b7ebc1f1a442e4c37 PkgTTF-Unhinted-IosevkaSS11-29.0.0-beta.1.zip +790a9a47df0f651844aa33fb31dfdba5ed2443f07c9b7dfea45794ffa4268438 PkgTTF-Unhinted-IosevkaSS12-29.0.0-beta.1.zip +89e535382e5c48b634611ea846f6c4a66f15dd1f0f4e78e13c366cda2f52002c PkgTTF-Unhinted-IosevkaSS13-29.0.0-beta.1.zip +2dae207f5f6516f1d06ab0d1026f8ab4306a59e259636fc7c3775707f925664a PkgTTF-Unhinted-IosevkaSS14-29.0.0-beta.1.zip +565a3fec8cee6e0cc9d85026b5ecc07f1a6d8417a72371e1aeb5971cce77471c PkgTTF-Unhinted-IosevkaSS15-29.0.0-beta.1.zip +49a90fbcd5f77c70a964a3c92c6c2dbd594e287558293bbef2da14b8e3c3c4e4 PkgTTF-Unhinted-IosevkaSS16-29.0.0-beta.1.zip +8e8c74331ce750d3990ba9362bee43c85a7ecef2fb7ff1b87a0c36cdd7872544 PkgTTF-Unhinted-IosevkaSS17-29.0.0-beta.1.zip +542c9b1019e863b16ed777d8bf203a34adbd6cab0aaac356dbc1c27b7b9e9f58 PkgTTF-Unhinted-IosevkaSS18-29.0.0-beta.1.zip +e9675fb32cac7e7fd7a3c8d3a9462c486276329305011281d3f57b9752b9cfd6 PkgTTF-Unhinted-IosevkaSlab-29.0.0-beta.1.zip +6616412e0f6dc8c0ed54ed0ecb45a91042f16c8e05e74dc629874a623af9ddcd PkgTTF-Unhinted-IosevkaTerm-29.0.0-beta.1.zip +c5f159995f4454c68642df1510920b044612d0446f9a9a8c315501537f3b476a PkgTTF-Unhinted-IosevkaTermCurly-29.0.0-beta.1.zip +b3b649116fd82b018772447ccc87126f5388df004612d6cedba52c94b2aac5b5 PkgTTF-Unhinted-IosevkaTermCurlySlab-29.0.0-beta.1.zip +4b06de1782128c0e64681fe07da73dbd4529f614c9d49e262b44602955429a4c PkgTTF-Unhinted-IosevkaTermSS01-29.0.0-beta.1.zip +99ec98326c004be83a63af0c8ba8f447efd7df592011baabe49df3285fc80c0a PkgTTF-Unhinted-IosevkaTermSS02-29.0.0-beta.1.zip +6a5128d780405e70c337d61ab4b870983b979ee7e2f2056e4e5121504c5c946a PkgTTF-Unhinted-IosevkaTermSS03-29.0.0-beta.1.zip +896d3ec0d7ffebd2499cfe7dfc2329435c0f107824d1755ccd0a7bf12f35c846 PkgTTF-Unhinted-IosevkaTermSS04-29.0.0-beta.1.zip +ef3bcb65d0e31b43e748b974fe18ccad808282496e2404ba14c330328d4c678f PkgTTF-Unhinted-IosevkaTermSS05-29.0.0-beta.1.zip +02e564ae470475b404f81bd21a0161aff1a211206ff7c168c27ef1abdc55d8f6 PkgTTF-Unhinted-IosevkaTermSS06-29.0.0-beta.1.zip +3c505bc3c9685866ccf9229b4c19afd123a8f6c2e7ec848e124e12b83b5e03e8 PkgTTF-Unhinted-IosevkaTermSS07-29.0.0-beta.1.zip +63668cfe169b00b7396aa6101705eca4b9fc700410699aa0acf024cd30d13bdd PkgTTF-Unhinted-IosevkaTermSS08-29.0.0-beta.1.zip +539f8b55c6fc4d5bbe68ec6ffc9a609c84144bd7ecd8c4fb9fe072d294ba5c59 PkgTTF-Unhinted-IosevkaTermSS09-29.0.0-beta.1.zip +98a35c16c0202e08b732a399754b48f65bf5b2faab10f925cbaef4968ea1095a PkgTTF-Unhinted-IosevkaTermSS10-29.0.0-beta.1.zip +f613df111ae0fe8470a7051b63381541330ae013b06be7c07216189a619035e6 PkgTTF-Unhinted-IosevkaTermSS11-29.0.0-beta.1.zip +15f94d7d628a6e3d2fbff256f0893ed29e57906bd5f081bf581a82398173aa83 PkgTTF-Unhinted-IosevkaTermSS12-29.0.0-beta.1.zip +134f19a40aa4f0d4ea040efd5af08da1d3559bb7d9c126fdda1752e867db97af PkgTTF-Unhinted-IosevkaTermSS13-29.0.0-beta.1.zip +394ad8fb9d807ecd9ee90b57c0a09d5c5f4f6cc2ea64747012eaef17980f2fbb PkgTTF-Unhinted-IosevkaTermSS14-29.0.0-beta.1.zip +f132c65bd6fee37648eea79bd5fa1ffb6bfc3761ac45106169b67fb7b1eb340d PkgTTF-Unhinted-IosevkaTermSS15-29.0.0-beta.1.zip +e370960f65df14dfb4ce13268ee90fd0238c3466c4aaf8697502528e3c0e7df6 PkgTTF-Unhinted-IosevkaTermSS16-29.0.0-beta.1.zip +52c58e45596a67411e3a019fd8f2576fb4155c464d5857be45709c00b0391b3a PkgTTF-Unhinted-IosevkaTermSS17-29.0.0-beta.1.zip +0934e112e88ca0929894eb3c405b44d380914a8ab4272740916fb94b203cfe1e PkgTTF-Unhinted-IosevkaTermSS18-29.0.0-beta.1.zip +4063779c324da99619ec95630e397bc5f6eeaf141dad84dfc8bf134cc6f70169 PkgTTF-Unhinted-IosevkaTermSlab-29.0.0-beta.1.zip +42b5a76c22a41b72931c926657334a7afe3eb23f36665faa561a02cff0c31cfd PkgWebFont-Iosevka-29.0.0-beta.1.zip +e8c150e91fb1c2817c2a828d92398beaf399eca4e69eca892c471aa40fb2196d PkgWebFont-IosevkaAile-29.0.0-beta.1.zip +afcff8029772e876ca3b5d2622a163d3449d1deff29a21e8c9313701167cafb9 PkgWebFont-IosevkaCurly-29.0.0-beta.1.zip +6e5be4b92ef8d054f391ec96256653e5e1ae55b7229bb665e8b9741b1649cd5e PkgWebFont-IosevkaCurlySlab-29.0.0-beta.1.zip +a859fab3f1be84afdbbf06ae77bacd2296561da3ae47e77a68599283a424cb17 PkgWebFont-IosevkaEtoile-29.0.0-beta.1.zip +d61e3a7ac0d06937dbe2c5cdc8ca6d3eaabbaf1886485c1db65574b4fcd7226b PkgWebFont-IosevkaFixed-29.0.0-beta.1.zip +8fa679c41c99a69ed51648cfb33d2c22c1730cbb19bece2ccec495f5b1bbcb2a PkgWebFont-IosevkaFixedCurly-29.0.0-beta.1.zip +3d0785698ac79babe93e2e576712f81bcba4b98fc6102a6428ba6d6eab21d3ff PkgWebFont-IosevkaFixedCurlySlab-29.0.0-beta.1.zip +9e9344fda30a9aee4fe2c5103b10c46f64dc203fa4eb2201271c7ffe888b7087 PkgWebFont-IosevkaFixedSS01-29.0.0-beta.1.zip +de8597162f9badd2d3819b43373f7b4dd06172f4e21bd3a16d8c6b28d04b3eab PkgWebFont-IosevkaFixedSS02-29.0.0-beta.1.zip +4e59e7c1bd8d585f2008d4ea4b895b8a23da72752a53a8208ad12bce67564dc6 PkgWebFont-IosevkaFixedSS03-29.0.0-beta.1.zip +bebac2de7afd4eb7b1b8d3f9b41274dfc41d982d7f68d9905b9e314186beaa9b PkgWebFont-IosevkaFixedSS04-29.0.0-beta.1.zip +3f9a36bfc5086ea97e3f98cd96d7162be2c58657f08502837731069189aee31e PkgWebFont-IosevkaFixedSS05-29.0.0-beta.1.zip +eaa92efb57e547495157342f73361dd1f5740c6182f5b7be71b9498be4f2e052 PkgWebFont-IosevkaFixedSS06-29.0.0-beta.1.zip +441fb1c726395fd822656439afb31e75f9d8fab6629c596d820a6eaa1f290b4a PkgWebFont-IosevkaFixedSS07-29.0.0-beta.1.zip +dac1630febe4ddcaeccb8ca6f88688569b3fdc28b77f0e3ec78a26ee007edf03 PkgWebFont-IosevkaFixedSS08-29.0.0-beta.1.zip +ab0d3fda7e3f46f03cd0db76a8b53fb8489d3c512b25e8c1aa784866e3dc70d2 PkgWebFont-IosevkaFixedSS09-29.0.0-beta.1.zip +07846f7b777d74bbf7cbcb0e23b500ab9c13b2d61f4530c83120820a73f14d11 PkgWebFont-IosevkaFixedSS10-29.0.0-beta.1.zip +4d9be0fa8a76dc14ba43c3f6258831fb611b58152ba2ce5be9d7d1173e94a2cb PkgWebFont-IosevkaFixedSS11-29.0.0-beta.1.zip +0de9a714edb98578df2816719e08125fb6908b1ad6cb1084dfdf371fcb4a68f7 PkgWebFont-IosevkaFixedSS12-29.0.0-beta.1.zip +23f065e743b65bfe1aeedb13c449e6dea935444dd9ac646a8bb271a2960412f1 PkgWebFont-IosevkaFixedSS13-29.0.0-beta.1.zip +ce15f32cff6185b26ffae0d99b817f2aa2d936a901181eeb52499cce5e8f7469 PkgWebFont-IosevkaFixedSS14-29.0.0-beta.1.zip +c699f618325274199eaa1b8219c236b92968e7d7033d4cd1a5a2070f557c655b PkgWebFont-IosevkaFixedSS15-29.0.0-beta.1.zip +fbc944ee9179621be9c0c0bcd2f1f486cdd541614c6e886fc2f08d8eaea07671 PkgWebFont-IosevkaFixedSS16-29.0.0-beta.1.zip +e0c7ef16d22981885f7cca614275d70777a7e5363931966621f139b1337cbdfe PkgWebFont-IosevkaFixedSS17-29.0.0-beta.1.zip +9e307f99a88e8b308468308480b05d20186a6f29e1f60020b555f5d57ea77a51 PkgWebFont-IosevkaFixedSS18-29.0.0-beta.1.zip +5f2f349a92902dae2fb8fb3bf086ca3aef7d5e5e81443cbd7ae4cc75d61d02d5 PkgWebFont-IosevkaFixedSlab-29.0.0-beta.1.zip +63d7d44711af508223cc677e56905a66c51e79caac2b660a817dc28e17d8bc8b PkgWebFont-IosevkaSS01-29.0.0-beta.1.zip +57a6c5490d75863539d4dfabbcf72115b71e2013218f353f0e3655e349a0a94c PkgWebFont-IosevkaSS02-29.0.0-beta.1.zip +5f300b77ae04a45dd75dac2359c5b918e213dc4f9017f8b6eeb28741c0285e8a PkgWebFont-IosevkaSS03-29.0.0-beta.1.zip +bc21bcdb05a391d4355b1246200d56b3883d6d08775ce9b1f0009cb3574216ed PkgWebFont-IosevkaSS04-29.0.0-beta.1.zip +d7d3735042fb7ecc2fc02635ade4a543411c4c696731b5f31ce9b03991381810 PkgWebFont-IosevkaSS05-29.0.0-beta.1.zip +d5d1d95da70e57e4714e0cf4d1b927e6c4234f0b55301775f59c1aa20368b067 PkgWebFont-IosevkaSS06-29.0.0-beta.1.zip +c9815f84b301dedf0f636e9b1223b948ef35bb4ea96884157d05f7017218b5c7 PkgWebFont-IosevkaSS07-29.0.0-beta.1.zip +4c05b4f3e8f8f0e12f767da08d2d46dbf01bfd266edb3d65377f2c081d2c194d PkgWebFont-IosevkaSS08-29.0.0-beta.1.zip +7b37ef8dd7825058fa49a7ed3d1b04e40fef850136a4e5029db086908892b691 PkgWebFont-IosevkaSS09-29.0.0-beta.1.zip +4330ef1b3d5f82d543ecb5fb26eb615931e78dac9341d4291878799c1181e567 PkgWebFont-IosevkaSS10-29.0.0-beta.1.zip +0cce0c83948afeadf347863deff0691b25144523a9ed4f6e04b9c4a5e3a4c4fe PkgWebFont-IosevkaSS11-29.0.0-beta.1.zip +2b12f5cde9b68b5556296e442147e7e1d20306282511bb2fdf9a585711ab5aa2 PkgWebFont-IosevkaSS12-29.0.0-beta.1.zip +2daee0006505666238254f84b7d83b2f96b5a10267f3a709a6bcaa9cd7e6b7ad PkgWebFont-IosevkaSS13-29.0.0-beta.1.zip +a3cb67cf554bca30507aea12a23ec6c4e3fd3d4e5d7c9f6d65af40fb9c4c76ac PkgWebFont-IosevkaSS14-29.0.0-beta.1.zip +f7fda966e09a7ed810aae26e1ac51297bb3312c2219292bd319fe6459fcc84f5 PkgWebFont-IosevkaSS15-29.0.0-beta.1.zip +a1daf2e2800c46166a5825d5be92436b0dcee8ef9fccaa2c80d9fb6da38ef9e2 PkgWebFont-IosevkaSS16-29.0.0-beta.1.zip +0fee78a0b66f400d657adecd82724c449e1b15418d838b74b512579739eaada3 PkgWebFont-IosevkaSS17-29.0.0-beta.1.zip +0e3d43d18a869f6572b9c2fd39750e5e819a77d5f74e1cf70c69e874dc036485 PkgWebFont-IosevkaSS18-29.0.0-beta.1.zip +547d5cb6a4f1d381e676398588356419bb7f06fc602d17c40a6816e5427f8923 PkgWebFont-IosevkaSlab-29.0.0-beta.1.zip +1d514300e339d20086e900de5645740768a21180458cb7ebe02f9d9b3fd0bc95 PkgWebFont-IosevkaTerm-29.0.0-beta.1.zip +a576fc40e4ed5eb28a6da3b4923a348a94b073fabb8ce75258b302c2f06ee082 PkgWebFont-IosevkaTermCurly-29.0.0-beta.1.zip +4cdba42d47565128d6d68dfbc0f2e34235192d96567d9f697606b78de90aa9de PkgWebFont-IosevkaTermCurlySlab-29.0.0-beta.1.zip +d9cc0d0d8d7e93964b8f4f2381a1cb9e7d20f2b165cc770b6948634901b574eb PkgWebFont-IosevkaTermSS01-29.0.0-beta.1.zip +6b3eb35cc5f36531fbd67591a8b98a278c283a63de1e8f201ab0fe0dd6b00c5e PkgWebFont-IosevkaTermSS02-29.0.0-beta.1.zip +849ca2bd197e0f8218fb4a26184852357048621c03e4ebb9873d8dedd0802634 PkgWebFont-IosevkaTermSS03-29.0.0-beta.1.zip +3a4b94700b6a69a79290fed81600c4cc2082996b7b5328cde29de9f695f46143 PkgWebFont-IosevkaTermSS04-29.0.0-beta.1.zip +7462dd689967e8075c679f546eebb82144b283c032eb2fe378b4b0adb15f4539 PkgWebFont-IosevkaTermSS05-29.0.0-beta.1.zip +dc40a5b83fc2447bc22c58372b9010bb1b4692fbf31937de069c7d5a828133ac PkgWebFont-IosevkaTermSS06-29.0.0-beta.1.zip +358933d7be98800a0e351240cc7fac9a091faaba8c32548fdd104f8d1e3bcabe PkgWebFont-IosevkaTermSS07-29.0.0-beta.1.zip +5aec0a3b59e48a9a85aff1653f19770e2acc9fa2e1c456094e633ac15cb32bdc PkgWebFont-IosevkaTermSS08-29.0.0-beta.1.zip +2b06a3921be617bb143cab5a964bfdba498d976e2c878428c93846b9d8eba37b PkgWebFont-IosevkaTermSS09-29.0.0-beta.1.zip +1861f4d299072b37bb30e86e86cc2ee9820ea5a3be5f7d4325271f595129429c PkgWebFont-IosevkaTermSS10-29.0.0-beta.1.zip +985e0965d08f7db2a5bd583e62ce11f73354cca972c88535037d9bcb457d3da3 PkgWebFont-IosevkaTermSS11-29.0.0-beta.1.zip +fdcc310e779bf97bf20a769512362d1bdfd006997d6d4ce9483ed738cca7e5ba PkgWebFont-IosevkaTermSS12-29.0.0-beta.1.zip +fa2cae192d71bc1195d8806bc77b0ffb4efca84e8dd50e3a295772c66c5dbbc8 PkgWebFont-IosevkaTermSS13-29.0.0-beta.1.zip +7a26f1dcb56706be45bea8790221da4f36bb5c530ba515dbf53a6a735522c729 PkgWebFont-IosevkaTermSS14-29.0.0-beta.1.zip +6ea373bb17b0318b4370c5c8c4d4bbfead63d1cd32e82ead10c566127b753d88 PkgWebFont-IosevkaTermSS15-29.0.0-beta.1.zip +e5b2c38807372d11ec868ef37f53e67d4141f094069c7462839dbec2c35d0355 PkgWebFont-IosevkaTermSS16-29.0.0-beta.1.zip +f48ac9b9208b59f7a17318dded57939be89fee072fc44ed0eef06afafd0c14c2 PkgWebFont-IosevkaTermSS17-29.0.0-beta.1.zip +ed213845597f0e85fae4cf232a80df437679c2fefe128fffc658918487700c15 PkgWebFont-IosevkaTermSS18-29.0.0-beta.1.zip +0c06729b75df2fe65a5ec6a0beaac38790b4aa0ee4dd19c87b2538eb1a51f595 PkgWebFont-IosevkaTermSlab-29.0.0-beta.1.zip +96777cd1470a5d652750c1728cd79909e94802b2950918d827a6f46cf4ec8009 PkgWebFont-Unhinted-Iosevka-29.0.0-beta.1.zip +a2e10a07d55af8f630bedff492b66bb5d347e255e536bcaac0990f14406255ba PkgWebFont-Unhinted-IosevkaAile-29.0.0-beta.1.zip +58b3147dc4b10f891541785402ea64d0ed72eb10cbc8a02bbdeca96730a25d77 PkgWebFont-Unhinted-IosevkaCurly-29.0.0-beta.1.zip +3bbd38635cb7bf4353690202b34d5c838e225160c3bd32ee12308c29b78d64b3 PkgWebFont-Unhinted-IosevkaCurlySlab-29.0.0-beta.1.zip +4974d50e03c6fdc035113c2ee0171958474f3bbbd9edcbdf4bc0c0a864d17af4 PkgWebFont-Unhinted-IosevkaEtoile-29.0.0-beta.1.zip +93b1d5b7505236faf1bada9f7b719fd1ceb1b5c5681b5964002f289f07c74b8c PkgWebFont-Unhinted-IosevkaFixed-29.0.0-beta.1.zip +aa419975f0e0e8fa86ca14a6d7b02c3f704cec7d2b8e40fd218d2c214e85b00e PkgWebFont-Unhinted-IosevkaFixedCurly-29.0.0-beta.1.zip +4ce5b00e0a226fd2941cbfbf07dfbdbf17e4b2ecdd82308bb17f6bdd20af15c4 PkgWebFont-Unhinted-IosevkaFixedCurlySlab-29.0.0-beta.1.zip +e73bbbf216fbbda4e4d70a34c976449379ec10d203b45ea289f3a1fdfed5fb6a PkgWebFont-Unhinted-IosevkaFixedSS01-29.0.0-beta.1.zip +59163163c724810929a9c00455940c9ec91858fcfd9ab6393f94be84fdda9856 PkgWebFont-Unhinted-IosevkaFixedSS02-29.0.0-beta.1.zip +02adc0abbabe05b07e0c1b526c92d9563f7a37403697b123748c5913c6a2c019 PkgWebFont-Unhinted-IosevkaFixedSS03-29.0.0-beta.1.zip +e6e9f798523bfaf74ce1f5ea5ccc17593ac28e98587219ce34fc2b19346b39fd PkgWebFont-Unhinted-IosevkaFixedSS04-29.0.0-beta.1.zip +338dcf683385f1d17de958e945efabb6f88943d00a2bcae7b2a7398cd39df589 PkgWebFont-Unhinted-IosevkaFixedSS05-29.0.0-beta.1.zip +0951b17bbef1f554f260bd79ebced2d6034c57bb037dff5657210aa9f8084f3c PkgWebFont-Unhinted-IosevkaFixedSS06-29.0.0-beta.1.zip +439bd58ecd14849343ccd52e72936c4b5845ed92b7e692e0b39a08cad9a8fbbe PkgWebFont-Unhinted-IosevkaFixedSS07-29.0.0-beta.1.zip +f4d351dc0a5f8357326619660e16149826a0f7324ee7b910c6f09cf7e769de6f PkgWebFont-Unhinted-IosevkaFixedSS08-29.0.0-beta.1.zip +8295209ecfb3199515dfcbce4b26c55f2453248f3211ac701458bc72e88aaa5a PkgWebFont-Unhinted-IosevkaFixedSS09-29.0.0-beta.1.zip +74d42bfe22b8a4e1b408ced9b64d503aa7eda2488bfc364ed4ae72fc37949854 PkgWebFont-Unhinted-IosevkaFixedSS10-29.0.0-beta.1.zip +cd078c4b284c90799d95d423eccf0d32542e0d1c2f500de1bb20d772378777af PkgWebFont-Unhinted-IosevkaFixedSS11-29.0.0-beta.1.zip +9fa1b5b7d662ac5b980c815678d8425a8770b872a276b066d352364f65f4e5e1 PkgWebFont-Unhinted-IosevkaFixedSS12-29.0.0-beta.1.zip +f83b22bb5b63b11aaf11f60af95be9a8935c8255e3e9d5ce5ced4282d5e0296c PkgWebFont-Unhinted-IosevkaFixedSS13-29.0.0-beta.1.zip +7a1fcfb44c3d15c7b3c77ad0ec6ee553ed7a9f17f48c9840de52b22fee7e3952 PkgWebFont-Unhinted-IosevkaFixedSS14-29.0.0-beta.1.zip +759e834e90b753f0d06b7b6ecb17150c3556cd397d8768ac8a34f05cc27f648a PkgWebFont-Unhinted-IosevkaFixedSS15-29.0.0-beta.1.zip +61af57c504aaca801330e9d47c7b9a569e622eca6bb0bcdb8605fd2bb352f25b PkgWebFont-Unhinted-IosevkaFixedSS16-29.0.0-beta.1.zip +6553f7494c814a2b1c8321d2aa62dacc5bf83da4a800f6df4fac0bf5e864e44c PkgWebFont-Unhinted-IosevkaFixedSS17-29.0.0-beta.1.zip +d3c3b61d73d7605fa473aa1ba3dff182eb666815179b0bd7867c888136f4a1c9 PkgWebFont-Unhinted-IosevkaFixedSS18-29.0.0-beta.1.zip +fc5f5f6116183b7b9a9226db25c26eca62b4a38add95422d60902554d331a09b PkgWebFont-Unhinted-IosevkaFixedSlab-29.0.0-beta.1.zip +506c46d9fb74c846e46a7d374ade74a4dfa043abe843a3c0341ec030b01e602b PkgWebFont-Unhinted-IosevkaSS01-29.0.0-beta.1.zip +417466b083831021a4f2a58ea2c0b59da55609bba1476e5b540740d6ffb0f060 PkgWebFont-Unhinted-IosevkaSS02-29.0.0-beta.1.zip +ab0ca8a9c3ac300e2570489fd02c8ed4835d59073f0d99736adae1b6bbe6ef17 PkgWebFont-Unhinted-IosevkaSS03-29.0.0-beta.1.zip +bcea8936537783f06d2af07fff56ca2243ca9ab08e55a6dadc68b89380fe47ab PkgWebFont-Unhinted-IosevkaSS04-29.0.0-beta.1.zip +f80bcf5a67a846032a93c2874931b27047b0323ca62a7f615d9e31fcebed3e51 PkgWebFont-Unhinted-IosevkaSS05-29.0.0-beta.1.zip +6ebe36bbfcec1869ceb605ea584b22bbeb88ae709e7f878e5ab2bfc907024e93 PkgWebFont-Unhinted-IosevkaSS06-29.0.0-beta.1.zip +0fe5b560503f2821cc0b165a93a22a45b1464aac97c74b54d9f955f228ca1b5a PkgWebFont-Unhinted-IosevkaSS07-29.0.0-beta.1.zip +59d6e61fb1cddbd4f2e49b2ba2cb6b54c3bcc4453a6efedddb521332efc74843 PkgWebFont-Unhinted-IosevkaSS08-29.0.0-beta.1.zip +c53fdac6eef1e6dd6f88b6ab296864a96f017ba664fd5308a9708b6b8a091838 PkgWebFont-Unhinted-IosevkaSS09-29.0.0-beta.1.zip +bd86714729d568d1a531064c15a519ac6210efbf0004a4b3a1c9275877eb1302 PkgWebFont-Unhinted-IosevkaSS10-29.0.0-beta.1.zip +5c5d4dd8221f4cefa6260ef3bd7c34b5f3b16b3088ad52e5ca772a6a932d5c49 PkgWebFont-Unhinted-IosevkaSS11-29.0.0-beta.1.zip +994166901e84bedd0912817f3692bd494b9b6006bb899c52a3e7160258e27739 PkgWebFont-Unhinted-IosevkaSS12-29.0.0-beta.1.zip +9945a8bdb0343dde2631decaf1225aaad84178b981e6686de8970bbfaf78aa0e PkgWebFont-Unhinted-IosevkaSS13-29.0.0-beta.1.zip +204c99806f7e4694867acaeb0481d188b9418eab949a874db9878830d6aaa3c9 PkgWebFont-Unhinted-IosevkaSS14-29.0.0-beta.1.zip +f6de40e2f748221da4a70741aadc302a13e061661e8ceee28d5e62332ae0dd2c PkgWebFont-Unhinted-IosevkaSS15-29.0.0-beta.1.zip +000b03af18606ec3392d9e64434d1cbe1786bbe5e6a07e8123ff1e0bc1aa3420 PkgWebFont-Unhinted-IosevkaSS16-29.0.0-beta.1.zip +5fda6f692d0fd6af7bb3a98b34c8a3d1f4922150796b210fbd8237f52ddc36e8 PkgWebFont-Unhinted-IosevkaSS17-29.0.0-beta.1.zip +6448d5538ef2899cb4fd1a069d975d2dfb962b4c11de04f4a57f4789713c8c5d PkgWebFont-Unhinted-IosevkaSS18-29.0.0-beta.1.zip +fedfab7b9485b6fb82718e351ad9079713400714db0f30f82be1324561552c14 PkgWebFont-Unhinted-IosevkaSlab-29.0.0-beta.1.zip +7ef9815354b98810a860769c24c71f029758374c155136e29813302d69bcb823 PkgWebFont-Unhinted-IosevkaTerm-29.0.0-beta.1.zip +bf29729ca8ebe85f68d92a0a5c092f8b8778554bc0a2223c3d22ae6ad1ebd16e PkgWebFont-Unhinted-IosevkaTermCurly-29.0.0-beta.1.zip +f30dc6efd53df4a46a010a8bc6d7742357b4b389b1308df701bef58756fd30b9 PkgWebFont-Unhinted-IosevkaTermCurlySlab-29.0.0-beta.1.zip +05ac30adc7722851fd0a2ce2aca2959935bf7f06bce054e738531989678f6e7d PkgWebFont-Unhinted-IosevkaTermSS01-29.0.0-beta.1.zip +4101e1459b71ba36b86e461089cc4371588f2cb48cc478a85250457581dc1441 PkgWebFont-Unhinted-IosevkaTermSS02-29.0.0-beta.1.zip +e13d453969929d98f53fd55ca44c904e33fb817613976fd16754a5654770d3ea PkgWebFont-Unhinted-IosevkaTermSS03-29.0.0-beta.1.zip +b44713a8f0167e44b3a329b4588beafc9682d69a7eaae73ffc2c0470871ac86e PkgWebFont-Unhinted-IosevkaTermSS04-29.0.0-beta.1.zip +1010e28f4c7b347e0f1636c8035de0b8a70a42530cbce450ab2bf0e9be78ae8f PkgWebFont-Unhinted-IosevkaTermSS05-29.0.0-beta.1.zip +570a870f0a591ed4297e541cddf14cd534381105e383ab2d6c753f02d4db739c PkgWebFont-Unhinted-IosevkaTermSS06-29.0.0-beta.1.zip +87570a9915346cedc11610daf166a0f14d2fbf67841accd9e6bc59de2e60d1df PkgWebFont-Unhinted-IosevkaTermSS07-29.0.0-beta.1.zip +6299720df3ee3bc92ff55be334ce09e2945fdd36915d299a06e7d3fe4c252909 PkgWebFont-Unhinted-IosevkaTermSS08-29.0.0-beta.1.zip +bc58f33931e44361b9f9f6aa874cf8c3c352633c256f8cca26171cca2e923a78 PkgWebFont-Unhinted-IosevkaTermSS09-29.0.0-beta.1.zip +634ff0d7dbaa073d40d57b62725c9311e5c38a7789ac5d8d59039f98b8c5de5e PkgWebFont-Unhinted-IosevkaTermSS10-29.0.0-beta.1.zip +f63173ba67d0f9cd87c19b49e690fbddf922bd03a6369c132353ebe3331268ad PkgWebFont-Unhinted-IosevkaTermSS11-29.0.0-beta.1.zip +44f24a7516eafd4b78c11e7587428af5ca798f3b14c5285af890e37fb1b04f0e PkgWebFont-Unhinted-IosevkaTermSS12-29.0.0-beta.1.zip +3f1ea498d6d342102ab303af809c0010eef1a59bc5ed960328c3f5353c50dc35 PkgWebFont-Unhinted-IosevkaTermSS13-29.0.0-beta.1.zip +7a2095d49a15b632ec0f38426466c65e852f9de6f8031cbb2c1dba9632375b2c PkgWebFont-Unhinted-IosevkaTermSS14-29.0.0-beta.1.zip +59c31e70b38eec77248957f9b3aee2e3664e1f121b97819de9098eabd87db75e PkgWebFont-Unhinted-IosevkaTermSS15-29.0.0-beta.1.zip +ef46eb7c9f690587be07d5f70633086570eb5fe18e43af89c26cb6eaf9321798 PkgWebFont-Unhinted-IosevkaTermSS16-29.0.0-beta.1.zip +570250bf64636cf058d9a3b065fd022bf55469a62fbec39e0343c773a1aa85b7 PkgWebFont-Unhinted-IosevkaTermSS17-29.0.0-beta.1.zip +65081ad7ed6c0a6a235bcca601a0625548c8510df37d04b62715d9d5dfef950d PkgWebFont-Unhinted-IosevkaTermSS18-29.0.0-beta.1.zip +22ab7232447c3d31604df9c595a6251a38affd8cb9e3a49a32810262696b0026 PkgWebFont-Unhinted-IosevkaTermSlab-29.0.0-beta.1.zip +26ce69467c9d7e5b18e7f381401fcf04eac983f6ac2959026e64ce8a6c4ef9e8 SuperTTC-Iosevka-29.0.0-beta.1.zip +85663fe57d609016dc934e8132043c76aba84793079d9ca8b54ee44bdc761908 SuperTTC-IosevkaAile-29.0.0-beta.1.zip +df7429672cabae944e5dcb3ee2fef9a24054e19fa587e6b583b0b2bc53a7d349 SuperTTC-IosevkaCurly-29.0.0-beta.1.zip +5c31700ff1f9b0ac695e818504a4446ae0f1fe377cffd6263507a03046804c13 SuperTTC-IosevkaCurlySlab-29.0.0-beta.1.zip +ad20578be64e2c2d2f299f92af44bd2038919c61bac94b876c09a5857b981fab SuperTTC-IosevkaEtoile-29.0.0-beta.1.zip +2e9231291fba347980bf35f02009eff2c30b7281113907b695d5a7afa0383d2d SuperTTC-IosevkaSS01-29.0.0-beta.1.zip +1e216ca262828c779ce44a59be3d0f921b2393522582a70ad8c88361f4bea265 SuperTTC-IosevkaSS02-29.0.0-beta.1.zip +04ff45a30b7cbd82683a448f74c47496facbbe4aa0816fc919409e762d1b4d68 SuperTTC-IosevkaSS03-29.0.0-beta.1.zip +b358e43b761d7a3af949684c292695ff9c27ededc802ef0bc28bcd2f44563745 SuperTTC-IosevkaSS04-29.0.0-beta.1.zip +5f752ba6f51a01ae513ab6396dc993d32833a8e42c0cf139c528671a6ca6164e SuperTTC-IosevkaSS05-29.0.0-beta.1.zip +8feddde0a0447ff0c17584848f1fd8526513bae5a0cbc29fa69b82390ef94cb9 SuperTTC-IosevkaSS06-29.0.0-beta.1.zip +15cc81e3fad27c96390cd7c51e8b6d7ea5129bc4c45b607d40df9bc983354456 SuperTTC-IosevkaSS07-29.0.0-beta.1.zip +4f68a5bc8edf75f4de9cafac0eb3f74d0d0d98eab19a106701bbe56b51471ee4 SuperTTC-IosevkaSS08-29.0.0-beta.1.zip +cf7592571d9764d8e15d2caab7c790d4505987767af2f4bd16143c7ad07f14e0 SuperTTC-IosevkaSS09-29.0.0-beta.1.zip +ce3d49ec3893f20b9ed905e865831c110e4dc6c6b0b6b72534afe1fb78d31766 SuperTTC-IosevkaSS10-29.0.0-beta.1.zip +6527d775c724aa43b33f5fc19c33f7bdd9f6911e52150cd1f3c7cbfa4652534a SuperTTC-IosevkaSS11-29.0.0-beta.1.zip +fd50f5dda59a035ba5f357dc684bece1112045c09045cb6b4f80438fa594b493 SuperTTC-IosevkaSS12-29.0.0-beta.1.zip +c391e36cbc9f3f77087b6bab8d32236de1ba6b7a21acf6a6be163e35b8697e00 SuperTTC-IosevkaSS13-29.0.0-beta.1.zip +9fcfaf2e2a5dcdbcf40392fe4feb7f2513b63d7e3ec9f564cb96ab77b06c9719 SuperTTC-IosevkaSS14-29.0.0-beta.1.zip +cca7c843cbd791ec6976d9566341859adb4d942190c050320c7f69330cc65df5 SuperTTC-IosevkaSS15-29.0.0-beta.1.zip +c74ef64e857115eb1ffb53dd13bc369986792d48073755d706f9f8e05c323c62 SuperTTC-IosevkaSS16-29.0.0-beta.1.zip +9c94fd9df6d3c3eeb506872f41b26da6155e0116e65c267bac1c39db8df677ac SuperTTC-IosevkaSS17-29.0.0-beta.1.zip +4f98c21034d565ca4eb5f5bb59b936ab6ec2773d08955096dc67968148e7d333 SuperTTC-IosevkaSS18-29.0.0-beta.1.zip +2a25ee213eab5ed5aae85b9b4d353983869df2e42bfa01fef5e10cc0950abfe2 SuperTTC-IosevkaSlab-29.0.0-beta.1.zip +187299f62f523104178f8881176f60d06621676bf9ea4ab76798121ea4ba8d53 SuperTTC-SGr-Iosevka-29.0.0-beta.1.zip +47c10a8ee535ae036343ae4519b29232d5769b3f10c394c19569d37d7928a02f SuperTTC-SGr-IosevkaCurly-29.0.0-beta.1.zip +6662b5a706f1d3d845a8417ea37cfcc90bc2238c6bcf75c9689b015d1fa173ea SuperTTC-SGr-IosevkaCurlySlab-29.0.0-beta.1.zip +6b33e02623c5f9b760ee577485862535edb2071c5aebc828516043b752e1ebaf SuperTTC-SGr-IosevkaFixed-29.0.0-beta.1.zip +19e6d2681c8b2a1da7750255421378337e71d34c76c64f8ee532b434408cac58 SuperTTC-SGr-IosevkaFixedCurly-29.0.0-beta.1.zip +c9069592587b177b68531126dc380b6a97fbeee2ac2fa4c0b18b4ad88231e844 SuperTTC-SGr-IosevkaFixedCurlySlab-29.0.0-beta.1.zip +90c867dc75e0b1835d447edb90d997dec3fa4440ec7f37c339ebcfdb188c8b62 SuperTTC-SGr-IosevkaFixedSS01-29.0.0-beta.1.zip +07e4a7fce789565f3f66ae1e640e7b5dd09747678cb3744b06566e85bdf47a0f SuperTTC-SGr-IosevkaFixedSS02-29.0.0-beta.1.zip +cb321a710c19fa73838af6b52bb19bfc667d84e0be68256147987741998caebb SuperTTC-SGr-IosevkaFixedSS03-29.0.0-beta.1.zip +06961b11ab9620b5baa402e5c7a89b61cc4f9e8ac1637ccb3bf98995928e3f30 SuperTTC-SGr-IosevkaFixedSS04-29.0.0-beta.1.zip +05fd5a14448faf69b4e9f99b5d2041805635a49baeb35ad97450ec61d35c2aad SuperTTC-SGr-IosevkaFixedSS05-29.0.0-beta.1.zip +3a4d7c25fb5221e96a8d011135c133c46277461e93eca059c3c604bc1d6919a4 SuperTTC-SGr-IosevkaFixedSS06-29.0.0-beta.1.zip +2e60996d068e2f6127f1d24de03bdeb6373839ce86e43e195ab669c52c7feb93 SuperTTC-SGr-IosevkaFixedSS07-29.0.0-beta.1.zip +8e9902e922ea4a40c8cbed9cf768c884d08bd4643c0c38fe9e3ba960bb52ff3d SuperTTC-SGr-IosevkaFixedSS08-29.0.0-beta.1.zip +8be477bf71aa99b2ffff1451344151a2a8528892ce63511e80c0f0b5a4775dba SuperTTC-SGr-IosevkaFixedSS09-29.0.0-beta.1.zip +26826464a479c23e59f81c96088735703b28beb7dee72edb21082fbdb6d77f0f SuperTTC-SGr-IosevkaFixedSS10-29.0.0-beta.1.zip +a308a01d251eb0eee0865ac7ce7e8e563a549902aa77307964505074bbdfdeb2 SuperTTC-SGr-IosevkaFixedSS11-29.0.0-beta.1.zip +9be68c72cafa69ac7e7e71ca8c9e7b0ca163557546bde352816f5cd6567a41a0 SuperTTC-SGr-IosevkaFixedSS12-29.0.0-beta.1.zip +1eebf942bdf98347367261c0a08d6eb5357ebc0d732770988f7289ad0a8ad8e9 SuperTTC-SGr-IosevkaFixedSS13-29.0.0-beta.1.zip +21773f3f20bed92011805796e08c5f988f8f1ec6c841a7e91e689f118a96a9aa SuperTTC-SGr-IosevkaFixedSS14-29.0.0-beta.1.zip +b7f50997f0742362bd84dc6128adfae5da81a71d68cc8cb63a8642034ded3832 SuperTTC-SGr-IosevkaFixedSS15-29.0.0-beta.1.zip +a26afbc0ab0e830696144df49aa3ca6b2ce6784eb71aaba1c399822cdd2f792d SuperTTC-SGr-IosevkaFixedSS16-29.0.0-beta.1.zip +1b11ac725b59a539056b936f3e2f02987ea13db17d7ab98a283ba3cf87590edd SuperTTC-SGr-IosevkaFixedSS17-29.0.0-beta.1.zip +115a90c9f33b467ed373b02f5ba646a48cd6970881ae52fd2c13eaa19597996e SuperTTC-SGr-IosevkaFixedSS18-29.0.0-beta.1.zip +9b869f812727c00e1f2d5e819d23392d57da1c0f900f407d3fc558665c000948 SuperTTC-SGr-IosevkaFixedSlab-29.0.0-beta.1.zip +53c04f36b29a2ff122b2c0757aff37ed1d57a53149caf28b65b00f961596efa7 SuperTTC-SGr-IosevkaSS01-29.0.0-beta.1.zip +99fa36273b295b2a20aa12c22b8ad9ba6d95451796579ab66144af9e15de8fa6 SuperTTC-SGr-IosevkaSS02-29.0.0-beta.1.zip +891be2a1f303007512d9646f2fa407eb9c80b1a0e38efcef65d8615d6dd21db3 SuperTTC-SGr-IosevkaSS03-29.0.0-beta.1.zip +5495504d969f99c84d323429eada02b67337b198c5bcbf5c5ec01e6750259b6c SuperTTC-SGr-IosevkaSS04-29.0.0-beta.1.zip +5245d909ae2b0ab060e4e3b64417ca619eba75d59ec4f5439800735c9038ce8a SuperTTC-SGr-IosevkaSS05-29.0.0-beta.1.zip +f49b581d888703e08a602c7b1a0b70be3321086594c4b2b3668be6d0a8f5cc42 SuperTTC-SGr-IosevkaSS06-29.0.0-beta.1.zip +ff39b4dbb43e7e5268c237ffeb30669e4f5d44dd40be70721d3a09a8e399e7b0 SuperTTC-SGr-IosevkaSS07-29.0.0-beta.1.zip +d9eb84f327c5de08d3ab2aa5b70307edb0b57d0567723941dcad3c39ba03a302 SuperTTC-SGr-IosevkaSS08-29.0.0-beta.1.zip +d8402cdce539cdfc2c46c3177ca1c7236433d188b92916b88002e11ea2bc0b90 SuperTTC-SGr-IosevkaSS09-29.0.0-beta.1.zip +dfad23a912f52b50081012f4d3748e06dd780c25ae48099207fbb5bdde5510ef SuperTTC-SGr-IosevkaSS10-29.0.0-beta.1.zip +0798767a203e22ef54008a2f0d407053a8bbb997a9478b97f4ac2220640b597c SuperTTC-SGr-IosevkaSS11-29.0.0-beta.1.zip +d6f1ab46b8ccffc20fda3234e0f899ac0819cafd41b57616ccf6568461cf3029 SuperTTC-SGr-IosevkaSS12-29.0.0-beta.1.zip +184555252e9565fbb0ae5d0b1ff6f163e765dabdb0f7eab50f5fd858b4c03f8f SuperTTC-SGr-IosevkaSS13-29.0.0-beta.1.zip +a568230742d1a813d41f0a22ced3b5b50c4bdf47c529792beff89e1a7f977a28 SuperTTC-SGr-IosevkaSS14-29.0.0-beta.1.zip +e7fa6159a662ba8458afa06e62905b3060fff4fc3fefaa84e51160f6d35a44ae SuperTTC-SGr-IosevkaSS15-29.0.0-beta.1.zip +1a97364850e8d5cc4a99cce781e1be956059599821f5a367993fbd734a0da192 SuperTTC-SGr-IosevkaSS16-29.0.0-beta.1.zip +734707690cdf61a3cd7152a08491fc9d0eb1375036009545d0c80489033fa59e SuperTTC-SGr-IosevkaSS17-29.0.0-beta.1.zip +49009ada252aa565fb2a4ec952179ff45a6a032b5d2e560df68e49e98665229c SuperTTC-SGr-IosevkaSS18-29.0.0-beta.1.zip +ff159b6531cf31020bed10cdc19d4b238d149b81558ce2ecfe19b313b506c15a SuperTTC-SGr-IosevkaSlab-29.0.0-beta.1.zip +285cf2315773958b389d5f6f8333def43535dccc61dd4ad84e46432022f8b858 SuperTTC-SGr-IosevkaTerm-29.0.0-beta.1.zip +a42ec9159b4d97f69f61446c62e48d907d77e610a938c6ba4240ebca3a80bad7 SuperTTC-SGr-IosevkaTermCurly-29.0.0-beta.1.zip +41fe08e73c08169dee0f02d40eec2b64da81b6717f780b40d38ae32f9d2d292f SuperTTC-SGr-IosevkaTermCurlySlab-29.0.0-beta.1.zip +c2fb00b95f3c6ff19952003e0500acbc0472b0b8ad18f46efc0fdbb7d50ff170 SuperTTC-SGr-IosevkaTermSS01-29.0.0-beta.1.zip +dc8176dcaefc8949125681c5c7e7ca67982fedb0093b5cad490180ea39eeb1c1 SuperTTC-SGr-IosevkaTermSS02-29.0.0-beta.1.zip +50c82796347ccfe838fe3572f232e797c00eca65c69b220b0a71795191363133 SuperTTC-SGr-IosevkaTermSS03-29.0.0-beta.1.zip +1f36f25217d6cefd0f671a80f8cdfc0e7a837546a40b87aee5696f1d3a4ca5d1 SuperTTC-SGr-IosevkaTermSS04-29.0.0-beta.1.zip +328e90828f260c3f0d70e937fd9d73921032d52cccf3c7f9e1d82da19b616da0 SuperTTC-SGr-IosevkaTermSS05-29.0.0-beta.1.zip +a303f867aa586070c27435094823e238973343922201160337e0a33ab5c8a104 SuperTTC-SGr-IosevkaTermSS06-29.0.0-beta.1.zip +69f55e9d13e26cdd9dc79ca12d7212ef3603684f15ffa6c6e77b1f67bdb076a6 SuperTTC-SGr-IosevkaTermSS07-29.0.0-beta.1.zip +e72d4faaaf28a0fb4407ca0f2aa494c01514ccd5282b321ed51675015cf805f8 SuperTTC-SGr-IosevkaTermSS08-29.0.0-beta.1.zip +b1e85e4b11cf3565fef03f27b0451156ff9acb4c44ee6477ebb48a4ac5875f3d SuperTTC-SGr-IosevkaTermSS09-29.0.0-beta.1.zip +9374f868265b1b1aa1ee3c9e4b4f58fefcf177f23713b304bcf7639eda9287cd SuperTTC-SGr-IosevkaTermSS10-29.0.0-beta.1.zip +eafc993520b1d4e7bbf13017fbfd837f3a0739be558e2023063d7e071efc8c68 SuperTTC-SGr-IosevkaTermSS11-29.0.0-beta.1.zip +97773eb2be091f17a1d3e4c8767254c995e73a60d221899e94e30f01446f9513 SuperTTC-SGr-IosevkaTermSS12-29.0.0-beta.1.zip +2edf44627a72d1043afcc5e49731a63bf9db4da03ee76d683df2cfa7497e6f59 SuperTTC-SGr-IosevkaTermSS13-29.0.0-beta.1.zip +768f2ff32031f93c825346aee197e2be59a2f02cc0008d6c552dbf99c33fb35d SuperTTC-SGr-IosevkaTermSS14-29.0.0-beta.1.zip +50941d50884201cf428e2caca8d883c2926d540495138e2b53d467b57483a1ca SuperTTC-SGr-IosevkaTermSS15-29.0.0-beta.1.zip +94e02c2e2406acdee622f555e76f799df4d753239c48e706ffa6b7102aaba554 SuperTTC-SGr-IosevkaTermSS16-29.0.0-beta.1.zip +28afdc9037b345254683260afe6028fb3dd3ea691ae306a5fd091f38b6cf068d SuperTTC-SGr-IosevkaTermSS17-29.0.0-beta.1.zip +a9d6b46b4dd6c100aea57fc093a56a4eb9a1ca7b8f8963a3e1a7adf614993728 SuperTTC-SGr-IosevkaTermSS18-29.0.0-beta.1.zip +6b75c401e5ca576a31fdf9fb286b31a30f71401b5ced4fd9ccf55afb72739254 SuperTTC-SGr-IosevkaTermSlab-29.0.0-beta.1.zip diff --git a/images/button-customize.dark.svg b/images/button-customize.dark.svg index 475c5bd700..6467162ec7 100644 --- a/images/button-customize.dark.svg +++ b/images/button-customize.dark.svg @@ -7,7 +7,7 @@ - + diff --git a/images/button-customize.light.svg b/images/button-customize.light.svg index 6de71c1c25..8fbd43dc79 100644 --- a/images/button-customize.light.svg +++ b/images/button-customize.light.svg @@ -7,7 +7,7 @@ - + diff --git a/images/button-release.dark.svg b/images/button-release.dark.svg index a5275bf06b..a6bc7eb109 100644 --- a/images/button-release.dark.svg +++ b/images/button-release.dark.svg @@ -1,5 +1,5 @@ - + @@ -7,13 +7,16 @@ - + - - + + + + + - + @@ -22,13 +25,20 @@ - + - + + + + + + + + \ No newline at end of file diff --git a/images/button-release.light.svg b/images/button-release.light.svg index 699a267bf7..fa0e7c7ff4 100644 --- a/images/button-release.light.svg +++ b/images/button-release.light.svg @@ -1,5 +1,5 @@ - + @@ -7,13 +7,16 @@ - + - - + + + + + - + @@ -22,13 +25,20 @@ - + - + + + + + + + + \ No newline at end of file diff --git a/images/button-specimen.dark.svg b/images/button-specimen.dark.svg index 10b2d376b8..007d4ad382 100644 --- a/images/button-specimen.dark.svg +++ b/images/button-specimen.dark.svg @@ -5,7 +5,7 @@ - + diff --git a/images/button-specimen.light.svg b/images/button-specimen.light.svg index f4302d8231..b530378c43 100644 --- a/images/button-specimen.light.svg +++ b/images/button-specimen.light.svg @@ -5,7 +5,7 @@ - + diff --git a/images/cs-block-arrows.dark.svg b/images/cs-block-arrows.dark.svg index 7505a428dc..2487cb0152 100644 --- a/images/cs-block-arrows.dark.svg +++ b/images/cs-block-arrows.dark.svg @@ -39,10 +39,10 @@ - - - - + + + + @@ -109,22 +109,28 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -717,33 +723,33 @@ - + - - + + - - + + - - + + - - + + - - + + @@ -757,83 +763,83 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + \ No newline at end of file diff --git a/images/cs-block-arrows.light.svg b/images/cs-block-arrows.light.svg index 2c896b694a..9c20571e20 100644 --- a/images/cs-block-arrows.light.svg +++ b/images/cs-block-arrows.light.svg @@ -39,10 +39,10 @@ - - - - + + + + @@ -109,22 +109,28 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -717,33 +723,33 @@ - + - - + + - - + + - - + + - - + + - - + + @@ -757,83 +763,83 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + \ No newline at end of file diff --git a/images/cs-block-basic-latin.dark.svg b/images/cs-block-basic-latin.dark.svg index 25a9a72572..b6109b0ef9 100644 --- a/images/cs-block-basic-latin.dark.svg +++ b/images/cs-block-basic-latin.dark.svg @@ -91,8 +91,8 @@ - - + + diff --git a/images/cs-block-basic-latin.light.svg b/images/cs-block-basic-latin.light.svg index 7d221dbbfb..a81ed1c6f1 100644 --- a/images/cs-block-basic-latin.light.svg +++ b/images/cs-block-basic-latin.light.svg @@ -91,8 +91,8 @@ - - + + diff --git a/images/cs-block-box-drawing.dark.svg b/images/cs-block-box-drawing.dark.svg index 49762b9e2b..398fe23dc6 100644 --- a/images/cs-block-box-drawing.dark.svg +++ b/images/cs-block-box-drawing.dark.svg @@ -21,132 +21,132 @@ - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + diff --git a/images/cs-block-box-drawing.light.svg b/images/cs-block-box-drawing.light.svg index 57691f2c60..16a60f570a 100644 --- a/images/cs-block-box-drawing.light.svg +++ b/images/cs-block-box-drawing.light.svg @@ -21,132 +21,132 @@ - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + diff --git a/images/cs-block-combining-diacritical-marks-supplement.dark.svg b/images/cs-block-combining-diacritical-marks-supplement.dark.svg index fc0a927348..cd35353a8d 100644 --- a/images/cs-block-combining-diacritical-marks-supplement.dark.svg +++ b/images/cs-block-combining-diacritical-marks-supplement.dark.svg @@ -72,7 +72,7 @@ - + diff --git a/images/cs-block-combining-diacritical-marks-supplement.light.svg b/images/cs-block-combining-diacritical-marks-supplement.light.svg index b559c4c5cd..4e081c9927 100644 --- a/images/cs-block-combining-diacritical-marks-supplement.light.svg +++ b/images/cs-block-combining-diacritical-marks-supplement.light.svg @@ -72,7 +72,7 @@ - + diff --git a/images/cs-block-combining-diacritical-marks.dark.svg b/images/cs-block-combining-diacritical-marks.dark.svg index 4e83c0e07b..f21d91f675 100644 --- a/images/cs-block-combining-diacritical-marks.dark.svg +++ b/images/cs-block-combining-diacritical-marks.dark.svg @@ -95,13 +95,13 @@ - + - + @@ -115,7 +115,7 @@ - + diff --git a/images/cs-block-combining-diacritical-marks.light.svg b/images/cs-block-combining-diacritical-marks.light.svg index 74d9bf9ece..692d5778ca 100644 --- a/images/cs-block-combining-diacritical-marks.light.svg +++ b/images/cs-block-combining-diacritical-marks.light.svg @@ -95,13 +95,13 @@ - + - + @@ -115,7 +115,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-b.dark.svg b/images/cs-block-cyrillic-extended-b.dark.svg index 3bbcc75dba..a7d9b80746 100644 --- a/images/cs-block-cyrillic-extended-b.dark.svg +++ b/images/cs-block-cyrillic-extended-b.dark.svg @@ -70,7 +70,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-b.light.svg b/images/cs-block-cyrillic-extended-b.light.svg index 529cc06305..e5b68d9ece 100644 --- a/images/cs-block-cyrillic-extended-b.light.svg +++ b/images/cs-block-cyrillic-extended-b.light.svg @@ -70,7 +70,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-d.dark.svg b/images/cs-block-cyrillic-extended-d.dark.svg index 747f0e74b3..2d6bc620e6 100644 --- a/images/cs-block-cyrillic-extended-d.dark.svg +++ b/images/cs-block-cyrillic-extended-d.dark.svg @@ -47,8 +47,8 @@ - - + + @@ -75,7 +75,7 @@ - + @@ -83,7 +83,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-d.light.svg b/images/cs-block-cyrillic-extended-d.light.svg index 10dd6c6388..6ec317aa08 100644 --- a/images/cs-block-cyrillic-extended-d.light.svg +++ b/images/cs-block-cyrillic-extended-d.light.svg @@ -47,8 +47,8 @@ - - + + @@ -75,7 +75,7 @@ - + @@ -83,7 +83,7 @@ - + diff --git a/images/cs-block-cyrillic.dark.svg b/images/cs-block-cyrillic.dark.svg index 00965f53fb..2bc36f814a 100644 --- a/images/cs-block-cyrillic.dark.svg +++ b/images/cs-block-cyrillic.dark.svg @@ -105,9 +105,9 @@ - - - + + + diff --git a/images/cs-block-cyrillic.light.svg b/images/cs-block-cyrillic.light.svg index cd9fe1d094..58f89bb63c 100644 --- a/images/cs-block-cyrillic.light.svg +++ b/images/cs-block-cyrillic.light.svg @@ -105,9 +105,9 @@ - - - + + + diff --git a/images/cs-block-enclosed-alphanumerics.dark.svg b/images/cs-block-enclosed-alphanumerics.dark.svg index c74ad5f69d..df6e171ddb 100644 --- a/images/cs-block-enclosed-alphanumerics.dark.svg +++ b/images/cs-block-enclosed-alphanumerics.dark.svg @@ -87,8 +87,8 @@ - - + + @@ -139,8 +139,8 @@ - - + + diff --git a/images/cs-block-enclosed-alphanumerics.light.svg b/images/cs-block-enclosed-alphanumerics.light.svg index e9aba60576..628c61c593 100644 --- a/images/cs-block-enclosed-alphanumerics.light.svg +++ b/images/cs-block-enclosed-alphanumerics.light.svg @@ -87,8 +87,8 @@ - - + + @@ -139,8 +139,8 @@ - - + + diff --git a/images/cs-block-geometric-shapes.dark.svg b/images/cs-block-geometric-shapes.dark.svg index 3d8e415fcd..0f02bbad1d 100644 --- a/images/cs-block-geometric-shapes.dark.svg +++ b/images/cs-block-geometric-shapes.dark.svg @@ -76,7 +76,7 @@ - + diff --git a/images/cs-block-geometric-shapes.light.svg b/images/cs-block-geometric-shapes.light.svg index ff982dc82e..5724afe5f4 100644 --- a/images/cs-block-geometric-shapes.light.svg +++ b/images/cs-block-geometric-shapes.light.svg @@ -76,7 +76,7 @@ - + diff --git a/images/cs-block-greek-and-coptic.dark.svg b/images/cs-block-greek-and-coptic.dark.svg index 3347a71361..b683fa18e6 100644 --- a/images/cs-block-greek-and-coptic.dark.svg +++ b/images/cs-block-greek-and-coptic.dark.svg @@ -128,7 +128,7 @@ - + diff --git a/images/cs-block-greek-and-coptic.light.svg b/images/cs-block-greek-and-coptic.light.svg index 4cd2e55cbf..584d5296d1 100644 --- a/images/cs-block-greek-and-coptic.light.svg +++ b/images/cs-block-greek-and-coptic.light.svg @@ -128,7 +128,7 @@ - + diff --git a/images/cs-block-greek-extended.dark.svg b/images/cs-block-greek-extended.dark.svg index 083c7d9e27..cf3b27b322 100644 --- a/images/cs-block-greek-extended.dark.svg +++ b/images/cs-block-greek-extended.dark.svg @@ -66,12 +66,12 @@ - - - - - - + + + + + + diff --git a/images/cs-block-greek-extended.light.svg b/images/cs-block-greek-extended.light.svg index aa65dc0779..46a6805ec6 100644 --- a/images/cs-block-greek-extended.light.svg +++ b/images/cs-block-greek-extended.light.svg @@ -66,12 +66,12 @@ - - - - - - + + + + + + diff --git a/images/cs-block-ipa-extensions.dark.svg b/images/cs-block-ipa-extensions.dark.svg index e746d48a04..4b4f9e46fa 100644 --- a/images/cs-block-ipa-extensions.dark.svg +++ b/images/cs-block-ipa-extensions.dark.svg @@ -43,7 +43,7 @@ - + diff --git a/images/cs-block-ipa-extensions.light.svg b/images/cs-block-ipa-extensions.light.svg index 6020b4ae83..27e913fd9c 100644 --- a/images/cs-block-ipa-extensions.light.svg +++ b/images/cs-block-ipa-extensions.light.svg @@ -43,7 +43,7 @@ - + diff --git a/images/cs-block-latin-1-supplement.dark.svg b/images/cs-block-latin-1-supplement.dark.svg index 50334cbd47..0bc7b625d8 100644 --- a/images/cs-block-latin-1-supplement.dark.svg +++ b/images/cs-block-latin-1-supplement.dark.svg @@ -93,10 +93,10 @@ - - - - + + + + diff --git a/images/cs-block-latin-1-supplement.light.svg b/images/cs-block-latin-1-supplement.light.svg index 5c84b8b7f2..e00e8418ea 100644 --- a/images/cs-block-latin-1-supplement.light.svg +++ b/images/cs-block-latin-1-supplement.light.svg @@ -93,10 +93,10 @@ - - - - + + + + diff --git a/images/cs-block-latin-extended-a.dark.svg b/images/cs-block-latin-extended-a.dark.svg index 6c08add2fd..8aba9dcf4b 100644 --- a/images/cs-block-latin-extended-a.dark.svg +++ b/images/cs-block-latin-extended-a.dark.svg @@ -60,24 +60,24 @@ - + - + - + - + - + - + - + diff --git a/images/cs-block-latin-extended-a.light.svg b/images/cs-block-latin-extended-a.light.svg index 2f692f3c0b..e69668766b 100644 --- a/images/cs-block-latin-extended-a.light.svg +++ b/images/cs-block-latin-extended-a.light.svg @@ -60,24 +60,24 @@ - + - + - + - + - + - + - + diff --git a/images/cs-block-latin-extended-additional.dark.svg b/images/cs-block-latin-extended-additional.dark.svg index 6a2fccda1c..e135bef8a7 100644 --- a/images/cs-block-latin-extended-additional.dark.svg +++ b/images/cs-block-latin-extended-additional.dark.svg @@ -64,9 +64,9 @@ - + - + @@ -76,9 +76,9 @@ - + - + @@ -220,9 +220,9 @@ - + - + diff --git a/images/cs-block-latin-extended-additional.light.svg b/images/cs-block-latin-extended-additional.light.svg index 267e8663eb..ca1627c291 100644 --- a/images/cs-block-latin-extended-additional.light.svg +++ b/images/cs-block-latin-extended-additional.light.svg @@ -64,9 +64,9 @@ - + - + @@ -76,9 +76,9 @@ - + - + @@ -220,9 +220,9 @@ - + - + diff --git a/images/cs-block-latin-extended-b.dark.svg b/images/cs-block-latin-extended-b.dark.svg index a7e265146f..dadd52f847 100644 --- a/images/cs-block-latin-extended-b.dark.svg +++ b/images/cs-block-latin-extended-b.dark.svg @@ -91,15 +91,15 @@ - - + + - - + + - + @@ -131,7 +131,7 @@ - + @@ -156,9 +156,9 @@ - + - + @@ -220,7 +220,7 @@ - + diff --git a/images/cs-block-latin-extended-b.light.svg b/images/cs-block-latin-extended-b.light.svg index 6a42f08998..05c465c945 100644 --- a/images/cs-block-latin-extended-b.light.svg +++ b/images/cs-block-latin-extended-b.light.svg @@ -91,15 +91,15 @@ - - + + - - + + - + @@ -131,7 +131,7 @@ - + @@ -156,9 +156,9 @@ - + - + @@ -220,7 +220,7 @@ - + diff --git a/images/cs-block-latin-extended-c.dark.svg b/images/cs-block-latin-extended-c.dark.svg index 1c28487a24..3e307405fb 100644 --- a/images/cs-block-latin-extended-c.dark.svg +++ b/images/cs-block-latin-extended-c.dark.svg @@ -47,7 +47,7 @@ - + diff --git a/images/cs-block-latin-extended-c.light.svg b/images/cs-block-latin-extended-c.light.svg index aa1a33aba9..f7f6969de4 100644 --- a/images/cs-block-latin-extended-c.light.svg +++ b/images/cs-block-latin-extended-c.light.svg @@ -47,7 +47,7 @@ - + diff --git a/images/cs-block-latin-extended-d.dark.svg b/images/cs-block-latin-extended-d.dark.svg index 9f349a0d95..41d31e45f3 100644 --- a/images/cs-block-latin-extended-d.dark.svg +++ b/images/cs-block-latin-extended-d.dark.svg @@ -73,7 +73,7 @@ - + @@ -122,7 +122,7 @@ - + diff --git a/images/cs-block-latin-extended-d.light.svg b/images/cs-block-latin-extended-d.light.svg index 5ad4b4bc66..9a19a85f98 100644 --- a/images/cs-block-latin-extended-d.light.svg +++ b/images/cs-block-latin-extended-d.light.svg @@ -73,7 +73,7 @@ - + @@ -122,7 +122,7 @@ - + diff --git a/images/cs-block-mathematical-alphanumeric-symbols.dark.svg b/images/cs-block-mathematical-alphanumeric-symbols.dark.svg index 463881ad0e..fef67ae6a4 100644 --- a/images/cs-block-mathematical-alphanumeric-symbols.dark.svg +++ b/images/cs-block-mathematical-alphanumeric-symbols.dark.svg @@ -53,8 +53,8 @@ - - + + @@ -105,8 +105,8 @@ - - + + @@ -157,8 +157,8 @@ - - + + @@ -278,18 +278,18 @@ - + - + - - + + diff --git a/images/cs-block-mathematical-alphanumeric-symbols.light.svg b/images/cs-block-mathematical-alphanumeric-symbols.light.svg index 533c958396..9aee2da6fa 100644 --- a/images/cs-block-mathematical-alphanumeric-symbols.light.svg +++ b/images/cs-block-mathematical-alphanumeric-symbols.light.svg @@ -53,8 +53,8 @@ - - + + @@ -105,8 +105,8 @@ - - + + @@ -157,8 +157,8 @@ - - + + @@ -278,18 +278,18 @@ - + - + - - + + diff --git a/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg b/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg index e3752f8341..4081716815 100644 --- a/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg +++ b/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg @@ -116,34 +116,35 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1266,8 +1267,8 @@ - - + + @@ -1277,17 +1278,17 @@ - + - + - + @@ -1317,47 +1318,47 @@ - + - + - + - + - + - + - + - + - + @@ -1367,32 +1368,32 @@ - + - + - + - + - + - + @@ -1417,7 +1418,7 @@ - + @@ -1537,42 +1538,42 @@ - + - + - + - + - + - + - + - + @@ -1657,7 +1658,7 @@ - + diff --git a/images/cs-block-miscellaneous-symbols-and-arrows.light.svg b/images/cs-block-miscellaneous-symbols-and-arrows.light.svg index a033f42ac0..d555213276 100644 --- a/images/cs-block-miscellaneous-symbols-and-arrows.light.svg +++ b/images/cs-block-miscellaneous-symbols-and-arrows.light.svg @@ -116,34 +116,35 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1266,8 +1267,8 @@ - - + + @@ -1277,17 +1278,17 @@ - + - + - + @@ -1317,47 +1318,47 @@ - + - + - + - + - + - + - + - + - + @@ -1367,32 +1368,32 @@ - + - + - + - + - + - + @@ -1417,7 +1418,7 @@ - + @@ -1537,42 +1538,42 @@ - + - + - + - + - + - + - + - + @@ -1657,7 +1658,7 @@ - + diff --git a/images/cs-block-miscellaneous-symbols-and-pictographs.dark.svg b/images/cs-block-miscellaneous-symbols-and-pictographs.dark.svg index f07fcb7526..8a5b491d41 100644 --- a/images/cs-block-miscellaneous-symbols-and-pictographs.dark.svg +++ b/images/cs-block-miscellaneous-symbols-and-pictographs.dark.svg @@ -1,5 +1,5 @@ - + @@ -54,6 +54,7 @@ + @@ -3593,4 +3594,550 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/cs-block-miscellaneous-symbols-and-pictographs.light.svg b/images/cs-block-miscellaneous-symbols-and-pictographs.light.svg index e34182a658..6c5a663a9e 100644 --- a/images/cs-block-miscellaneous-symbols-and-pictographs.light.svg +++ b/images/cs-block-miscellaneous-symbols-and-pictographs.light.svg @@ -1,5 +1,5 @@ - + @@ -54,6 +54,7 @@ + @@ -3593,4 +3594,550 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/cs-block-miscellaneous-technical.dark.svg b/images/cs-block-miscellaneous-technical.dark.svg index c8c610e895..a6c7763531 100644 --- a/images/cs-block-miscellaneous-technical.dark.svg +++ b/images/cs-block-miscellaneous-technical.dark.svg @@ -149,26 +149,27 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + @@ -1411,13 +1412,13 @@ - - + + - + @@ -1562,42 +1563,42 @@ - + - + - + - + - + - + - + - + @@ -1632,57 +1633,57 @@ - + - + - + - + - + - + - + - + - + - + - + diff --git a/images/cs-block-miscellaneous-technical.light.svg b/images/cs-block-miscellaneous-technical.light.svg index 4f785661a1..b2a85b2393 100644 --- a/images/cs-block-miscellaneous-technical.light.svg +++ b/images/cs-block-miscellaneous-technical.light.svg @@ -149,26 +149,27 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + @@ -1411,13 +1412,13 @@ - - + + - + @@ -1562,42 +1563,42 @@ - + - + - + - + - + - + - + - + @@ -1632,57 +1633,57 @@ - + - + - + - + - + - + - + - + - + - + - + diff --git a/images/cs-block-number-forms.dark.svg b/images/cs-block-number-forms.dark.svg index 47016076e3..9926fd7032 100644 --- a/images/cs-block-number-forms.dark.svg +++ b/images/cs-block-number-forms.dark.svg @@ -51,18 +51,18 @@ - - - - + + + + - - - - + + + + - - + + diff --git a/images/cs-block-number-forms.light.svg b/images/cs-block-number-forms.light.svg index c0a10efa2b..9b75d5ddad 100644 --- a/images/cs-block-number-forms.light.svg +++ b/images/cs-block-number-forms.light.svg @@ -51,18 +51,18 @@ - - - - + + + + - - - - + + + + - - + + diff --git a/images/cs-block-phonetic-extensions-supplement.dark.svg b/images/cs-block-phonetic-extensions-supplement.dark.svg index f8a66df329..2ce2de3256 100644 --- a/images/cs-block-phonetic-extensions-supplement.dark.svg +++ b/images/cs-block-phonetic-extensions-supplement.dark.svg @@ -41,7 +41,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/images/cs-block-phonetic-extensions-supplement.light.svg b/images/cs-block-phonetic-extensions-supplement.light.svg index 6b677beceb..8205170664 100644 --- a/images/cs-block-phonetic-extensions-supplement.light.svg +++ b/images/cs-block-phonetic-extensions-supplement.light.svg @@ -41,7 +41,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/images/cs-block-phonetic-extensions.dark.svg b/images/cs-block-phonetic-extensions.dark.svg index ff97d5e7ff..9458318b21 100644 --- a/images/cs-block-phonetic-extensions.dark.svg +++ b/images/cs-block-phonetic-extensions.dark.svg @@ -28,7 +28,7 @@ - + @@ -63,7 +63,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -116,7 +116,7 @@ - + diff --git a/images/cs-block-phonetic-extensions.light.svg b/images/cs-block-phonetic-extensions.light.svg index 25b919a083..746f03c3d2 100644 --- a/images/cs-block-phonetic-extensions.light.svg +++ b/images/cs-block-phonetic-extensions.light.svg @@ -28,7 +28,7 @@ - + @@ -63,7 +63,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -116,7 +116,7 @@ - + diff --git a/images/cs-block-spacing-modifier-letters.dark.svg b/images/cs-block-spacing-modifier-letters.dark.svg index 610d3700a3..67fe29d5bd 100644 --- a/images/cs-block-spacing-modifier-letters.dark.svg +++ b/images/cs-block-spacing-modifier-letters.dark.svg @@ -21,7 +21,7 @@ - + @@ -37,9 +37,9 @@ - + - + @@ -53,12 +53,12 @@ - - + + - - - + + + diff --git a/images/cs-block-spacing-modifier-letters.light.svg b/images/cs-block-spacing-modifier-letters.light.svg index 6dc669b988..31d41d5e6d 100644 --- a/images/cs-block-spacing-modifier-letters.light.svg +++ b/images/cs-block-spacing-modifier-letters.light.svg @@ -21,7 +21,7 @@ - + @@ -37,9 +37,9 @@ - + - + @@ -53,12 +53,12 @@ - - + + - - - + + + diff --git a/images/cs-block-superscripts-and-subscripts.dark.svg b/images/cs-block-superscripts-and-subscripts.dark.svg index bea76bccd3..7b0cc96e22 100644 --- a/images/cs-block-superscripts-and-subscripts.dark.svg +++ b/images/cs-block-superscripts-and-subscripts.dark.svg @@ -20,7 +20,7 @@ - + diff --git a/images/cs-block-superscripts-and-subscripts.light.svg b/images/cs-block-superscripts-and-subscripts.light.svg index 99b12ddc5b..4d56eea0f8 100644 --- a/images/cs-block-superscripts-and-subscripts.light.svg +++ b/images/cs-block-superscripts-and-subscripts.light.svg @@ -20,7 +20,7 @@ - + diff --git a/images/cs-block-supplemental-arrows-c.dark.svg b/images/cs-block-supplemental-arrows-c.dark.svg index 7238870cd8..3c154a3dd6 100644 --- a/images/cs-block-supplemental-arrows-c.dark.svg +++ b/images/cs-block-supplemental-arrows-c.dark.svg @@ -72,6 +72,15 @@ + + + + + + + + + @@ -1181,48 +1190,48 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + diff --git a/images/cs-block-supplemental-arrows-c.light.svg b/images/cs-block-supplemental-arrows-c.light.svg index cf18931fcf..f353652c36 100644 --- a/images/cs-block-supplemental-arrows-c.light.svg +++ b/images/cs-block-supplemental-arrows-c.light.svg @@ -72,6 +72,15 @@ + + + + + + + + + @@ -1181,48 +1190,48 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + diff --git a/images/cs-block-symbols-for-legacy-computing-supplement-purposed.dark.svg b/images/cs-block-symbols-for-legacy-computing-supplement-purposed.dark.svg index bfc5430f04..aaf0155c04 100644 --- a/images/cs-block-symbols-for-legacy-computing-supplement-purposed.dark.svg +++ b/images/cs-block-symbols-for-legacy-computing-supplement-purposed.dark.svg @@ -1,5 +1,5 @@ - + @@ -20,340 +20,464 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -436,13 +560,13 @@ - + - + @@ -472,2242 +596,3880 @@ - - - - - - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + \ No newline at end of file diff --git a/images/cs-block-symbols-for-legacy-computing-supplement-purposed.light.svg b/images/cs-block-symbols-for-legacy-computing-supplement-purposed.light.svg index 2855b5bcce..5cbc7f9167 100644 --- a/images/cs-block-symbols-for-legacy-computing-supplement-purposed.light.svg +++ b/images/cs-block-symbols-for-legacy-computing-supplement-purposed.light.svg @@ -1,5 +1,5 @@ - + @@ -20,340 +20,464 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -436,13 +560,13 @@ - + - + @@ -472,2242 +596,3880 @@ - - - - - - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + \ No newline at end of file diff --git a/images/cs-block-symbols-for-legacy-computing.dark.svg b/images/cs-block-symbols-for-legacy-computing.dark.svg index 341732fa74..0235ec33e3 100644 --- a/images/cs-block-symbols-for-legacy-computing.dark.svg +++ b/images/cs-block-symbols-for-legacy-computing.dark.svg @@ -168,70 +168,89 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1169,58 +1188,52 @@ - - - + - - - + - - - + - + - + - + - + - + - + - + - + @@ -1236,82 +1249,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1327,82 +1340,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + @@ -1418,57 +1431,57 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -1487,13 +1500,13 @@ - - + + - - + + @@ -1508,83 +1521,83 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -1619,23 +1632,23 @@ - - + + - - + + - - + + - - + + @@ -1691,52 +1704,52 @@ - + - + - + - + - + - + - + - + - + - + diff --git a/images/cs-block-symbols-for-legacy-computing.light.svg b/images/cs-block-symbols-for-legacy-computing.light.svg index fdb9b274f8..c7f2db1227 100644 --- a/images/cs-block-symbols-for-legacy-computing.light.svg +++ b/images/cs-block-symbols-for-legacy-computing.light.svg @@ -168,70 +168,89 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1169,58 +1188,52 @@ - - - + - - - + - - - + - + - + - + - + - + - + - + - + @@ -1236,82 +1249,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1327,82 +1340,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + @@ -1418,57 +1431,57 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -1487,13 +1500,13 @@ - - + + - - + + @@ -1508,83 +1521,83 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -1619,23 +1632,23 @@ - - + + - - + + - - + + - - + + @@ -1691,52 +1704,52 @@ - + - + - + - + - + - + - + - + - + - + diff --git a/images/cv-capital-z-cursive-with-crossbar.dark.svg b/images/cv-capital-z-cursive-with-crossbar.dark.svg index a91e54c526..46c82514b6 100644 --- a/images/cv-capital-z-cursive-with-crossbar.dark.svg +++ b/images/cv-capital-z-cursive-with-crossbar.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-capital-z-cursive-with-crossbar.light.svg b/images/cv-capital-z-cursive-with-crossbar.light.svg index 2ded630a1f..b7cdd5a22a 100644 --- a/images/cv-capital-z-cursive-with-crossbar.light.svg +++ b/images/cv-capital-z-cursive-with-crossbar.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-capital-z-cursive-with-horizontal-crossbar.dark.svg b/images/cv-capital-z-cursive-with-horizontal-crossbar.dark.svg index 4bb35b5a04..aecf72aa66 100644 --- a/images/cv-capital-z-cursive-with-horizontal-crossbar.dark.svg +++ b/images/cv-capital-z-cursive-with-horizontal-crossbar.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-capital-z-cursive-with-horizontal-crossbar.light.svg b/images/cv-capital-z-cursive-with-horizontal-crossbar.light.svg index 64206bc01c..30b116342a 100644 --- a/images/cv-capital-z-cursive-with-horizontal-crossbar.light.svg +++ b/images/cv-capital-z-cursive-with-horizontal-crossbar.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-capital-z-cursive.dark.svg b/images/cv-capital-z-cursive.dark.svg index 2f10f95dc6..91b8f9fea2 100644 --- a/images/cv-capital-z-cursive.dark.svg +++ b/images/cv-capital-z-cursive.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-capital-z-cursive.light.svg b/images/cv-capital-z-cursive.light.svg index f65c141e3c..0a33e19f19 100644 --- a/images/cv-capital-z-cursive.light.svg +++ b/images/cv-capital-z-cursive.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-diacritic-dot-round.dark.svg b/images/cv-diacritic-dot-round.dark.svg index 3205b41fa0..5e9a33543a 100644 --- a/images/cv-diacritic-dot-round.dark.svg +++ b/images/cv-diacritic-dot-round.dark.svg @@ -1,8 +1,8 @@ - - + + diff --git a/images/cv-diacritic-dot-round.light.svg b/images/cv-diacritic-dot-round.light.svg index fa74afa15d..284a4fdb10 100644 --- a/images/cv-diacritic-dot-round.light.svg +++ b/images/cv-diacritic-dot-round.light.svg @@ -1,8 +1,8 @@ - - + + diff --git a/images/cv-diacritic-dot-square.dark.svg b/images/cv-diacritic-dot-square.dark.svg index ed11754928..b5831a9d3a 100644 --- a/images/cv-diacritic-dot-square.dark.svg +++ b/images/cv-diacritic-dot-square.dark.svg @@ -1,8 +1,8 @@ - - + + diff --git a/images/cv-diacritic-dot-square.light.svg b/images/cv-diacritic-dot-square.light.svg index cab48683c6..540b023828 100644 --- a/images/cv-diacritic-dot-square.light.svg +++ b/images/cv-diacritic-dot-square.light.svg @@ -1,8 +1,8 @@ - - + + diff --git a/images/cv-five-oblique-arched-serifed.dark.svg b/images/cv-five-oblique-arched-serifed.dark.svg new file mode 100644 index 0000000000..820bbcc8db --- /dev/null +++ b/images/cv-five-oblique-arched-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-five-oblique-arched-serifed.light.svg b/images/cv-five-oblique-arched-serifed.light.svg new file mode 100644 index 0000000000..93c008a53f --- /dev/null +++ b/images/cv-five-oblique-arched-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-five-oblique-arched-serifless.dark.svg b/images/cv-five-oblique-arched-serifless.dark.svg new file mode 100644 index 0000000000..637bd409f9 --- /dev/null +++ b/images/cv-five-oblique-arched-serifless.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-five-oblique-arched-serifless.light.svg b/images/cv-five-oblique-arched-serifless.light.svg new file mode 100644 index 0000000000..238fe9f3e1 --- /dev/null +++ b/images/cv-five-oblique-arched-serifless.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-five-oblique-flat-serifed.dark.svg b/images/cv-five-oblique-flat-serifed.dark.svg new file mode 100644 index 0000000000..f376451c9f --- /dev/null +++ b/images/cv-five-oblique-flat-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-five-oblique-flat-serifed.light.svg b/images/cv-five-oblique-flat-serifed.light.svg new file mode 100644 index 0000000000..17e3dd52be --- /dev/null +++ b/images/cv-five-oblique-flat-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-five-oblique-flat-serifless.dark.svg b/images/cv-five-oblique-flat-serifless.dark.svg new file mode 100644 index 0000000000..955f597082 --- /dev/null +++ b/images/cv-five-oblique-flat-serifless.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-five-oblique-flat-serifless.light.svg b/images/cv-five-oblique-flat-serifless.light.svg new file mode 100644 index 0000000000..3f35882c51 --- /dev/null +++ b/images/cv-five-oblique-flat-serifless.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-five-upright-arched-serifed.dark.svg b/images/cv-five-upright-arched-serifed.dark.svg new file mode 100644 index 0000000000..3007e23ecb --- /dev/null +++ b/images/cv-five-upright-arched-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-five-upright-arched-serifed.light.svg b/images/cv-five-upright-arched-serifed.light.svg new file mode 100644 index 0000000000..13aa48716a --- /dev/null +++ b/images/cv-five-upright-arched-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-five-upright-arched-serifless.dark.svg b/images/cv-five-upright-arched-serifless.dark.svg new file mode 100644 index 0000000000..834b105a5f --- /dev/null +++ b/images/cv-five-upright-arched-serifless.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-five-upright-arched-serifless.light.svg b/images/cv-five-upright-arched-serifless.light.svg new file mode 100644 index 0000000000..1bcd93bb4d --- /dev/null +++ b/images/cv-five-upright-arched-serifless.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-five-upright-flat-serifed.dark.svg b/images/cv-five-upright-flat-serifed.dark.svg new file mode 100644 index 0000000000..aaa17c31ef --- /dev/null +++ b/images/cv-five-upright-flat-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-five-upright-flat-serifed.light.svg b/images/cv-five-upright-flat-serifed.light.svg new file mode 100644 index 0000000000..336214088f --- /dev/null +++ b/images/cv-five-upright-flat-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-five-upright-flat-serifless.dark.svg b/images/cv-five-upright-flat-serifless.dark.svg new file mode 100644 index 0000000000..4f1fca6e49 --- /dev/null +++ b/images/cv-five-upright-flat-serifless.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-five-upright-flat-serifless.light.svg b/images/cv-five-upright-flat-serifless.light.svg new file mode 100644 index 0000000000..5ee4b06048 --- /dev/null +++ b/images/cv-five-upright-flat-serifless.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-closed-non-crossing-serifed.dark.svg b/images/cv-four-closed-non-crossing-serifed.dark.svg new file mode 100644 index 0000000000..db116d919d --- /dev/null +++ b/images/cv-four-closed-non-crossing-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-closed-non-crossing-serifed.light.svg b/images/cv-four-closed-non-crossing-serifed.light.svg new file mode 100644 index 0000000000..a1f0202a4d --- /dev/null +++ b/images/cv-four-closed-non-crossing-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-closed-non-crossing-serifless.dark.svg b/images/cv-four-closed-non-crossing-serifless.dark.svg new file mode 100644 index 0000000000..76923acc52 --- /dev/null +++ b/images/cv-four-closed-non-crossing-serifless.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-closed-non-crossing-serifless.light.svg b/images/cv-four-closed-non-crossing-serifless.light.svg new file mode 100644 index 0000000000..bcfa40c0ed --- /dev/null +++ b/images/cv-four-closed-non-crossing-serifless.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-closed-serifed.dark.svg b/images/cv-four-closed-serifed.dark.svg new file mode 100644 index 0000000000..5eceb3db1d --- /dev/null +++ b/images/cv-four-closed-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-closed-serifed.light.svg b/images/cv-four-closed-serifed.light.svg new file mode 100644 index 0000000000..4bdb8dfd5e --- /dev/null +++ b/images/cv-four-closed-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-closed-serifless.dark.svg b/images/cv-four-closed-serifless.dark.svg new file mode 100644 index 0000000000..1aba0f4b45 --- /dev/null +++ b/images/cv-four-closed-serifless.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-closed-serifless.light.svg b/images/cv-four-closed-serifless.light.svg new file mode 100644 index 0000000000..5efa92be11 --- /dev/null +++ b/images/cv-four-closed-serifless.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-open-non-crossing-serifed.dark.svg b/images/cv-four-open-non-crossing-serifed.dark.svg new file mode 100644 index 0000000000..c59840116f --- /dev/null +++ b/images/cv-four-open-non-crossing-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-open-non-crossing-serifed.light.svg b/images/cv-four-open-non-crossing-serifed.light.svg new file mode 100644 index 0000000000..93ad88321d --- /dev/null +++ b/images/cv-four-open-non-crossing-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-open-non-crossing-serifless.dark.svg b/images/cv-four-open-non-crossing-serifless.dark.svg new file mode 100644 index 0000000000..7217fe8f0c --- /dev/null +++ b/images/cv-four-open-non-crossing-serifless.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-open-non-crossing-serifless.light.svg b/images/cv-four-open-non-crossing-serifless.light.svg new file mode 100644 index 0000000000..84e3bf69ef --- /dev/null +++ b/images/cv-four-open-non-crossing-serifless.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-open-serifed.dark.svg b/images/cv-four-open-serifed.dark.svg new file mode 100644 index 0000000000..4d83f4dce8 --- /dev/null +++ b/images/cv-four-open-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-open-serifed.light.svg b/images/cv-four-open-serifed.light.svg new file mode 100644 index 0000000000..818fddcfd9 --- /dev/null +++ b/images/cv-four-open-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-open-serifless.dark.svg b/images/cv-four-open-serifless.dark.svg new file mode 100644 index 0000000000..29e834a2c9 --- /dev/null +++ b/images/cv-four-open-serifless.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-open-serifless.light.svg b/images/cv-four-open-serifless.light.svg new file mode 100644 index 0000000000..d26dd2d89f --- /dev/null +++ b/images/cv-four-open-serifless.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-semi-open-non-crossing-serifed.dark.svg b/images/cv-four-semi-open-non-crossing-serifed.dark.svg new file mode 100644 index 0000000000..0e71b47078 --- /dev/null +++ b/images/cv-four-semi-open-non-crossing-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-semi-open-non-crossing-serifed.light.svg b/images/cv-four-semi-open-non-crossing-serifed.light.svg new file mode 100644 index 0000000000..a86ab1a370 --- /dev/null +++ b/images/cv-four-semi-open-non-crossing-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-semi-open-non-crossing-serifless.dark.svg b/images/cv-four-semi-open-non-crossing-serifless.dark.svg new file mode 100644 index 0000000000..200a8c9933 --- /dev/null +++ b/images/cv-four-semi-open-non-crossing-serifless.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-semi-open-non-crossing-serifless.light.svg b/images/cv-four-semi-open-non-crossing-serifless.light.svg new file mode 100644 index 0000000000..5a61c2ebf5 --- /dev/null +++ b/images/cv-four-semi-open-non-crossing-serifless.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-semi-open-serifed.dark.svg b/images/cv-four-semi-open-serifed.dark.svg new file mode 100644 index 0000000000..eee4473ec3 --- /dev/null +++ b/images/cv-four-semi-open-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-semi-open-serifed.light.svg b/images/cv-four-semi-open-serifed.light.svg new file mode 100644 index 0000000000..f443fc959f --- /dev/null +++ b/images/cv-four-semi-open-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-semi-open-serifless.dark.svg b/images/cv-four-semi-open-serifless.dark.svg new file mode 100644 index 0000000000..9e5f87a3b6 --- /dev/null +++ b/images/cv-four-semi-open-serifless.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-four-semi-open-serifless.light.svg b/images/cv-four-semi-open-serifless.light.svg new file mode 100644 index 0000000000..a8e7c1db34 --- /dev/null +++ b/images/cv-four-semi-open-serifless.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-i-diagonal-tailed.dark.svg b/images/cv-i-diagonal-tailed.dark.svg index 00f9cd4ee4..9644df081b 100644 --- a/images/cv-i-diagonal-tailed.dark.svg +++ b/images/cv-i-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-diagonal-tailed.light.svg b/images/cv-i-diagonal-tailed.light.svg index 48729be4c1..4d3c3dc3f5 100644 --- a/images/cv-i-diagonal-tailed.light.svg +++ b/images/cv-i-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-flat-tailed.dark.svg b/images/cv-i-flat-tailed.dark.svg index 27344ea57a..bd85401151 100644 --- a/images/cv-i-flat-tailed.dark.svg +++ b/images/cv-i-flat-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-flat-tailed.light.svg b/images/cv-i-flat-tailed.light.svg index c0fe3172b5..ef2aa42437 100644 --- a/images/cv-i-flat-tailed.light.svg +++ b/images/cv-i-flat-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-hooky-bottom.dark.svg b/images/cv-i-hooky-bottom.dark.svg index 0b08af1c26..409d6fc4af 100644 --- a/images/cv-i-hooky-bottom.dark.svg +++ b/images/cv-i-hooky-bottom.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-hooky-bottom.light.svg b/images/cv-i-hooky-bottom.light.svg index cdaa9aeb7f..6b42bd5c35 100644 --- a/images/cv-i-hooky-bottom.light.svg +++ b/images/cv-i-hooky-bottom.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-hooky.dark.svg b/images/cv-i-hooky.dark.svg index 7242a16655..575fd146fe 100644 --- a/images/cv-i-hooky.dark.svg +++ b/images/cv-i-hooky.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-hooky.light.svg b/images/cv-i-hooky.light.svg index 20d0d9d468..8e4ccff38b 100644 --- a/images/cv-i-hooky.light.svg +++ b/images/cv-i-hooky.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-semi-tailed.dark.svg b/images/cv-i-semi-tailed.dark.svg index 5fd97beec4..72980ba280 100644 --- a/images/cv-i-semi-tailed.dark.svg +++ b/images/cv-i-semi-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-semi-tailed.light.svg b/images/cv-i-semi-tailed.light.svg index c4fa7b6534..a12414e158 100644 --- a/images/cv-i-semi-tailed.light.svg +++ b/images/cv-i-semi-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-serifed-asymmetric.dark.svg b/images/cv-i-serifed-asymmetric.dark.svg index 742a862b17..e11aec0b29 100644 --- a/images/cv-i-serifed-asymmetric.dark.svg +++ b/images/cv-i-serifed-asymmetric.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-serifed-asymmetric.light.svg b/images/cv-i-serifed-asymmetric.light.svg index 04080a4d5e..99e26596dc 100644 --- a/images/cv-i-serifed-asymmetric.light.svg +++ b/images/cv-i-serifed-asymmetric.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-serifed.dark.svg b/images/cv-i-serifed.dark.svg index 115ab2eeed..0ee7fcf389 100644 --- a/images/cv-i-serifed.dark.svg +++ b/images/cv-i-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-serifed.light.svg b/images/cv-i-serifed.light.svg index 5a76bb7e06..3ba28fcaf7 100644 --- a/images/cv-i-serifed.light.svg +++ b/images/cv-i-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-tailed-serifed.dark.svg b/images/cv-i-tailed-serifed.dark.svg index f1272b0984..922465263c 100644 --- a/images/cv-i-tailed-serifed.dark.svg +++ b/images/cv-i-tailed-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-tailed-serifed.light.svg b/images/cv-i-tailed-serifed.light.svg index 49625fc6a4..ac8f3f0d99 100644 --- a/images/cv-i-tailed-serifed.light.svg +++ b/images/cv-i-tailed-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-tailed.dark.svg b/images/cv-i-tailed.dark.svg index 02930c7984..fb639a9960 100644 --- a/images/cv-i-tailed.dark.svg +++ b/images/cv-i-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-tailed.light.svg b/images/cv-i-tailed.light.svg index dfc260ae5e..2845dec9e2 100644 --- a/images/cv-i-tailed.light.svg +++ b/images/cv-i-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-j-diagonal-tailed-serifed.dark.svg b/images/cv-j-diagonal-tailed-serifed.dark.svg index 07f2046fa2..b1d64379ec 100644 --- a/images/cv-j-diagonal-tailed-serifed.dark.svg +++ b/images/cv-j-diagonal-tailed-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-j-diagonal-tailed-serifed.light.svg b/images/cv-j-diagonal-tailed-serifed.light.svg index fc57ce29ce..71af9ac2d0 100644 --- a/images/cv-j-diagonal-tailed-serifed.light.svg +++ b/images/cv-j-diagonal-tailed-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-j-flat-hook-serifed.dark.svg b/images/cv-j-flat-hook-serifed.dark.svg index 242ff638e3..d9abcc1129 100644 --- a/images/cv-j-flat-hook-serifed.dark.svg +++ b/images/cv-j-flat-hook-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-j-flat-hook-serifed.light.svg b/images/cv-j-flat-hook-serifed.light.svg index 720989ffd5..5ffbd507c7 100644 --- a/images/cv-j-flat-hook-serifed.light.svg +++ b/images/cv-j-flat-hook-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-j-serifed.dark.svg b/images/cv-j-serifed.dark.svg index 618357f66f..0693a08fef 100644 --- a/images/cv-j-serifed.dark.svg +++ b/images/cv-j-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-j-serifed.light.svg b/images/cv-j-serifed.light.svg index 2b96a743a7..475eb5ac1a 100644 --- a/images/cv-j-serifed.light.svg +++ b/images/cv-j-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-three-flat-top-serifed.dark.svg b/images/cv-three-flat-top-serifed.dark.svg new file mode 100644 index 0000000000..4a1cb00f1e --- /dev/null +++ b/images/cv-three-flat-top-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-three-flat-top-serifed.light.svg b/images/cv-three-flat-top-serifed.light.svg new file mode 100644 index 0000000000..52b9a885c0 --- /dev/null +++ b/images/cv-three-flat-top-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-three-flat-top-serifless.dark.svg b/images/cv-three-flat-top-serifless.dark.svg new file mode 100644 index 0000000000..61b0f96a15 --- /dev/null +++ b/images/cv-three-flat-top-serifless.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-three-flat-top-serifless.light.svg b/images/cv-three-flat-top-serifless.light.svg new file mode 100644 index 0000000000..af0d46024b --- /dev/null +++ b/images/cv-three-flat-top-serifless.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-two-curly-neck-serifed.dark.svg b/images/cv-two-curly-neck-serifed.dark.svg new file mode 100644 index 0000000000..86cb8189fe --- /dev/null +++ b/images/cv-two-curly-neck-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-two-curly-neck-serifed.light.svg b/images/cv-two-curly-neck-serifed.light.svg new file mode 100644 index 0000000000..930558c31a --- /dev/null +++ b/images/cv-two-curly-neck-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-two-curly-neck-serifless.dark.svg b/images/cv-two-curly-neck-serifless.dark.svg new file mode 100644 index 0000000000..337ee60780 --- /dev/null +++ b/images/cv-two-curly-neck-serifless.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-two-curly-neck-serifless.light.svg b/images/cv-two-curly-neck-serifless.light.svg new file mode 100644 index 0000000000..eb16479cbd --- /dev/null +++ b/images/cv-two-curly-neck-serifless.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-two-straight-neck-serifed.dark.svg b/images/cv-two-straight-neck-serifed.dark.svg new file mode 100644 index 0000000000..0afcd43748 --- /dev/null +++ b/images/cv-two-straight-neck-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-two-straight-neck-serifed.light.svg b/images/cv-two-straight-neck-serifed.light.svg new file mode 100644 index 0000000000..b45036186f --- /dev/null +++ b/images/cv-two-straight-neck-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-two-straight-neck-serifless.dark.svg b/images/cv-two-straight-neck-serifless.dark.svg new file mode 100644 index 0000000000..59218e9f9c --- /dev/null +++ b/images/cv-two-straight-neck-serifless.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-two-straight-neck-serifless.light.svg b/images/cv-two-straight-neck-serifless.light.svg new file mode 100644 index 0000000000..912a26608f --- /dev/null +++ b/images/cv-two-straight-neck-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 59ae9360d6..f9044f5be0 100644 --- a/images/languages.dark.svg +++ b/images/languages.dark.svg @@ -5,7 +5,7 @@ - + @@ -20,11 +20,11 @@ - + - + @@ -49,7 +49,7 @@ - + @@ -58,7 +58,7 @@ - + @@ -125,9 +125,9 @@ - + - + @@ -149,14 +149,14 @@ - + - + @@ -233,7 +233,7 @@ - + @@ -244,7 +244,7 @@ - + diff --git a/images/languages.light.svg b/images/languages.light.svg index 94dc567aec..094bccdcc6 100644 --- a/images/languages.light.svg +++ b/images/languages.light.svg @@ -5,7 +5,7 @@ - + @@ -20,11 +20,11 @@ - + - + @@ -49,7 +49,7 @@ - + @@ -58,7 +58,7 @@ - + @@ -125,9 +125,9 @@ - + - + @@ -149,14 +149,14 @@ - + - + @@ -233,7 +233,7 @@ - + @@ -244,7 +244,7 @@ - + diff --git a/images/package-sample-Iosevka.dark.svg b/images/package-sample-Iosevka.dark.svg index 3bd4a14d74..eb1e983303 100644 --- a/images/package-sample-Iosevka.dark.svg +++ b/images/package-sample-Iosevka.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-Iosevka.light.svg b/images/package-sample-Iosevka.light.svg index 397ec6bcf3..42862799fc 100644 --- a/images/package-sample-Iosevka.light.svg +++ b/images/package-sample-Iosevka.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaAile.dark.svg b/images/package-sample-IosevkaAile.dark.svg index 611ea48301..2abfde2997 100644 --- a/images/package-sample-IosevkaAile.dark.svg +++ b/images/package-sample-IosevkaAile.dark.svg @@ -4,7 +4,7 @@ - + @@ -14,7 +14,7 @@ - + @@ -24,7 +24,7 @@ - + @@ -33,27 +33,27 @@ - + - - + + - + - + - + - + - + @@ -71,20 +71,20 @@ - + - + - + - + @@ -96,16 +96,16 @@ - + - + - + - + @@ -116,7 +116,7 @@ - + @@ -124,21 +124,21 @@ - + - + - + - + - + @@ -151,86 +151,86 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - + + + + + + + + @@ -241,53 +241,53 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -298,123 +298,123 @@ - + - - - - - - + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - + + + + + + + + + + + - + - - - - - - - + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + \ No newline at end of file diff --git a/images/package-sample-IosevkaAile.light.svg b/images/package-sample-IosevkaAile.light.svg index 0cbd11c817..9130bafa5e 100644 --- a/images/package-sample-IosevkaAile.light.svg +++ b/images/package-sample-IosevkaAile.light.svg @@ -4,7 +4,7 @@ - + @@ -14,7 +14,7 @@ - + @@ -24,7 +24,7 @@ - + @@ -33,27 +33,27 @@ - + - - + + - + - + - + - + - + @@ -71,20 +71,20 @@ - + - + - + - + @@ -96,16 +96,16 @@ - + - + - + - + @@ -116,7 +116,7 @@ - + @@ -124,21 +124,21 @@ - + - + - + - + - + @@ -151,86 +151,86 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - + + + + + + + + @@ -241,53 +241,53 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -298,123 +298,123 @@ - + - - - - - - + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - + + + + + + + + + + + - + - - - - - - - + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + \ No newline at end of file diff --git a/images/package-sample-IosevkaCurly.dark.svg b/images/package-sample-IosevkaCurly.dark.svg index d25a09dbd4..4624a4b562 100644 --- a/images/package-sample-IosevkaCurly.dark.svg +++ b/images/package-sample-IosevkaCurly.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaCurly.light.svg b/images/package-sample-IosevkaCurly.light.svg index 9d1b693221..6af3b8e6f7 100644 --- a/images/package-sample-IosevkaCurly.light.svg +++ b/images/package-sample-IosevkaCurly.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaCurlySlab.dark.svg b/images/package-sample-IosevkaCurlySlab.dark.svg index 137ecb0531..ee7ac4f4bc 100644 --- a/images/package-sample-IosevkaCurlySlab.dark.svg +++ b/images/package-sample-IosevkaCurlySlab.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/package-sample-IosevkaCurlySlab.light.svg b/images/package-sample-IosevkaCurlySlab.light.svg index 25ead839d8..b3987780df 100644 --- a/images/package-sample-IosevkaCurlySlab.light.svg +++ b/images/package-sample-IosevkaCurlySlab.light.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/package-sample-IosevkaEtoile.dark.svg b/images/package-sample-IosevkaEtoile.dark.svg index 8dfe68ea05..2f338b76af 100644 --- a/images/package-sample-IosevkaEtoile.dark.svg +++ b/images/package-sample-IosevkaEtoile.dark.svg @@ -4,27 +4,27 @@ - + - + - + - + - + @@ -33,28 +33,28 @@ - + - - + + - - + + - + - + - + @@ -72,20 +72,20 @@ - + - + - + - + @@ -97,16 +97,16 @@ - + - + - + - + @@ -117,7 +117,7 @@ - + @@ -125,21 +125,21 @@ - + - + - + - + - + @@ -152,143 +152,143 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -299,123 +299,123 @@ - + - - - - - - + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - + + + + + + + + + + + - + - - - - - - - + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + \ No newline at end of file diff --git a/images/package-sample-IosevkaEtoile.light.svg b/images/package-sample-IosevkaEtoile.light.svg index 418e4f7118..2e1817ec58 100644 --- a/images/package-sample-IosevkaEtoile.light.svg +++ b/images/package-sample-IosevkaEtoile.light.svg @@ -4,27 +4,27 @@ - + - + - + - + - + @@ -33,28 +33,28 @@ - + - - + + - - + + - + - + - + @@ -72,20 +72,20 @@ - + - + - + - + @@ -97,16 +97,16 @@ - + - + - + - + @@ -117,7 +117,7 @@ - + @@ -125,21 +125,21 @@ - + - + - + - + - + @@ -152,143 +152,143 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -299,123 +299,123 @@ - + - - - - - - + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - + + + + + + + + + + + - + - - - - - - - + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + \ No newline at end of file diff --git a/images/package-sample-IosevkaFixed.dark.svg b/images/package-sample-IosevkaFixed.dark.svg index 3bd4a14d74..eb1e983303 100644 --- a/images/package-sample-IosevkaFixed.dark.svg +++ b/images/package-sample-IosevkaFixed.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixed.light.svg b/images/package-sample-IosevkaFixed.light.svg index 397ec6bcf3..42862799fc 100644 --- a/images/package-sample-IosevkaFixed.light.svg +++ b/images/package-sample-IosevkaFixed.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedCurly.dark.svg b/images/package-sample-IosevkaFixedCurly.dark.svg index d25a09dbd4..4624a4b562 100644 --- a/images/package-sample-IosevkaFixedCurly.dark.svg +++ b/images/package-sample-IosevkaFixedCurly.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedCurly.light.svg b/images/package-sample-IosevkaFixedCurly.light.svg index 9d1b693221..6af3b8e6f7 100644 --- a/images/package-sample-IosevkaFixedCurly.light.svg +++ b/images/package-sample-IosevkaFixedCurly.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedCurlySlab.dark.svg b/images/package-sample-IosevkaFixedCurlySlab.dark.svg index 137ecb0531..ee7ac4f4bc 100644 --- a/images/package-sample-IosevkaFixedCurlySlab.dark.svg +++ b/images/package-sample-IosevkaFixedCurlySlab.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/package-sample-IosevkaFixedCurlySlab.light.svg b/images/package-sample-IosevkaFixedCurlySlab.light.svg index 25ead839d8..b3987780df 100644 --- a/images/package-sample-IosevkaFixedCurlySlab.light.svg +++ b/images/package-sample-IosevkaFixedCurlySlab.light.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS01.dark.svg b/images/package-sample-IosevkaFixedSS01.dark.svg index b4211b36ce..63b07fbb4e 100644 --- a/images/package-sample-IosevkaFixedSS01.dark.svg +++ b/images/package-sample-IosevkaFixedSS01.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS01.light.svg b/images/package-sample-IosevkaFixedSS01.light.svg index e6c2dfda5a..9ff10c4791 100644 --- a/images/package-sample-IosevkaFixedSS01.light.svg +++ b/images/package-sample-IosevkaFixedSS01.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS02.dark.svg b/images/package-sample-IosevkaFixedSS02.dark.svg index 650f25dae3..164d04c2b5 100644 --- a/images/package-sample-IosevkaFixedSS02.dark.svg +++ b/images/package-sample-IosevkaFixedSS02.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -64,7 +64,7 @@ - + @@ -75,7 +75,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS02.light.svg b/images/package-sample-IosevkaFixedSS02.light.svg index 472dee3bc7..9f4e8f5a25 100644 --- a/images/package-sample-IosevkaFixedSS02.light.svg +++ b/images/package-sample-IosevkaFixedSS02.light.svg @@ -36,8 +36,8 @@ - - + + @@ -64,7 +64,7 @@ - + @@ -75,7 +75,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS03.dark.svg b/images/package-sample-IosevkaFixedSS03.dark.svg index 2924f66578..6961cc57bc 100644 --- a/images/package-sample-IosevkaFixedSS03.dark.svg +++ b/images/package-sample-IosevkaFixedSS03.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS03.light.svg b/images/package-sample-IosevkaFixedSS03.light.svg index 05bc0f66e5..7a9469b087 100644 --- a/images/package-sample-IosevkaFixedSS03.light.svg +++ b/images/package-sample-IosevkaFixedSS03.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS04.dark.svg b/images/package-sample-IosevkaFixedSS04.dark.svg index 5ea3d70c60..5d367630df 100644 --- a/images/package-sample-IosevkaFixedSS04.dark.svg +++ b/images/package-sample-IosevkaFixedSS04.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS04.light.svg b/images/package-sample-IosevkaFixedSS04.light.svg index dfbeb18606..4387d1d703 100644 --- a/images/package-sample-IosevkaFixedSS04.light.svg +++ b/images/package-sample-IosevkaFixedSS04.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS05.dark.svg b/images/package-sample-IosevkaFixedSS05.dark.svg index f2d9e0898e..8a32fec772 100644 --- a/images/package-sample-IosevkaFixedSS05.dark.svg +++ b/images/package-sample-IosevkaFixedSS05.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS05.light.svg b/images/package-sample-IosevkaFixedSS05.light.svg index 5d9721cb03..f69ffccdef 100644 --- a/images/package-sample-IosevkaFixedSS05.light.svg +++ b/images/package-sample-IosevkaFixedSS05.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS06.dark.svg b/images/package-sample-IosevkaFixedSS06.dark.svg index fb224b9681..c949e78702 100644 --- a/images/package-sample-IosevkaFixedSS06.dark.svg +++ b/images/package-sample-IosevkaFixedSS06.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS06.light.svg b/images/package-sample-IosevkaFixedSS06.light.svg index 9f48b2f305..b6fcf3fd5a 100644 --- a/images/package-sample-IosevkaFixedSS06.light.svg +++ b/images/package-sample-IosevkaFixedSS06.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS07.dark.svg b/images/package-sample-IosevkaFixedSS07.dark.svg index 56150f237d..af20478724 100644 --- a/images/package-sample-IosevkaFixedSS07.dark.svg +++ b/images/package-sample-IosevkaFixedSS07.dark.svg @@ -37,7 +37,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS07.light.svg b/images/package-sample-IosevkaFixedSS07.light.svg index 91cbc67513..d5486e3312 100644 --- a/images/package-sample-IosevkaFixedSS07.light.svg +++ b/images/package-sample-IosevkaFixedSS07.light.svg @@ -37,7 +37,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS08.dark.svg b/images/package-sample-IosevkaFixedSS08.dark.svg index 092e834954..af35832ecc 100644 --- a/images/package-sample-IosevkaFixedSS08.dark.svg +++ b/images/package-sample-IosevkaFixedSS08.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS08.light.svg b/images/package-sample-IosevkaFixedSS08.light.svg index 4c187728b0..72a8fdcb84 100644 --- a/images/package-sample-IosevkaFixedSS08.light.svg +++ b/images/package-sample-IosevkaFixedSS08.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS09.dark.svg b/images/package-sample-IosevkaFixedSS09.dark.svg index ec6bbb8ec5..745e886ae0 100644 --- a/images/package-sample-IosevkaFixedSS09.dark.svg +++ b/images/package-sample-IosevkaFixedSS09.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS09.light.svg b/images/package-sample-IosevkaFixedSS09.light.svg index 1bdac85c31..ccc8a963c7 100644 --- a/images/package-sample-IosevkaFixedSS09.light.svg +++ b/images/package-sample-IosevkaFixedSS09.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS10.dark.svg b/images/package-sample-IosevkaFixedSS10.dark.svg index d8d9a84e3d..63b770a7e5 100644 --- a/images/package-sample-IosevkaFixedSS10.dark.svg +++ b/images/package-sample-IosevkaFixedSS10.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS10.light.svg b/images/package-sample-IosevkaFixedSS10.light.svg index e1832db008..b3fc070a10 100644 --- a/images/package-sample-IosevkaFixedSS10.light.svg +++ b/images/package-sample-IosevkaFixedSS10.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS11.dark.svg b/images/package-sample-IosevkaFixedSS11.dark.svg index 4ae1a1fe00..bed8978db2 100644 --- a/images/package-sample-IosevkaFixedSS11.dark.svg +++ b/images/package-sample-IosevkaFixedSS11.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS11.light.svg b/images/package-sample-IosevkaFixedSS11.light.svg index 6d02337b89..b6ad0805b0 100644 --- a/images/package-sample-IosevkaFixedSS11.light.svg +++ b/images/package-sample-IosevkaFixedSS11.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS12.dark.svg b/images/package-sample-IosevkaFixedSS12.dark.svg index 27a9acfd34..07a9d6547b 100644 --- a/images/package-sample-IosevkaFixedSS12.dark.svg +++ b/images/package-sample-IosevkaFixedSS12.dark.svg @@ -37,7 +37,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS12.light.svg b/images/package-sample-IosevkaFixedSS12.light.svg index d18cdd2edc..370533ed03 100644 --- a/images/package-sample-IosevkaFixedSS12.light.svg +++ b/images/package-sample-IosevkaFixedSS12.light.svg @@ -37,7 +37,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS13.dark.svg b/images/package-sample-IosevkaFixedSS13.dark.svg index 3fc5333b6b..067e84be47 100644 --- a/images/package-sample-IosevkaFixedSS13.dark.svg +++ b/images/package-sample-IosevkaFixedSS13.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS13.light.svg b/images/package-sample-IosevkaFixedSS13.light.svg index ee4e17250c..963c747386 100644 --- a/images/package-sample-IosevkaFixedSS13.light.svg +++ b/images/package-sample-IosevkaFixedSS13.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS14.dark.svg b/images/package-sample-IosevkaFixedSS14.dark.svg index 32b073d637..5124ee4927 100644 --- a/images/package-sample-IosevkaFixedSS14.dark.svg +++ b/images/package-sample-IosevkaFixedSS14.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS14.light.svg b/images/package-sample-IosevkaFixedSS14.light.svg index 712670920a..7933d02132 100644 --- a/images/package-sample-IosevkaFixedSS14.light.svg +++ b/images/package-sample-IosevkaFixedSS14.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS15.dark.svg b/images/package-sample-IosevkaFixedSS15.dark.svg index 7753656b66..3bfd70ce4a 100644 --- a/images/package-sample-IosevkaFixedSS15.dark.svg +++ b/images/package-sample-IosevkaFixedSS15.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS15.light.svg b/images/package-sample-IosevkaFixedSS15.light.svg index 81ed5a1bd5..82fa991e5b 100644 --- a/images/package-sample-IosevkaFixedSS15.light.svg +++ b/images/package-sample-IosevkaFixedSS15.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS16.dark.svg b/images/package-sample-IosevkaFixedSS16.dark.svg index 93d053cbf6..4b4dfc2eeb 100644 --- a/images/package-sample-IosevkaFixedSS16.dark.svg +++ b/images/package-sample-IosevkaFixedSS16.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS16.light.svg b/images/package-sample-IosevkaFixedSS16.light.svg index 80cba8a1ae..e546336569 100644 --- a/images/package-sample-IosevkaFixedSS16.light.svg +++ b/images/package-sample-IosevkaFixedSS16.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS17.dark.svg b/images/package-sample-IosevkaFixedSS17.dark.svg index e034571c79..6b1d6b66fb 100644 --- a/images/package-sample-IosevkaFixedSS17.dark.svg +++ b/images/package-sample-IosevkaFixedSS17.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS17.light.svg b/images/package-sample-IosevkaFixedSS17.light.svg index 103d157202..3f813bc5d9 100644 --- a/images/package-sample-IosevkaFixedSS17.light.svg +++ b/images/package-sample-IosevkaFixedSS17.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS18.dark.svg b/images/package-sample-IosevkaFixedSS18.dark.svg index e1b1d26c20..f3db574c22 100644 --- a/images/package-sample-IosevkaFixedSS18.dark.svg +++ b/images/package-sample-IosevkaFixedSS18.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS18.light.svg b/images/package-sample-IosevkaFixedSS18.light.svg index 5739cdaa2f..bef91375dd 100644 --- a/images/package-sample-IosevkaFixedSS18.light.svg +++ b/images/package-sample-IosevkaFixedSS18.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSlab.dark.svg b/images/package-sample-IosevkaFixedSlab.dark.svg index 4724d26456..d34f0e1ab2 100644 --- a/images/package-sample-IosevkaFixedSlab.dark.svg +++ b/images/package-sample-IosevkaFixedSlab.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSlab.light.svg b/images/package-sample-IosevkaFixedSlab.light.svg index 02ea777e46..854e3e494d 100644 --- a/images/package-sample-IosevkaFixedSlab.light.svg +++ b/images/package-sample-IosevkaFixedSlab.light.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/package-sample-IosevkaSS01.dark.svg b/images/package-sample-IosevkaSS01.dark.svg index b4211b36ce..63b07fbb4e 100644 --- a/images/package-sample-IosevkaSS01.dark.svg +++ b/images/package-sample-IosevkaSS01.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS01.light.svg b/images/package-sample-IosevkaSS01.light.svg index e6c2dfda5a..9ff10c4791 100644 --- a/images/package-sample-IosevkaSS01.light.svg +++ b/images/package-sample-IosevkaSS01.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS02.dark.svg b/images/package-sample-IosevkaSS02.dark.svg index 650f25dae3..164d04c2b5 100644 --- a/images/package-sample-IosevkaSS02.dark.svg +++ b/images/package-sample-IosevkaSS02.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -64,7 +64,7 @@ - + @@ -75,7 +75,7 @@ - + diff --git a/images/package-sample-IosevkaSS02.light.svg b/images/package-sample-IosevkaSS02.light.svg index 472dee3bc7..9f4e8f5a25 100644 --- a/images/package-sample-IosevkaSS02.light.svg +++ b/images/package-sample-IosevkaSS02.light.svg @@ -36,8 +36,8 @@ - - + + @@ -64,7 +64,7 @@ - + @@ -75,7 +75,7 @@ - + diff --git a/images/package-sample-IosevkaSS03.dark.svg b/images/package-sample-IosevkaSS03.dark.svg index 2924f66578..6961cc57bc 100644 --- a/images/package-sample-IosevkaSS03.dark.svg +++ b/images/package-sample-IosevkaSS03.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS03.light.svg b/images/package-sample-IosevkaSS03.light.svg index 05bc0f66e5..7a9469b087 100644 --- a/images/package-sample-IosevkaSS03.light.svg +++ b/images/package-sample-IosevkaSS03.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS04.dark.svg b/images/package-sample-IosevkaSS04.dark.svg index 5ea3d70c60..5d367630df 100644 --- a/images/package-sample-IosevkaSS04.dark.svg +++ b/images/package-sample-IosevkaSS04.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS04.light.svg b/images/package-sample-IosevkaSS04.light.svg index dfbeb18606..4387d1d703 100644 --- a/images/package-sample-IosevkaSS04.light.svg +++ b/images/package-sample-IosevkaSS04.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS05.dark.svg b/images/package-sample-IosevkaSS05.dark.svg index f2d9e0898e..8a32fec772 100644 --- a/images/package-sample-IosevkaSS05.dark.svg +++ b/images/package-sample-IosevkaSS05.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS05.light.svg b/images/package-sample-IosevkaSS05.light.svg index 5d9721cb03..f69ffccdef 100644 --- a/images/package-sample-IosevkaSS05.light.svg +++ b/images/package-sample-IosevkaSS05.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS06.dark.svg b/images/package-sample-IosevkaSS06.dark.svg index fb224b9681..c949e78702 100644 --- a/images/package-sample-IosevkaSS06.dark.svg +++ b/images/package-sample-IosevkaSS06.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS06.light.svg b/images/package-sample-IosevkaSS06.light.svg index 9f48b2f305..b6fcf3fd5a 100644 --- a/images/package-sample-IosevkaSS06.light.svg +++ b/images/package-sample-IosevkaSS06.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS07.dark.svg b/images/package-sample-IosevkaSS07.dark.svg index 56150f237d..af20478724 100644 --- a/images/package-sample-IosevkaSS07.dark.svg +++ b/images/package-sample-IosevkaSS07.dark.svg @@ -37,7 +37,7 @@ - + diff --git a/images/package-sample-IosevkaSS07.light.svg b/images/package-sample-IosevkaSS07.light.svg index 91cbc67513..d5486e3312 100644 --- a/images/package-sample-IosevkaSS07.light.svg +++ b/images/package-sample-IosevkaSS07.light.svg @@ -37,7 +37,7 @@ - + diff --git a/images/package-sample-IosevkaSS08.dark.svg b/images/package-sample-IosevkaSS08.dark.svg index 092e834954..af35832ecc 100644 --- a/images/package-sample-IosevkaSS08.dark.svg +++ b/images/package-sample-IosevkaSS08.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS08.light.svg b/images/package-sample-IosevkaSS08.light.svg index 4c187728b0..72a8fdcb84 100644 --- a/images/package-sample-IosevkaSS08.light.svg +++ b/images/package-sample-IosevkaSS08.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS09.dark.svg b/images/package-sample-IosevkaSS09.dark.svg index ec6bbb8ec5..745e886ae0 100644 --- a/images/package-sample-IosevkaSS09.dark.svg +++ b/images/package-sample-IosevkaSS09.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS09.light.svg b/images/package-sample-IosevkaSS09.light.svg index 1bdac85c31..ccc8a963c7 100644 --- a/images/package-sample-IosevkaSS09.light.svg +++ b/images/package-sample-IosevkaSS09.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS10.dark.svg b/images/package-sample-IosevkaSS10.dark.svg index d8d9a84e3d..63b770a7e5 100644 --- a/images/package-sample-IosevkaSS10.dark.svg +++ b/images/package-sample-IosevkaSS10.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS10.light.svg b/images/package-sample-IosevkaSS10.light.svg index e1832db008..b3fc070a10 100644 --- a/images/package-sample-IosevkaSS10.light.svg +++ b/images/package-sample-IosevkaSS10.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS11.dark.svg b/images/package-sample-IosevkaSS11.dark.svg index 4ae1a1fe00..bed8978db2 100644 --- a/images/package-sample-IosevkaSS11.dark.svg +++ b/images/package-sample-IosevkaSS11.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS11.light.svg b/images/package-sample-IosevkaSS11.light.svg index 6d02337b89..b6ad0805b0 100644 --- a/images/package-sample-IosevkaSS11.light.svg +++ b/images/package-sample-IosevkaSS11.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS12.dark.svg b/images/package-sample-IosevkaSS12.dark.svg index 27a9acfd34..07a9d6547b 100644 --- a/images/package-sample-IosevkaSS12.dark.svg +++ b/images/package-sample-IosevkaSS12.dark.svg @@ -37,7 +37,7 @@ - + diff --git a/images/package-sample-IosevkaSS12.light.svg b/images/package-sample-IosevkaSS12.light.svg index d18cdd2edc..370533ed03 100644 --- a/images/package-sample-IosevkaSS12.light.svg +++ b/images/package-sample-IosevkaSS12.light.svg @@ -37,7 +37,7 @@ - + diff --git a/images/package-sample-IosevkaSS13.dark.svg b/images/package-sample-IosevkaSS13.dark.svg index 3fc5333b6b..067e84be47 100644 --- a/images/package-sample-IosevkaSS13.dark.svg +++ b/images/package-sample-IosevkaSS13.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS13.light.svg b/images/package-sample-IosevkaSS13.light.svg index ee4e17250c..963c747386 100644 --- a/images/package-sample-IosevkaSS13.light.svg +++ b/images/package-sample-IosevkaSS13.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS14.dark.svg b/images/package-sample-IosevkaSS14.dark.svg index 32b073d637..5124ee4927 100644 --- a/images/package-sample-IosevkaSS14.dark.svg +++ b/images/package-sample-IosevkaSS14.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS14.light.svg b/images/package-sample-IosevkaSS14.light.svg index 712670920a..7933d02132 100644 --- a/images/package-sample-IosevkaSS14.light.svg +++ b/images/package-sample-IosevkaSS14.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS15.dark.svg b/images/package-sample-IosevkaSS15.dark.svg index 7753656b66..3bfd70ce4a 100644 --- a/images/package-sample-IosevkaSS15.dark.svg +++ b/images/package-sample-IosevkaSS15.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS15.light.svg b/images/package-sample-IosevkaSS15.light.svg index 81ed5a1bd5..82fa991e5b 100644 --- a/images/package-sample-IosevkaSS15.light.svg +++ b/images/package-sample-IosevkaSS15.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS16.dark.svg b/images/package-sample-IosevkaSS16.dark.svg index 93d053cbf6..4b4dfc2eeb 100644 --- a/images/package-sample-IosevkaSS16.dark.svg +++ b/images/package-sample-IosevkaSS16.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS16.light.svg b/images/package-sample-IosevkaSS16.light.svg index 80cba8a1ae..e546336569 100644 --- a/images/package-sample-IosevkaSS16.light.svg +++ b/images/package-sample-IosevkaSS16.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS17.dark.svg b/images/package-sample-IosevkaSS17.dark.svg index e034571c79..6b1d6b66fb 100644 --- a/images/package-sample-IosevkaSS17.dark.svg +++ b/images/package-sample-IosevkaSS17.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS17.light.svg b/images/package-sample-IosevkaSS17.light.svg index 103d157202..3f813bc5d9 100644 --- a/images/package-sample-IosevkaSS17.light.svg +++ b/images/package-sample-IosevkaSS17.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS18.dark.svg b/images/package-sample-IosevkaSS18.dark.svg index e1b1d26c20..f3db574c22 100644 --- a/images/package-sample-IosevkaSS18.dark.svg +++ b/images/package-sample-IosevkaSS18.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS18.light.svg b/images/package-sample-IosevkaSS18.light.svg index 5739cdaa2f..bef91375dd 100644 --- a/images/package-sample-IosevkaSS18.light.svg +++ b/images/package-sample-IosevkaSS18.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaSlab.dark.svg b/images/package-sample-IosevkaSlab.dark.svg index 4724d26456..d34f0e1ab2 100644 --- a/images/package-sample-IosevkaSlab.dark.svg +++ b/images/package-sample-IosevkaSlab.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/package-sample-IosevkaSlab.light.svg b/images/package-sample-IosevkaSlab.light.svg index 02ea777e46..854e3e494d 100644 --- a/images/package-sample-IosevkaSlab.light.svg +++ b/images/package-sample-IosevkaSlab.light.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/package-sample-IosevkaTerm.dark.svg b/images/package-sample-IosevkaTerm.dark.svg index 3bd4a14d74..eb1e983303 100644 --- a/images/package-sample-IosevkaTerm.dark.svg +++ b/images/package-sample-IosevkaTerm.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTerm.light.svg b/images/package-sample-IosevkaTerm.light.svg index 397ec6bcf3..42862799fc 100644 --- a/images/package-sample-IosevkaTerm.light.svg +++ b/images/package-sample-IosevkaTerm.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermCurly.dark.svg b/images/package-sample-IosevkaTermCurly.dark.svg index d25a09dbd4..4624a4b562 100644 --- a/images/package-sample-IosevkaTermCurly.dark.svg +++ b/images/package-sample-IosevkaTermCurly.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermCurly.light.svg b/images/package-sample-IosevkaTermCurly.light.svg index 9d1b693221..6af3b8e6f7 100644 --- a/images/package-sample-IosevkaTermCurly.light.svg +++ b/images/package-sample-IosevkaTermCurly.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermCurlySlab.dark.svg b/images/package-sample-IosevkaTermCurlySlab.dark.svg index 137ecb0531..ee7ac4f4bc 100644 --- a/images/package-sample-IosevkaTermCurlySlab.dark.svg +++ b/images/package-sample-IosevkaTermCurlySlab.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/package-sample-IosevkaTermCurlySlab.light.svg b/images/package-sample-IosevkaTermCurlySlab.light.svg index 25ead839d8..b3987780df 100644 --- a/images/package-sample-IosevkaTermCurlySlab.light.svg +++ b/images/package-sample-IosevkaTermCurlySlab.light.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS01.dark.svg b/images/package-sample-IosevkaTermSS01.dark.svg index b4211b36ce..63b07fbb4e 100644 --- a/images/package-sample-IosevkaTermSS01.dark.svg +++ b/images/package-sample-IosevkaTermSS01.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS01.light.svg b/images/package-sample-IosevkaTermSS01.light.svg index e6c2dfda5a..9ff10c4791 100644 --- a/images/package-sample-IosevkaTermSS01.light.svg +++ b/images/package-sample-IosevkaTermSS01.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS02.dark.svg b/images/package-sample-IosevkaTermSS02.dark.svg index 650f25dae3..164d04c2b5 100644 --- a/images/package-sample-IosevkaTermSS02.dark.svg +++ b/images/package-sample-IosevkaTermSS02.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -64,7 +64,7 @@ - + @@ -75,7 +75,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS02.light.svg b/images/package-sample-IosevkaTermSS02.light.svg index 472dee3bc7..9f4e8f5a25 100644 --- a/images/package-sample-IosevkaTermSS02.light.svg +++ b/images/package-sample-IosevkaTermSS02.light.svg @@ -36,8 +36,8 @@ - - + + @@ -64,7 +64,7 @@ - + @@ -75,7 +75,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS03.dark.svg b/images/package-sample-IosevkaTermSS03.dark.svg index 2924f66578..6961cc57bc 100644 --- a/images/package-sample-IosevkaTermSS03.dark.svg +++ b/images/package-sample-IosevkaTermSS03.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS03.light.svg b/images/package-sample-IosevkaTermSS03.light.svg index 05bc0f66e5..7a9469b087 100644 --- a/images/package-sample-IosevkaTermSS03.light.svg +++ b/images/package-sample-IosevkaTermSS03.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS04.dark.svg b/images/package-sample-IosevkaTermSS04.dark.svg index 5ea3d70c60..5d367630df 100644 --- a/images/package-sample-IosevkaTermSS04.dark.svg +++ b/images/package-sample-IosevkaTermSS04.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS04.light.svg b/images/package-sample-IosevkaTermSS04.light.svg index dfbeb18606..4387d1d703 100644 --- a/images/package-sample-IosevkaTermSS04.light.svg +++ b/images/package-sample-IosevkaTermSS04.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS05.dark.svg b/images/package-sample-IosevkaTermSS05.dark.svg index f2d9e0898e..8a32fec772 100644 --- a/images/package-sample-IosevkaTermSS05.dark.svg +++ b/images/package-sample-IosevkaTermSS05.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS05.light.svg b/images/package-sample-IosevkaTermSS05.light.svg index 5d9721cb03..f69ffccdef 100644 --- a/images/package-sample-IosevkaTermSS05.light.svg +++ b/images/package-sample-IosevkaTermSS05.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS06.dark.svg b/images/package-sample-IosevkaTermSS06.dark.svg index fb224b9681..c949e78702 100644 --- a/images/package-sample-IosevkaTermSS06.dark.svg +++ b/images/package-sample-IosevkaTermSS06.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS06.light.svg b/images/package-sample-IosevkaTermSS06.light.svg index 9f48b2f305..b6fcf3fd5a 100644 --- a/images/package-sample-IosevkaTermSS06.light.svg +++ b/images/package-sample-IosevkaTermSS06.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS07.dark.svg b/images/package-sample-IosevkaTermSS07.dark.svg index 56150f237d..af20478724 100644 --- a/images/package-sample-IosevkaTermSS07.dark.svg +++ b/images/package-sample-IosevkaTermSS07.dark.svg @@ -37,7 +37,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS07.light.svg b/images/package-sample-IosevkaTermSS07.light.svg index 91cbc67513..d5486e3312 100644 --- a/images/package-sample-IosevkaTermSS07.light.svg +++ b/images/package-sample-IosevkaTermSS07.light.svg @@ -37,7 +37,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS08.dark.svg b/images/package-sample-IosevkaTermSS08.dark.svg index 092e834954..af35832ecc 100644 --- a/images/package-sample-IosevkaTermSS08.dark.svg +++ b/images/package-sample-IosevkaTermSS08.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS08.light.svg b/images/package-sample-IosevkaTermSS08.light.svg index 4c187728b0..72a8fdcb84 100644 --- a/images/package-sample-IosevkaTermSS08.light.svg +++ b/images/package-sample-IosevkaTermSS08.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS09.dark.svg b/images/package-sample-IosevkaTermSS09.dark.svg index ec6bbb8ec5..745e886ae0 100644 --- a/images/package-sample-IosevkaTermSS09.dark.svg +++ b/images/package-sample-IosevkaTermSS09.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS09.light.svg b/images/package-sample-IosevkaTermSS09.light.svg index 1bdac85c31..ccc8a963c7 100644 --- a/images/package-sample-IosevkaTermSS09.light.svg +++ b/images/package-sample-IosevkaTermSS09.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS10.dark.svg b/images/package-sample-IosevkaTermSS10.dark.svg index d8d9a84e3d..63b770a7e5 100644 --- a/images/package-sample-IosevkaTermSS10.dark.svg +++ b/images/package-sample-IosevkaTermSS10.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS10.light.svg b/images/package-sample-IosevkaTermSS10.light.svg index e1832db008..b3fc070a10 100644 --- a/images/package-sample-IosevkaTermSS10.light.svg +++ b/images/package-sample-IosevkaTermSS10.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS11.dark.svg b/images/package-sample-IosevkaTermSS11.dark.svg index 4ae1a1fe00..bed8978db2 100644 --- a/images/package-sample-IosevkaTermSS11.dark.svg +++ b/images/package-sample-IosevkaTermSS11.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS11.light.svg b/images/package-sample-IosevkaTermSS11.light.svg index 6d02337b89..b6ad0805b0 100644 --- a/images/package-sample-IosevkaTermSS11.light.svg +++ b/images/package-sample-IosevkaTermSS11.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS12.dark.svg b/images/package-sample-IosevkaTermSS12.dark.svg index 27a9acfd34..07a9d6547b 100644 --- a/images/package-sample-IosevkaTermSS12.dark.svg +++ b/images/package-sample-IosevkaTermSS12.dark.svg @@ -37,7 +37,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS12.light.svg b/images/package-sample-IosevkaTermSS12.light.svg index d18cdd2edc..370533ed03 100644 --- a/images/package-sample-IosevkaTermSS12.light.svg +++ b/images/package-sample-IosevkaTermSS12.light.svg @@ -37,7 +37,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS13.dark.svg b/images/package-sample-IosevkaTermSS13.dark.svg index 3fc5333b6b..067e84be47 100644 --- a/images/package-sample-IosevkaTermSS13.dark.svg +++ b/images/package-sample-IosevkaTermSS13.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS13.light.svg b/images/package-sample-IosevkaTermSS13.light.svg index ee4e17250c..963c747386 100644 --- a/images/package-sample-IosevkaTermSS13.light.svg +++ b/images/package-sample-IosevkaTermSS13.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS14.dark.svg b/images/package-sample-IosevkaTermSS14.dark.svg index 32b073d637..5124ee4927 100644 --- a/images/package-sample-IosevkaTermSS14.dark.svg +++ b/images/package-sample-IosevkaTermSS14.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS14.light.svg b/images/package-sample-IosevkaTermSS14.light.svg index 712670920a..7933d02132 100644 --- a/images/package-sample-IosevkaTermSS14.light.svg +++ b/images/package-sample-IosevkaTermSS14.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS15.dark.svg b/images/package-sample-IosevkaTermSS15.dark.svg index 7753656b66..3bfd70ce4a 100644 --- a/images/package-sample-IosevkaTermSS15.dark.svg +++ b/images/package-sample-IosevkaTermSS15.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS15.light.svg b/images/package-sample-IosevkaTermSS15.light.svg index 81ed5a1bd5..82fa991e5b 100644 --- a/images/package-sample-IosevkaTermSS15.light.svg +++ b/images/package-sample-IosevkaTermSS15.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS16.dark.svg b/images/package-sample-IosevkaTermSS16.dark.svg index 93d053cbf6..4b4dfc2eeb 100644 --- a/images/package-sample-IosevkaTermSS16.dark.svg +++ b/images/package-sample-IosevkaTermSS16.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS16.light.svg b/images/package-sample-IosevkaTermSS16.light.svg index 80cba8a1ae..e546336569 100644 --- a/images/package-sample-IosevkaTermSS16.light.svg +++ b/images/package-sample-IosevkaTermSS16.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS17.dark.svg b/images/package-sample-IosevkaTermSS17.dark.svg index e034571c79..6b1d6b66fb 100644 --- a/images/package-sample-IosevkaTermSS17.dark.svg +++ b/images/package-sample-IosevkaTermSS17.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS17.light.svg b/images/package-sample-IosevkaTermSS17.light.svg index 103d157202..3f813bc5d9 100644 --- a/images/package-sample-IosevkaTermSS17.light.svg +++ b/images/package-sample-IosevkaTermSS17.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS18.dark.svg b/images/package-sample-IosevkaTermSS18.dark.svg index e1b1d26c20..f3db574c22 100644 --- a/images/package-sample-IosevkaTermSS18.dark.svg +++ b/images/package-sample-IosevkaTermSS18.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS18.light.svg b/images/package-sample-IosevkaTermSS18.light.svg index 5739cdaa2f..bef91375dd 100644 --- a/images/package-sample-IosevkaTermSS18.light.svg +++ b/images/package-sample-IosevkaTermSS18.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSlab.dark.svg b/images/package-sample-IosevkaTermSlab.dark.svg index 4724d26456..d34f0e1ab2 100644 --- a/images/package-sample-IosevkaTermSlab.dark.svg +++ b/images/package-sample-IosevkaTermSlab.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/package-sample-IosevkaTermSlab.light.svg b/images/package-sample-IosevkaTermSlab.light.svg index 02ea777e46..854e3e494d 100644 --- a/images/package-sample-IosevkaTermSlab.light.svg +++ b/images/package-sample-IosevkaTermSlab.light.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-off-0.dark.svg b/images/ss-i-off-0.dark.svg index ac12753c27..4ad2a581c2 100644 --- a/images/ss-i-off-0.dark.svg +++ b/images/ss-i-off-0.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-off-0.light.svg b/images/ss-i-off-0.light.svg index fe1a3a8f30..a89136074a 100644 --- a/images/ss-i-off-0.light.svg +++ b/images/ss-i-off-0.light.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss01-1.dark.svg b/images/ss-i-ss01-1.dark.svg index 353e76436d..8c4756d851 100644 --- a/images/ss-i-ss01-1.dark.svg +++ b/images/ss-i-ss01-1.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss01-1.light.svg b/images/ss-i-ss01-1.light.svg index 7810adf4e1..f981c58049 100644 --- a/images/ss-i-ss01-1.light.svg +++ b/images/ss-i-ss01-1.light.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss02-1.dark.svg b/images/ss-i-ss02-1.dark.svg index 97a05e51b6..e104430087 100644 --- a/images/ss-i-ss02-1.dark.svg +++ b/images/ss-i-ss02-1.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -64,7 +64,7 @@ - + @@ -75,7 +75,7 @@ - + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss02-1.light.svg b/images/ss-i-ss02-1.light.svg index 73645ae992..2d63926618 100644 --- a/images/ss-i-ss02-1.light.svg +++ b/images/ss-i-ss02-1.light.svg @@ -36,8 +36,8 @@ - - + + @@ -64,7 +64,7 @@ - + @@ -75,7 +75,7 @@ - + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss03-1.dark.svg b/images/ss-i-ss03-1.dark.svg index 5db7fd7d79..ae4e001072 100644 --- a/images/ss-i-ss03-1.dark.svg +++ b/images/ss-i-ss03-1.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss03-1.light.svg b/images/ss-i-ss03-1.light.svg index 0a2e33fa60..f78b5cc75f 100644 --- a/images/ss-i-ss03-1.light.svg +++ b/images/ss-i-ss03-1.light.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss04-1.dark.svg b/images/ss-i-ss04-1.dark.svg index f2e33cd6b4..fcde00c191 100644 --- a/images/ss-i-ss04-1.dark.svg +++ b/images/ss-i-ss04-1.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss04-1.light.svg b/images/ss-i-ss04-1.light.svg index ddde9220ee..e72e6c4465 100644 --- a/images/ss-i-ss04-1.light.svg +++ b/images/ss-i-ss04-1.light.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss05-1.dark.svg b/images/ss-i-ss05-1.dark.svg index 84507c3dc3..44c55cb3a4 100644 --- a/images/ss-i-ss05-1.dark.svg +++ b/images/ss-i-ss05-1.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss05-1.light.svg b/images/ss-i-ss05-1.light.svg index 54ea870e62..0840baf720 100644 --- a/images/ss-i-ss05-1.light.svg +++ b/images/ss-i-ss05-1.light.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss06-1.dark.svg b/images/ss-i-ss06-1.dark.svg index 73b3b29e84..8b35ab9cf1 100644 --- a/images/ss-i-ss06-1.dark.svg +++ b/images/ss-i-ss06-1.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss06-1.light.svg b/images/ss-i-ss06-1.light.svg index 4f100845f6..755033e04d 100644 --- a/images/ss-i-ss06-1.light.svg +++ b/images/ss-i-ss06-1.light.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss07-1.dark.svg b/images/ss-i-ss07-1.dark.svg index 4a3591476c..73a1371f50 100644 --- a/images/ss-i-ss07-1.dark.svg +++ b/images/ss-i-ss07-1.dark.svg @@ -37,7 +37,7 @@ - + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss07-1.light.svg b/images/ss-i-ss07-1.light.svg index 315179c9ea..7ea7490ee5 100644 --- a/images/ss-i-ss07-1.light.svg +++ b/images/ss-i-ss07-1.light.svg @@ -37,7 +37,7 @@ - + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss08-1.dark.svg b/images/ss-i-ss08-1.dark.svg index 0e30316293..be349d3ae0 100644 --- a/images/ss-i-ss08-1.dark.svg +++ b/images/ss-i-ss08-1.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss08-1.light.svg b/images/ss-i-ss08-1.light.svg index daefafc9d6..919efa6876 100644 --- a/images/ss-i-ss08-1.light.svg +++ b/images/ss-i-ss08-1.light.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss09-1.dark.svg b/images/ss-i-ss09-1.dark.svg index d6e5520584..97e054e9c8 100644 --- a/images/ss-i-ss09-1.dark.svg +++ b/images/ss-i-ss09-1.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss09-1.light.svg b/images/ss-i-ss09-1.light.svg index e1a3b73e46..dab3acc0f3 100644 --- a/images/ss-i-ss09-1.light.svg +++ b/images/ss-i-ss09-1.light.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss10-1.dark.svg b/images/ss-i-ss10-1.dark.svg index 126f620cfa..db538c3622 100644 --- a/images/ss-i-ss10-1.dark.svg +++ b/images/ss-i-ss10-1.dark.svg @@ -37,7 +37,7 @@ - + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss10-1.light.svg b/images/ss-i-ss10-1.light.svg index 41fed29cea..cd2016b952 100644 --- a/images/ss-i-ss10-1.light.svg +++ b/images/ss-i-ss10-1.light.svg @@ -37,7 +37,7 @@ - + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss11-1.dark.svg b/images/ss-i-ss11-1.dark.svg index 3644ceee18..4fe3ecea67 100644 --- a/images/ss-i-ss11-1.dark.svg +++ b/images/ss-i-ss11-1.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss11-1.light.svg b/images/ss-i-ss11-1.light.svg index 524906c4e4..92bb75216c 100644 --- a/images/ss-i-ss11-1.light.svg +++ b/images/ss-i-ss11-1.light.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss12-1.dark.svg b/images/ss-i-ss12-1.dark.svg index 1e3e7dc497..35df8fe4f6 100644 --- a/images/ss-i-ss12-1.dark.svg +++ b/images/ss-i-ss12-1.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss12-1.light.svg b/images/ss-i-ss12-1.light.svg index b96909af0c..fd6441155c 100644 --- a/images/ss-i-ss12-1.light.svg +++ b/images/ss-i-ss12-1.light.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss13-1.dark.svg b/images/ss-i-ss13-1.dark.svg index f0cddf6173..79e04cb31d 100644 --- a/images/ss-i-ss13-1.dark.svg +++ b/images/ss-i-ss13-1.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss13-1.light.svg b/images/ss-i-ss13-1.light.svg index 8e48f6fc12..85675db9f0 100644 --- a/images/ss-i-ss13-1.light.svg +++ b/images/ss-i-ss13-1.light.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss14-1.dark.svg b/images/ss-i-ss14-1.dark.svg index ea0f97b41a..ba5e9f3b4a 100644 --- a/images/ss-i-ss14-1.dark.svg +++ b/images/ss-i-ss14-1.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss14-1.light.svg b/images/ss-i-ss14-1.light.svg index ed4834ab7d..e327bd2b6f 100644 --- a/images/ss-i-ss14-1.light.svg +++ b/images/ss-i-ss14-1.light.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss15-1.dark.svg b/images/ss-i-ss15-1.dark.svg index 1dcbbb5d86..c13b2d5dc1 100644 --- a/images/ss-i-ss15-1.dark.svg +++ b/images/ss-i-ss15-1.dark.svg @@ -37,7 +37,7 @@ - + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss15-1.light.svg b/images/ss-i-ss15-1.light.svg index dbf4955e89..d5ff8969c2 100644 --- a/images/ss-i-ss15-1.light.svg +++ b/images/ss-i-ss15-1.light.svg @@ -37,7 +37,7 @@ - + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss16-1.dark.svg b/images/ss-i-ss16-1.dark.svg index 3e45fae45b..c7abc0a768 100644 --- a/images/ss-i-ss16-1.dark.svg +++ b/images/ss-i-ss16-1.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss16-1.light.svg b/images/ss-i-ss16-1.light.svg index ac08ba59af..af7888d78c 100644 --- a/images/ss-i-ss16-1.light.svg +++ b/images/ss-i-ss16-1.light.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss17-1.dark.svg b/images/ss-i-ss17-1.dark.svg index 753ffa4f75..f1f523b37d 100644 --- a/images/ss-i-ss17-1.dark.svg +++ b/images/ss-i-ss17-1.dark.svg @@ -37,7 +37,7 @@ - + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss17-1.light.svg b/images/ss-i-ss17-1.light.svg index 3a5ca870ae..19b0d88e2f 100644 --- a/images/ss-i-ss17-1.light.svg +++ b/images/ss-i-ss17-1.light.svg @@ -37,7 +37,7 @@ - + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss18-1.dark.svg b/images/ss-i-ss18-1.dark.svg index b8e13b8ed6..6e864b83bb 100644 --- a/images/ss-i-ss18-1.dark.svg +++ b/images/ss-i-ss18-1.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss18-1.light.svg b/images/ss-i-ss18-1.light.svg index 46a2a7bebe..2cdbf63058 100644 --- a/images/ss-i-ss18-1.light.svg +++ b/images/ss-i-ss18-1.light.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss20-1.dark.svg b/images/ss-i-ss20-1.dark.svg index d577cd28db..726c5fb016 100644 --- a/images/ss-i-ss20-1.dark.svg +++ b/images/ss-i-ss20-1.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-i-ss20-1.light.svg b/images/ss-i-ss20-1.light.svg index 2079a71b5d..ab03baa604 100644 --- a/images/ss-i-ss20-1.light.svg +++ b/images/ss-i-ss20-1.light.svg @@ -36,8 +36,8 @@ - - + + @@ -85,7 +85,7 @@ - + diff --git a/images/ss-u-off-0.dark.svg b/images/ss-u-off-0.dark.svg index 8fc3b1ec50..b9041489d8 100644 --- a/images/ss-u-off-0.dark.svg +++ b/images/ss-u-off-0.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-off-0.light.svg b/images/ss-u-off-0.light.svg index a8580971a3..e8a6cd232b 100644 --- a/images/ss-u-off-0.light.svg +++ b/images/ss-u-off-0.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss01-1.dark.svg b/images/ss-u-ss01-1.dark.svg index 90a1e86261..de91f14aec 100644 --- a/images/ss-u-ss01-1.dark.svg +++ b/images/ss-u-ss01-1.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss01-1.light.svg b/images/ss-u-ss01-1.light.svg index c70861c5e7..ad1b142d60 100644 --- a/images/ss-u-ss01-1.light.svg +++ b/images/ss-u-ss01-1.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss02-1.dark.svg b/images/ss-u-ss02-1.dark.svg index 516be44746..110d817660 100644 --- a/images/ss-u-ss02-1.dark.svg +++ b/images/ss-u-ss02-1.dark.svg @@ -36,8 +36,8 @@ - - + + @@ -64,7 +64,7 @@ - + @@ -75,7 +75,7 @@ - + diff --git a/images/ss-u-ss02-1.light.svg b/images/ss-u-ss02-1.light.svg index bded5f5a75..410cbd3262 100644 --- a/images/ss-u-ss02-1.light.svg +++ b/images/ss-u-ss02-1.light.svg @@ -36,8 +36,8 @@ - - + + @@ -64,7 +64,7 @@ - + @@ -75,7 +75,7 @@ - + diff --git a/images/ss-u-ss03-1.dark.svg b/images/ss-u-ss03-1.dark.svg index 5f47399cfa..70cd09571c 100644 --- a/images/ss-u-ss03-1.dark.svg +++ b/images/ss-u-ss03-1.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss03-1.light.svg b/images/ss-u-ss03-1.light.svg index 5cf86940d7..487c870cb8 100644 --- a/images/ss-u-ss03-1.light.svg +++ b/images/ss-u-ss03-1.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss04-1.dark.svg b/images/ss-u-ss04-1.dark.svg index 28f2dc6be0..b5bd423cb1 100644 --- a/images/ss-u-ss04-1.dark.svg +++ b/images/ss-u-ss04-1.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss04-1.light.svg b/images/ss-u-ss04-1.light.svg index 89084e1426..77dc78d563 100644 --- a/images/ss-u-ss04-1.light.svg +++ b/images/ss-u-ss04-1.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss05-1.dark.svg b/images/ss-u-ss05-1.dark.svg index 70eb3398e8..c1eda4204d 100644 --- a/images/ss-u-ss05-1.dark.svg +++ b/images/ss-u-ss05-1.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss05-1.light.svg b/images/ss-u-ss05-1.light.svg index 16479e9c5f..7ffd147beb 100644 --- a/images/ss-u-ss05-1.light.svg +++ b/images/ss-u-ss05-1.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss06-1.dark.svg b/images/ss-u-ss06-1.dark.svg index 7b74544f29..2f329064da 100644 --- a/images/ss-u-ss06-1.dark.svg +++ b/images/ss-u-ss06-1.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss06-1.light.svg b/images/ss-u-ss06-1.light.svg index eeb9493471..ed8c49d4e9 100644 --- a/images/ss-u-ss06-1.light.svg +++ b/images/ss-u-ss06-1.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss07-1.dark.svg b/images/ss-u-ss07-1.dark.svg index bb880dd130..8fa62b83cc 100644 --- a/images/ss-u-ss07-1.dark.svg +++ b/images/ss-u-ss07-1.dark.svg @@ -37,7 +37,7 @@ - + diff --git a/images/ss-u-ss07-1.light.svg b/images/ss-u-ss07-1.light.svg index 3e04f3ef7a..43b7121b7b 100644 --- a/images/ss-u-ss07-1.light.svg +++ b/images/ss-u-ss07-1.light.svg @@ -37,7 +37,7 @@ - + diff --git a/images/ss-u-ss08-1.dark.svg b/images/ss-u-ss08-1.dark.svg index 4b3e6dfe3e..44a1678e68 100644 --- a/images/ss-u-ss08-1.dark.svg +++ b/images/ss-u-ss08-1.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss08-1.light.svg b/images/ss-u-ss08-1.light.svg index 27790c6848..105934e938 100644 --- a/images/ss-u-ss08-1.light.svg +++ b/images/ss-u-ss08-1.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss09-1.dark.svg b/images/ss-u-ss09-1.dark.svg index 0addd15c51..672ba712f4 100644 --- a/images/ss-u-ss09-1.dark.svg +++ b/images/ss-u-ss09-1.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss09-1.light.svg b/images/ss-u-ss09-1.light.svg index 45101f7780..e22912f6c6 100644 --- a/images/ss-u-ss09-1.light.svg +++ b/images/ss-u-ss09-1.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss10-1.dark.svg b/images/ss-u-ss10-1.dark.svg index 70cc193f97..6c9f1ecba9 100644 --- a/images/ss-u-ss10-1.dark.svg +++ b/images/ss-u-ss10-1.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss10-1.light.svg b/images/ss-u-ss10-1.light.svg index 04ccb67e53..a59c289fa2 100644 --- a/images/ss-u-ss10-1.light.svg +++ b/images/ss-u-ss10-1.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss11-1.dark.svg b/images/ss-u-ss11-1.dark.svg index 6ba1188eb5..1edf4a4ae5 100644 --- a/images/ss-u-ss11-1.dark.svg +++ b/images/ss-u-ss11-1.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss11-1.light.svg b/images/ss-u-ss11-1.light.svg index 80a0931a1b..224be30589 100644 --- a/images/ss-u-ss11-1.light.svg +++ b/images/ss-u-ss11-1.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss12-1.dark.svg b/images/ss-u-ss12-1.dark.svg index 5c099525f2..21d4b73e7d 100644 --- a/images/ss-u-ss12-1.dark.svg +++ b/images/ss-u-ss12-1.dark.svg @@ -37,7 +37,7 @@ - + diff --git a/images/ss-u-ss12-1.light.svg b/images/ss-u-ss12-1.light.svg index 9bafec3795..46ff406cc2 100644 --- a/images/ss-u-ss12-1.light.svg +++ b/images/ss-u-ss12-1.light.svg @@ -37,7 +37,7 @@ - + diff --git a/images/ss-u-ss13-1.dark.svg b/images/ss-u-ss13-1.dark.svg index 0a78548a7d..34dda47643 100644 --- a/images/ss-u-ss13-1.dark.svg +++ b/images/ss-u-ss13-1.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss13-1.light.svg b/images/ss-u-ss13-1.light.svg index 08e1fa8b05..9db187814a 100644 --- a/images/ss-u-ss13-1.light.svg +++ b/images/ss-u-ss13-1.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss14-1.dark.svg b/images/ss-u-ss14-1.dark.svg index 1bbfb7bd1d..973f8261bc 100644 --- a/images/ss-u-ss14-1.dark.svg +++ b/images/ss-u-ss14-1.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss14-1.light.svg b/images/ss-u-ss14-1.light.svg index 916b749e52..1e19bf5af7 100644 --- a/images/ss-u-ss14-1.light.svg +++ b/images/ss-u-ss14-1.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss15-1.dark.svg b/images/ss-u-ss15-1.dark.svg index a47cb1c034..eee443f960 100644 --- a/images/ss-u-ss15-1.dark.svg +++ b/images/ss-u-ss15-1.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss15-1.light.svg b/images/ss-u-ss15-1.light.svg index fcc8608821..8eb16293a9 100644 --- a/images/ss-u-ss15-1.light.svg +++ b/images/ss-u-ss15-1.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss16-1.dark.svg b/images/ss-u-ss16-1.dark.svg index 1f3f8dfe38..6563ae4ea8 100644 --- a/images/ss-u-ss16-1.dark.svg +++ b/images/ss-u-ss16-1.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss16-1.light.svg b/images/ss-u-ss16-1.light.svg index 292e67d74a..158fcd2ffb 100644 --- a/images/ss-u-ss16-1.light.svg +++ b/images/ss-u-ss16-1.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss17-1.dark.svg b/images/ss-u-ss17-1.dark.svg index ff8830a583..f96248f752 100644 --- a/images/ss-u-ss17-1.dark.svg +++ b/images/ss-u-ss17-1.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss17-1.light.svg b/images/ss-u-ss17-1.light.svg index 69ea506ff6..6ae76d7d18 100644 --- a/images/ss-u-ss17-1.light.svg +++ b/images/ss-u-ss17-1.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss18-1.dark.svg b/images/ss-u-ss18-1.dark.svg index c263af14ad..b8ab374444 100644 --- a/images/ss-u-ss18-1.dark.svg +++ b/images/ss-u-ss18-1.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss18-1.light.svg b/images/ss-u-ss18-1.light.svg index 6cf018fe4c..b3f137cd8e 100644 --- a/images/ss-u-ss18-1.light.svg +++ b/images/ss-u-ss18-1.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss20-1.dark.svg b/images/ss-u-ss20-1.dark.svg index 640d643c75..2ac388b388 100644 --- a/images/ss-u-ss20-1.dark.svg +++ b/images/ss-u-ss20-1.dark.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/ss-u-ss20-1.light.svg b/images/ss-u-ss20-1.light.svg index 11550a7f8e..787203850f 100644 --- a/images/ss-u-ss20-1.light.svg +++ b/images/ss-u-ss20-1.light.svg @@ -36,8 +36,8 @@ - - + + diff --git a/images/weights.dark.svg b/images/weights.dark.svg index 069d110f5b..424611a3ea 100644 --- a/images/weights.dark.svg +++ b/images/weights.dark.svg @@ -11,7 +11,7 @@ - + @@ -25,7 +25,7 @@ - + @@ -46,7 +46,7 @@ - + @@ -60,7 +60,7 @@ - + @@ -81,7 +81,7 @@ - + @@ -95,7 +95,7 @@ - + @@ -116,7 +116,7 @@ - + @@ -130,7 +130,7 @@ - + @@ -151,7 +151,7 @@ - + @@ -165,7 +165,7 @@ - + @@ -186,7 +186,7 @@ - + @@ -200,7 +200,7 @@ - + @@ -221,7 +221,7 @@ - + @@ -235,7 +235,7 @@ - + @@ -256,7 +256,7 @@ - + @@ -270,7 +270,7 @@ - + @@ -291,7 +291,7 @@ - + @@ -305,7 +305,7 @@ - + diff --git a/images/weights.light.svg b/images/weights.light.svg index c505f75930..b57578d7ec 100644 --- a/images/weights.light.svg +++ b/images/weights.light.svg @@ -11,7 +11,7 @@ - + @@ -25,7 +25,7 @@ - + @@ -46,7 +46,7 @@ - + @@ -60,7 +60,7 @@ - + @@ -81,7 +81,7 @@ - + @@ -95,7 +95,7 @@ - + @@ -116,7 +116,7 @@ - + @@ -130,7 +130,7 @@ - + @@ -151,7 +151,7 @@ - + @@ -165,7 +165,7 @@ - + @@ -186,7 +186,7 @@ - + @@ -200,7 +200,7 @@ - + @@ -221,7 +221,7 @@ - + @@ -235,7 +235,7 @@ - + @@ -256,7 +256,7 @@ - + @@ -270,7 +270,7 @@ - + @@ -291,7 +291,7 @@ - + @@ -305,7 +305,7 @@ - + diff --git a/package-lock.json b/package-lock.json index a23dbe5c34..289a1439ca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@iosevka/monorepo", - "version": "28.1.0", + "version": "29.0.0-beta.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@iosevka/monorepo", - "version": "28.1.0", + "version": "29.0.0-beta.1", "workspaces": [ "packages/*", "tools/*" @@ -24,7 +24,7 @@ "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", - "patel": "^0.39.0", + "patel": "^0.40.0", "prettier": "^3.1.1" }, "engines": { @@ -812,15 +812,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", - "dev": true, - "engines": { - "node": ">=0.4.2" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -955,6 +946,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/astring": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", + "integrity": "sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==", + "dev": true, + "bin": { + "astring": "bin/astring" + } + }, "node_modules/available-typed-arrays": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz", @@ -1082,14 +1082,16 @@ "integrity": "sha512-knglhjQX5ihNj/XCIs6zCHrTemdvHY3LPZP9XB2nq2/3igyYMFueFXtfp84baJvEE+f8pO1ZS4UVeEgmLnAprQ==" }, "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, "node_modules/color-convert": { @@ -1401,27 +1403,6 @@ "source-map": "~0.6.1" } }, - "node_modules/escope": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escope/-/escope-1.0.3.tgz", - "integrity": "sha512-PgST3E92KAnuUX/4PXwpE9RI8jubyyTGIN73mfhl0XP4H+hiA7JqvhXNfffs+naSk41Eipq/klcmoGsCrjxPlQ==", - "dev": true, - "dependencies": { - "estraverse": "^2.0.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/escope/node_modules/estraverse": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-2.0.0.tgz", - "integrity": "sha512-3liNs3aDBUmf9Hl3YRLqz7Zop0iiTxWaa/ayuxoVS441zjjTPowZJ/uH3y5yhPcXmrLj2rS6Pvu7tfOC7kT61A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint": { "version": "8.56.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", @@ -1624,149 +1605,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/esmangle": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esmangle/-/esmangle-1.0.1.tgz", - "integrity": "sha512-+vgj0CirCf7fiZ5Cy1VH7ZovC1qh42mB6GBVN3cxLwZgY1CqIvu9xOdDW8il8Y8ym+fiFLCM3crZFku8rBNLOA==", - "dev": true, - "dependencies": { - "escodegen": "~1.3.2", - "escope": "~1.0.1", - "esprima": "~1.1.1", - "esshorten": "~1.1.0", - "estraverse": "~1.5.0", - "esutils": "~ 1.0.0", - "optionator": "~0.3.0", - "source-map": "~0.1.33" - }, - "bin": { - "esmangle": "bin/esmangle.js" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/esmangle/node_modules/escodegen": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.3.3.tgz", - "integrity": "sha512-z9FWgKc48wjMlpzF5ymKS1AF8OIgnKLp9VyN7KbdtyrP/9lndwUFqCtMm+TAJmJf7KJFFYc4cFJfVTTGkKEwsA==", - "dev": true, - "dependencies": { - "esprima": "~1.1.1", - "estraverse": "~1.5.0", - "esutils": "~1.0.0" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=0.10.0" - }, - "optionalDependencies": { - "source-map": "~0.1.33" - } - }, - "node_modules/esmangle/node_modules/esprima": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.1.1.tgz", - "integrity": "sha512-qxxB994/7NtERxgXdFgLHIs9M6bhLXc6qtUmWZ3L8+gTQ9qaoyki2887P2IqAYsoENyr8SUbTutStDniOHSDHg==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/esmangle/node_modules/estraverse": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", - "integrity": "sha512-FpCjJDfmo3vsc/1zKSeqR5k42tcIhxFIlvq+h9j0fO2q/h2uLKyweq7rYJ+0CoVvrGQOxIS5wyBrW/+vF58BUQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/esmangle/node_modules/esutils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", - "integrity": "sha512-x/iYH53X3quDwfHRz4y8rn4XcEwwCJeWsul9pF1zldMbGtgOtMNBEOuYWwB1EQlK2LRa1fev3YAgym/RElp5Cg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/esmangle/node_modules/fast-levenshtein": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.0.7.tgz", - "integrity": "sha512-hYsfI0s4lfQ2rHVFKXwAr/L/ZSbq9TZwgXtZqW7ANcn9o9GKvcbWxOnxx7jykXf/Ezv1V8TvaBEKcGK7DWKX5A==", - "dev": true - }, - "node_modules/esmangle/node_modules/levn": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.2.5.tgz", - "integrity": "sha512-mvp+NO++YH0B+e8cC/SvJxk6k5Z9Ngd3iXuz7tmT8vZCyQZj/5SI1GkFOiZGGPkm5wWGI9SUrqiAfPq7BJH+0w==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.0", - "type-check": "~0.3.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/esmangle/node_modules/optionator": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.3.0.tgz", - "integrity": "sha512-qM6AKy0HNNRczFIFciGVSkh6H5yu8kC2hdgqElG8pM6IvQwFYVBd3aUrqjsgZtauuGZr2u/Nf+wLzlZgeCqpSQ==", - "dev": true, - "dependencies": { - "deep-is": "~0.1.2", - "fast-levenshtein": "~1.0.0", - "levn": "~0.2.4", - "prelude-ls": "~1.1.0", - "type-check": "~0.3.1", - "wordwrap": "~0.0.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/esmangle/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/esmangle/node_modules/source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==", - "dev": true, - "dependencies": { - "amdefine": ">=0.0.4" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/esmangle/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -1820,29 +1658,6 @@ "node": ">=4.0" } }, - "node_modules/esshorten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/esshorten/-/esshorten-1.1.1.tgz", - "integrity": "sha512-jvHUQncAuUI/HOzw1a94cGDdgyRUUcVDABU24X2TRb+y4G3ohSllMKjG+ROQVjj5OEVhXYwwsV+OpLOJ63snEA==", - "dev": true, - "dependencies": { - "escope": "~1.0.1", - "estraverse": "~4.1.1", - "esutils": "~2.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/esshorten/node_modules/estraverse": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz", - "integrity": "sha512-r3gEa6vc6lGQdrXfo834EaaqnOzYmik8JPg8VB95acIMZRjqaHI0/WMZFoMBGPtS+HCgylwTLoc4Y5yl0owOHQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", @@ -2996,21 +2811,30 @@ } }, "node_modules/patel": { - "version": "0.39.0", - "resolved": "https://registry.npmjs.org/patel/-/patel-0.39.0.tgz", - "integrity": "sha512-LUM8AqOCmDmBkIrLEiZ5AEp1zn1IEFuASyOr9HrRLSS9Cruk977jFJ9XDmXAUfGNY8LklhmTaxeNhJp6LusT7w==", + "version": "0.40.0", + "resolved": "https://registry.npmjs.org/patel/-/patel-0.40.0.tgz", + "integrity": "sha512-1ejbpiNxta1sKH1SOVZ/4cKGhAcEeT8Lzvk+E5qBPSGHO/JT6sNYOZZCLQYWOSh/M2B01XPOeJNmGNKrjn6GTw==", "dev": true, "dependencies": { - "escodegen": "^2.0.0", - "esmangle": "^1.0.1", - "patrisika": "^0.25.0", + "astring": "^1.8.6", + "patrisika": "^0.26.0", "resumer": "*", - "yargs": "^16.1.0" + "source-map": "^0.7.4", + "yargs": "^17.7.2" }, "bin": { "patel-c": "bin/patel-c" } }, + "node_modules/patel/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -3045,9 +2869,9 @@ "dev": true }, "node_modules/patrisika": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/patrisika/-/patrisika-0.25.0.tgz", - "integrity": "sha512-Kevy01SFkhzON30J1nKVzHPdoJmkmRY2HG+OIFeI/IT4eBveQwbrE3Q2beEx9t02HhMyAlnYFXt0z5wNY6mePA==", + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/patrisika/-/patrisika-0.26.0.tgz", + "integrity": "sha512-ZzzasIrsgKFTolnOyyDcMVcYI6RJ+mpUJFv2b6nA6vPe9/ucBqCztQRsPZkDd/FtTwbA6ms/mHNcACcux6AjEQ==", "dev": true, "dependencies": { "patrisika-scopes": "^0.12.0" @@ -3751,19 +3575,6 @@ "node": ">= 14.0.0" } }, - "node_modules/verda/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/verda/node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -3783,31 +3594,6 @@ "node": ">= 8" } }, - "node_modules/verda/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/verda/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "engines": { - "node": ">=12" - } - }, "node_modules/wawoff2": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/wawoff2/-/wawoff2-2.0.1.tgz", @@ -3881,15 +3667,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -3934,30 +3711,28 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/yocto-queue": { @@ -3974,16 +3749,16 @@ }, "packages/font": { "name": "@iosevka/font", - "version": "28.1.0", + "version": "29.0.0-beta.1", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/font-glyphs": "28.1.0", - "@iosevka/font-otl": "28.1.0", - "@iosevka/geometry": "28.1.0", - "@iosevka/geometry-cache": "28.1.0", - "@iosevka/glyph": "28.1.0", - "@iosevka/param": "28.1.0", - "@iosevka/util": "28.1.0", + "@iosevka/font-glyphs": "29.0.0-beta.1", + "@iosevka/font-otl": "29.0.0-beta.1", + "@iosevka/geometry": "29.0.0-beta.1", + "@iosevka/geometry-cache": "29.0.0-beta.1", + "@iosevka/glyph": "29.0.0-beta.1", + "@iosevka/param": "29.0.0-beta.1", + "@iosevka/util": "29.0.0-beta.1", "harfbuzzjs": "^0.3.4", "ot-builder": "^1.7.3", "semver": "^7.5.4" @@ -3991,100 +3766,100 @@ }, "packages/font-glyphs": { "name": "@iosevka/font-glyphs", - "version": "28.1.0", + "version": "29.0.0-beta.1", "dependencies": { - "@iosevka/font-kits": "28.1.0", - "@iosevka/geometry": "28.1.0", - "@iosevka/geometry-cache": "28.1.0", - "@iosevka/glyph": "28.1.0", - "@iosevka/util": "28.1.0", + "@iosevka/font-kits": "29.0.0-beta.1", + "@iosevka/geometry": "29.0.0-beta.1", + "@iosevka/geometry-cache": "29.0.0-beta.1", + "@iosevka/glyph": "29.0.0-beta.1", + "@iosevka/util": "29.0.0-beta.1", "typo-geom": "^0.14.0" } }, "packages/font-kits": { "name": "@iosevka/font-kits", - "version": "28.1.0", + "version": "29.0.0-beta.1", "dependencies": { - "@iosevka/geometry": "28.1.0", - "@iosevka/glyph": "28.1.0", - "@iosevka/util": "28.1.0" + "@iosevka/geometry": "29.0.0-beta.1", + "@iosevka/glyph": "29.0.0-beta.1", + "@iosevka/util": "29.0.0-beta.1" } }, "packages/font-otl": { "name": "@iosevka/font-otl", - "version": "28.1.0", + "version": "29.0.0-beta.1", "dependencies": { - "@iosevka/font-glyphs": "28.1.0", - "@iosevka/glyph": "28.1.0", + "@iosevka/font-glyphs": "29.0.0-beta.1", + "@iosevka/glyph": "29.0.0-beta.1", "toposort": "^2.0.2" } }, "packages/geometry": { "name": "@iosevka/geometry", - "version": "28.1.0", + "version": "29.0.0-beta.1", "dependencies": { - "@iosevka/util": "28.1.0", + "@iosevka/util": "29.0.0-beta.1", "spiro": "^3.0.0", "typo-geom": "^0.14.0" } }, "packages/geometry-cache": { "name": "@iosevka/geometry-cache", - "version": "28.1.0", + "version": "29.0.0-beta.1", "dependencies": { - "@iosevka/geometry": "28.1.0", + "@iosevka/geometry": "29.0.0-beta.1", "@msgpack/msgpack": "^2.8.0" } }, "packages/glyph": { "name": "@iosevka/glyph", - "version": "28.1.0", + "version": "29.0.0-beta.1", "dependencies": { - "@iosevka/geometry": "28.1.0" + "@iosevka/geometry": "29.0.0-beta.1" } }, "packages/param": { "name": "@iosevka/param", - "version": "28.1.0", + "version": "29.0.0-beta.1", "dependencies": { - "@iosevka/util": "28.1.0" + "@iosevka/util": "29.0.0-beta.1" } }, "packages/util": { "name": "@iosevka/util", - "version": "28.1.0" + "version": "29.0.0-beta.1" }, "tools/amend-readme": { "name": "@iosevka/amend-readme", - "version": "28.1.0", + "version": "29.0.0-beta.1", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "28.1.0", + "@iosevka/param": "29.0.0-beta.1", "@unicode/unicode-15.1.0": "^1.5.2" } }, "tools/data-export": { "name": "@iosevka/data-export", - "version": "28.1.0", + "version": "29.0.0-beta.1", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "28.1.0", + "@iosevka/param": "29.0.0-beta.1", "@unicode/unicode-15.1.0": "^1.5.2", "cldr": "^7.5.0" } }, "tools/generate-samples": { "name": "@iosevka/generate-samples", - "version": "28.1.0", + "version": "29.0.0-beta.1", "dependencies": { - "@iosevka/data-export": "28.1.0" + "@iosevka/data-export": "29.0.0-beta.1" } }, "tools/misc": { "name": "@iosevka/misc", - "version": "28.1.0", + "version": "29.0.0-beta.1", "dependencies": { - "@iosevka/util": "28.1.0", + "@iosevka/util": "29.0.0-beta.1", "semver": "^7.5.4", "wawoff2": "^2.0.1" } diff --git a/package.json b/package.json index bed8890e8e..dacb4d78d5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/monorepo", - "version": "28.1.0", + "version": "29.0.0-beta.1", "workspaces": [ "packages/*", "tools/*" @@ -24,7 +24,7 @@ "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", - "patel": "^0.39.0", + "patel": "^0.40.0", "prettier": "^3.1.1" }, "engines": { diff --git a/packages/font-glyphs/package.json b/packages/font-glyphs/package.json index 3097fb63f2..2f4bd7c08e 100644 --- a/packages/font-glyphs/package.json +++ b/packages/font-glyphs/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font-glyphs", - "version": "28.1.0", + "version": "29.0.0-beta.1", "private": true, "exports": { ".": "./src/index.mjs", @@ -8,11 +8,11 @@ "./unicode-knowledge": "./src/meta/unicode-knowledge.mjs" }, "dependencies": { - "@iosevka/font-kits": "28.1.0", - "@iosevka/geometry": "28.1.0", - "@iosevka/geometry-cache": "28.1.0", - "@iosevka/glyph": "28.1.0", - "@iosevka/util": "28.1.0", + "@iosevka/font-kits": "29.0.0-beta.1", + "@iosevka/geometry": "29.0.0-beta.1", + "@iosevka/geometry-cache": "29.0.0-beta.1", + "@iosevka/glyph": "29.0.0-beta.1", + "@iosevka/util": "29.0.0-beta.1", "typo-geom": "^0.14.0" } } diff --git a/packages/font-glyphs/src/auto-build/transformed.ptl b/packages/font-glyphs/src/auto-build/transformed.ptl index 72b0a5994f..6f99c4917f 100644 --- a/packages/font-glyphs/src/auto-build/transformed.ptl +++ b/packages/font-glyphs/src/auto-build/transformed.ptl @@ -111,21 +111,6 @@ glyph-block Autobuild-Transformed : begin createSuperscripts 'sup' null : list list 0x00AA 'aSbRsbUnderlineBelow' list 0x00BA 'oSbRsbUnderlineBelow' - list 0x2070 'zero.lnum' - list 0x00B9 'one.lnum' - list 0x00B2 'two.lnum' - list 0x00B3 'three.lnum' - list 0x2074 'four.lnum' - list 0x2075 'five.lnum' - list 0x2076 'six.lnum' - list 0x2077 'seven.lnum' - list 0x2078 'eight.lnum' - list 0x2079 'nine.lnum' - list 0x207A 'plus' - list 0x207B 'minus' - list 0x207C 'equal' - list 0x207D 'parenLeft' - list 0x207E 'parenRight' list 0x02B0 'h' list 0x02B1 'hHookTop' list 0x02B2 'j' @@ -143,6 +128,11 @@ glyph-block Autobuild-Transformed : begin list 0x02E3 'x' list 0x02E4 'revGlottalStop' list 0x2071 'i' + list 0x207A 'plus' + list 0x207B 'minus' + list 0x207C 'equal' + list 0x207D 'parenLeft' + list 0x207E 'parenRight' list 0x207F 'n' list 0x1D43 'a' list 0x1D44 'turna' @@ -214,6 +204,7 @@ glyph-block Autobuild-Transformed : begin list 0x1DBE 'ezh' list 0x1DBF 'grek/theta' list 0x1D2C 'A' + list 0x1D2D 'AE' list 0x1D2E 'B' list 0x1D2F 'BBar' list 0x1D30 'D' @@ -352,24 +343,17 @@ glyph-block Autobuild-Transformed : begin list null 'seven.onum' list null 'eight.onum' list null 'nine.onum' - list null 'zero.lnum' - list null 'one.lnum' - list null 'two.lnum' - list null 'three.lnum' - list null 'four.lnum' - list null 'five.lnum' - list null 'six.lnum' - list null 'seven.lnum' - list null 'eight.lnum' - list null 'nine.lnum' - - do "superscript AE" - define { tnmAHalf jobsAHalf } : createSuperscripts 'sup' null { { null 'AE/AHalf' } } - define { tnmEHalf jobsEHalf } : createSuperscripts 'sup' null { { null 'AE/EHalf' } } - create-glyph 'sup{AE}' 0x1D2D : glyph-proc - include [refer-glyph tnmAHalf.('AE/AHalf')] AS_BASE ALSO_METRICS - include [refer-glyph tnmEHalf.('AE/EHalf')] - CvDecompose.set currentGlyph { tnmAHalf.('AE/AHalf') tnmEHalf.('AE/EHalf') } + list 0x2070 'zero.lnum' + list 0x00B9 'one.lnum' + list 0x00B2 'two.lnum' + list 0x00B3 'three.lnum' + list 0x2074 'four.lnum' + list 0x2075 'five.lnum' + list 0x2076 'six.lnum' + list 0x2077 'seven.lnum' + list 0x2078 'eight.lnum' + list 0x2079 'nine.lnum' + list null 'period' : where : [createSuperscripts prefix gr _records] : begin local {records relSets targetNameMap} : extendRelatedGlyphs prefix _records @@ -394,16 +378,6 @@ glyph-block Autobuild-Transformed : begin do createSubscripts 'sub' null : list - list 0x2080 'zero.lnum' - list 0x2081 'one.lnum' - list 0x2082 'two.lnum' - list 0x2083 'three.lnum' - list 0x2084 'four.lnum' - list 0x2085 'five.lnum' - list 0x2086 'six.lnum' - list 0x2087 'seven.lnum' - list 0x2088 'eight.lnum' - list 0x2089 'nine.lnum' list 0x208A 'plus' list 0x208B 'minus' list 0x208C 'equal' @@ -475,16 +449,17 @@ glyph-block Autobuild-Transformed : begin list null 'seven.onum' list null 'eight.onum' list null 'nine.onum' - list null 'zero.lnum' - list null 'one.lnum' - list null 'two.lnum' - list null 'three.lnum' - list null 'four.lnum' - list null 'five.lnum' - list null 'six.lnum' - list null 'seven.lnum' - list null 'eight.lnum' - list null 'nine.lnum' + list 0x2080 'zero.lnum' + list 0x2081 'one.lnum' + list 0x2082 'two.lnum' + list 0x2083 'three.lnum' + list 0x2084 'four.lnum' + list 0x2085 'five.lnum' + list 0x2086 'six.lnum' + list 0x2087 'seven.lnum' + list 0x2088 'eight.lnum' + list 0x2089 'nine.lnum' + list null 'period' : where : [createSubscripts prefix gr _records] : begin local {records relSets targetNameMap} : extendRelatedGlyphs prefix _records diff --git a/packages/font-glyphs/src/letter/latin-ext/ezh.ptl b/packages/font-glyphs/src/letter/latin-ext/ezh.ptl index df2d33a171..f147a7e915 100644 --- a/packages/font-glyphs/src/letter/latin-ext/ezh.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/ezh.ptl @@ -28,10 +28,6 @@ glyph-block Letter-Latin-Ezh : begin g4 (RightSB - OX) [mix yMidBar bot pArc] SerifedArcEnd.RtlRhs SB Middle bot Stroke hookDepth - define EZH-SLAB-NONE 0 - define EZH-SLAB-ALWAYS 1 - define EZH-SLAB-AUTO : if SLAB EZH-SLAB-ALWAYS EZH-SLAB-NONE - define [ConventionalStart top bot ezhLeft ezhRight yMidBar] : glyph-proc include : HBar.t SB ezhRight top include : dispiro @@ -54,8 +50,8 @@ glyph-block Letter-Latin-Ezh : begin spiro-outline corner (-Width) bot corner (-Width) (2 * top) - corner (ezhRight - xDiagWidth) (2 * top) - corner (ezhRight - xDiagWidth) (top - yFootHeight) + corner (ezhRight - xDiagWidth + 0.1) (2 * top) + corner (ezhRight - xDiagWidth + 0.1) (top - yFootHeight) corner (ezhLeft + xDiagWidth) yMidBar corner (ezhLeft + xDiagWidth) bot dispiro @@ -65,7 +61,7 @@ glyph-block Letter-Latin-Ezh : begin g2.right.mid (SB + xHookDepth) (top - O) [widths.rhs.heading Stroke Rightward] flat [mix (SB + xMockTailDepth) ezhRight kTop] (top - kTop * yTailDepth) curl [mix (SB + xMockTailDepth) ezhRight 4] (top - 4 * yTailDepth) - + include : VBar.r ezhRight top (top - yFootHeight) (xDiagWidth / HVContrast) include : dispiro corner ezhRight (top - yFootHeight) [widths.rhs (Stroke / HVContrast)] @@ -79,7 +75,7 @@ glyph-block Letter-Latin-Ezh : begin local-parameter : pRight -- 0.925 local-parameter : terminalShape -- StdTerminalShape local-parameter : isCursive -- false - local-parameter : serifShape -- EZH-SLAB-AUTO + local-parameter : isSerifed -- SLAB local yMidBar : [mix bot top [if isCursive 0.5 0.55]] + HalfStroke local ezhLeft : mix SB RightSB pLeft @@ -96,38 +92,34 @@ glyph-block Letter-Latin-Ezh : begin archv terminalShape top bot yMidBar - if serifShape : include : VSerif.dl SB top VJut + if isSerifed : include : VSerif.dl SB top VJut return : object yMidBar - define EzhConfig : SuffixCfg.weave - object # body - straight { false } - cursive { true } - object # serifs - "" { EZH-SLAB-NONE } # For cursive - serifless { EZH-SLAB-NONE } - serifed { EZH-SLAB-ALWAYS } + define EzhConfig : object + straightSerifless { false false } + straightTopSerifed { false true } + cursive { true false } - foreach { suffix { {isCursive} {serifShape} } } [pairs-of EzhConfig] : do + foreach { suffix { isCursive isSerifed } } [pairs-of EzhConfig] : do create-glyph "Ezh.\(suffix)" : glyph-proc include : MarkSet.capital - include : EzhShape CAP 0 (isCursive -- isCursive) (serifShape -- serifShape) + include : EzhShape CAP 0 (isCursive -- isCursive) (isSerifed -- isSerifed) create-glyph "smcpEzh.\(suffix)" : glyph-proc include : MarkSet.e - include : EzhShape XH 0 (isCursive -- isCursive) (serifShape -- serifShape) + include : EzhShape XH 0 (isCursive -- isCursive) (isSerifed -- isSerifed) create-glyph "ezh.\(suffix)" : glyph-proc include : MarkSet.p - include : EzhShape XH Descender (isCursive -- isCursive) (serifShape -- serifShape) + include : EzhShape XH Descender (isCursive -- isCursive) (isSerifed -- isSerifed) create-glyph "ezhTail.\(suffix)" : glyph-proc include : MarkSet.p local b : mix Descender XH 0.25 local [object yMidBar] : include : EzhShape XH b isCursive -- isCursive - serifShape -- serifShape + isSerifed -- isSerifed terminalShape -- [HooklessTerminalShape 0.5] local y : mix yMidBar b 0.5 include : dispiro @@ -147,7 +139,7 @@ glyph-block Letter-Latin-Ezh : begin local p : SmallArchDepthB / (SmallArchDepthA + SmallArchDepthB) local [object yMidBar] : include : EzhShape XH Descender isCursive -- isCursive - serifShape -- serifShape + isSerifed -- isSerifed terminalShape -- [HooklessTerminalShape p] local fine : AdviceStroke2 3 5 (XH - Descender) local rinner : (XH * 0.4 - fine * 1.5) / 2 @@ -163,7 +155,7 @@ glyph-block Letter-Latin-Ezh : begin include : MarkSet.p include : EzhShape XH 0 isCursive -- isCursive - serifShape -- serifShape + isSerifed -- isSerifed terminalShape -- RetroflexConnectionTerminal include : RetroflexHook.l SB 0 (yAttach -- Hook) @@ -226,7 +218,7 @@ glyph-block Letter-Latin-Ezh : begin include : dispiro corner ezhLeft (top - Stroke) [widths.lhs (Stroke / HVContrast)] corner ezhRight yMidBar [widths.rhs (Stroke / HVContrast)] - + include : dispiro widths.lhs flat ezhRight yMidBar [heading Leftward] diff --git a/packages/font-glyphs/src/letter/latin/lower-il.ptl b/packages/font-glyphs/src/letter/latin/lower-il.ptl index 08330ade9a..63480bf393 100644 --- a/packages/font-glyphs/src/letter/latin/lower-il.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-il.ptl @@ -8,7 +8,7 @@ glyph-module glyph-block Letter-Latin-Lower-I : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Mark-Adjustment : ExtendBelowBaseAnchors + glyph-block-import Mark-Adjustment : LeaningAnchor ExtendBelowBaseAnchors glyph-block-import Letter-Shared : CreateAccentedComposition CreateMultiAccentedComposition glyph-block-import Letter-Shared : CreateCommaCaronComposition CreateOgonekComposition glyph-block-import Letter-Shared : CreateTurnedLetter @@ -16,53 +16,46 @@ glyph-block Letter-Latin-Lower-I : begin glyph-block-import Letter-Shared-Shapes : CurlyTail BeltOverlay PalatalHook glyph-block-import Letter-Shared-Shapes : RetroflexHook LetterBarOverlay RightwardTailedBar - glyph-block-export OverrideILMarks - define [OverrideILMarks df xMiddle yTop] : glyph-proc - set-base-anchor 'above' xMiddle yTop - set-base-anchor 'below' xMiddle 0 - set-base-anchor 'overlay' xMiddle (yTop * OverlayPos) - set-base-anchor 'topRight' (xMiddle + df.rightSB - df.middle) yTop - - glyph-block-export OverrideILMarksSerifed - define [OverrideILMarksSerifed df xMiddle yTop] : glyph-proc - set-base-anchor 'above' xMiddle yTop - set-base-anchor 'below' xMiddle 0 - set-base-anchor 'overlay' [mix df.middle xMiddle 0.5] (yTop * OverlayPos) - set-base-anchor 'topRight' (xMiddle + df.rightSB - df.middle) yTop - - # Support shapes - define [FlatTailedDotlessIXMiddle df addTopSerif] : df.middle - [if addTopSerif 0 : IBalance2 df] - define [TailedDotlessIShift df] : (1 - df.div) * 0.2 - define [TailedDotlessIXMiddle df addTopSerif] : begin - return : mix df.leftSB df.rightSB ([StrokeWidthBlend 0.42 0.46] - [TailedDotlessIShift df]) - ########################################################################################### # Implementations + define [TailedDotlessIShift df] : (1 - df.div) * 0.2 + define XMiddle : namespace + define [FlatTailedImpl df addTopSerif] : df.middle - [if addTopSerif 0 : IBalance2 df] + define [TailedImpl df addTopSerif] : begin + return : mix df.leftSB df.rightSB ([StrokeWidthBlend 0.42 0.46] - [TailedDotlessIShift df]) export : define [Center df] : return df.middle export : define [Hooky df] : df.middle + [IBalance2 df] export : define [HookyBottom df] : df.middle - [IBalance2 df] export : define [Serifed df] : df.middle + [IBalance df] - export : define [Tailed df] : TailedDotlessIXMiddle df false - export : define [TailedSerifed df] : TailedDotlessIXMiddle df true - export : define [FlatTailed df] : FlatTailedDotlessIXMiddle df false - export : define [SerifedFlatTailed df] : FlatTailedDotlessIXMiddle df true + export : define [Tailed df] : TailedImpl df false + export : define [TailedSerifed df] : TailedImpl df true + export : define [FlatTailed df] : FlatTailedImpl df false + export : define [SerifedFlatTailed df] : FlatTailedImpl df true export : define [PhoneticLeft df] : df.leftSB + [HSwToV Stroke] + define Marks : namespace + export : define [Serifless df yTop xMiddle] : glyph-proc + include : LeaningAnchor.Above.At xMiddle + include : LeaningAnchor.Below.At xMiddle + set-base-anchor 'overlay' xMiddle (yTop * OverlayPos) + set-base-anchor 'topRight' (xMiddle + df.rightSB - df.middle) yTop + + export : define [Serifed df yTop xMiddle] : glyph-proc + include : Serifless df yTop xMiddle + include : LeaningAnchor.Above.At [mix df.middle xMiddle 0.75] + define Body : namespace export : define [Serifless df top xMiddle] : glyph-proc - include : OverrideILMarks df xMiddle top include : VBar.m xMiddle 0 top df.mvs export : define [HookyBottom df top xMiddle] : glyph-proc - include : OverrideILMarks df xMiddle top include : VBar.m xMiddle 0 top df.mvs include : tagged 'serifRB' : HSerif.rb xMiddle 0 (LongJut * df.div) Stroke df.mvs set-base-anchor 'trailing' (xMiddle + LongJut * df.div) 0 export : define [Serifed df top xMiddle] : glyph-proc - include : OverrideILMarks df xMiddle top include : VBar.m xMiddle 0 top df.mvs include : tagged 'serifB' HSerif.mb df.middle 0 (LongJut * df.div) @@ -84,7 +77,6 @@ glyph-block Letter-Latin-Lower-I : begin g4 rightTerm hookDepth [widths.lhs fine] local xDot : xMiddle + [StrokeWidthBlend 0.25 0] * TanSlope * df.width - include : OverrideILMarks df xDot top set-base-anchor 'trailing' [mix left rightTerm 0.5] 0 set-base-anchor 'palatalHookMask' [mix left rightTerm 0.5] (HalfStroke + O) @@ -101,7 +93,6 @@ glyph-block Letter-Latin-Lower-I : begin flat (xMiddle + hd.x - [HSwToV : 0.5 * df.mvs]) (0.5 * df.mvs) curl xFinal (0.5 * df.mvs) - include : OverrideILMarks df xMiddle top set-base-anchor 'trailing' xFinal 0 export : define [SemiTailed df top xMiddle] : glyph-proc @@ -118,7 +109,6 @@ glyph-block Letter-Latin-Lower-I : begin g2.right.mid (xMiddle + x0) (0.5 * df.mvs + O) [heading Rightward] g4 (xMiddle + x1) (0.5 * df.mvs + (1 - 2 * hookScaleY) * O) [heading Rightward] - include : OverrideILMarks df xMiddle top set-base-anchor 'trailing' (xMiddle + x0) 0 set-base-anchor 'palatalHookMask' (xMiddle + x0) (HalfStroke + O) @@ -126,8 +116,6 @@ glyph-block Letter-Latin-Lower-I : begin include : RightwardTailedBar (xMiddle + [HSwToV : 0.5 * Stroke]) 0 top export : define [DiagTailed df top xMiddle] : glyph-proc - include : OverrideILMarks df xMiddle top - set-base-anchor 'trailing' (xMiddle + [HSwToV : 0.75 * df.mvs]) 0 set-base-anchor 'palatalHookMask' currentGlyph.baseAnchors.trailing.x (HalfStroke + O) @@ -167,51 +155,54 @@ glyph-block Letter-Latin-Lower-I : begin define SmallILConfig : object # Normal - 'hooky' { Body.Serifless Serifs.Hooky XMiddle.Hooky para.diversityII 0 } - 'zshaped' { Body.HookyBottom Serifs.Hooky XMiddle.Center para.diversityI Stroke } - 'serifless' { Body.Serifless null XMiddle.Center para.diversityII 0 } - 'serifed' { Body.Serifed Serifs.Serifed XMiddle.Serifed para.diversityI Stroke } - 'serifedAsymmetric' { Body.Serifed Serifs.SerifedShort XMiddle.Serifed para.diversityI Stroke } - 'tailed' { Body.Tailed null XMiddle.Tailed para.diversityII Stroke } - 'tailedSerifed' { Body.Tailed Serifs.Hooky XMiddle.TailedSerifed para.diversityI Stroke } - 'flatTailed' { Body.FlatTailed null XMiddle.FlatTailed para.diversityII Stroke } - 'serifedFlatTailed' { Body.FlatTailed Serifs.Hooky XMiddle.SerifedFlatTailed para.diversityI Stroke } - 'diagonalTailed' { Body.DiagTailed null XMiddle.FlatTailed para.diversityII Stroke } - 'serifedDiagonalTailed' { Body.DiagTailed Serifs.Hooky XMiddle.SerifedFlatTailed para.diversityI Stroke } - 'semiTailed' { Body.SemiTailed null XMiddle.FlatTailed para.diversityII Stroke } - 'serifedSemiTailed' { Body.SemiTailed Serifs.Hooky XMiddle.SerifedFlatTailed para.diversityI Stroke } - 'hookyBottom' { Body.HookyBottom null XMiddle.HookyBottom para.diversityII Stroke } + 'serifless' { Body.Serifless null Marks.Serifless XMiddle.Center para.diversityII 0 } + 'hooky' { Body.Serifless Serifs.Hooky Marks.Serifed XMiddle.Hooky para.diversityI 0 } + 'hookyBottom' { Body.HookyBottom null Marks.Serifless XMiddle.HookyBottom para.diversityI Stroke } + 'zshaped' { Body.HookyBottom Serifs.Hooky Marks.Serifed XMiddle.Center para.diversityI Stroke } + 'serifed' { Body.Serifed Serifs.Serifed Marks.Serifed XMiddle.Serifed para.diversityI Stroke } + 'serifedAsymmetric' { Body.Serifed Serifs.SerifedShort Marks.Serifed XMiddle.Serifed para.diversityI Stroke } + 'tailed' { Body.Tailed null Marks.Serifless XMiddle.Tailed para.diversityI Stroke } + 'tailedSerifed' { Body.Tailed Serifs.Hooky Marks.Serifed XMiddle.TailedSerifed para.diversityI Stroke } + 'flatTailed' { Body.FlatTailed null Marks.Serifless XMiddle.FlatTailed para.diversityI Stroke } + 'serifedFlatTailed' { Body.FlatTailed Serifs.Hooky Marks.Serifed XMiddle.SerifedFlatTailed para.diversityI Stroke } + 'diagonalTailed' { Body.DiagTailed null Marks.Serifless XMiddle.FlatTailed para.diversityI Stroke } + 'serifedDiagonalTailed' { Body.DiagTailed Serifs.Hooky Marks.Serifed XMiddle.SerifedFlatTailed para.diversityI Stroke } + 'semiTailed' { Body.SemiTailed null Marks.Serifless XMiddle.FlatTailed para.diversityI Stroke } + 'serifedSemiTailed' { Body.SemiTailed Serifs.Hooky Marks.Serifed XMiddle.SerifedFlatTailed para.diversityI Stroke } # Decompressed - 'hookyDec' { Body.Serifless Serifs.Hooky XMiddle.Hooky para.diversityI 0 } - 'seriflessDec' { Body.Serifless null XMiddle.Center para.diversityI 0 } - 'tailedDec' { Body.Tailed null XMiddle.Tailed para.diversityI Stroke } - 'flatTailedDec' { Body.FlatTailed null XMiddle.FlatTailed para.diversityI Stroke } - 'diagonalTailedDec' { Body.DiagTailed null XMiddle.FlatTailed para.diversityI Stroke } - 'semiTailedDec' { Body.SemiTailed null XMiddle.FlatTailed para.diversityI Stroke } - 'hookyBottomDec' { Body.HookyBottom null XMiddle.HookyBottom para.diversityI Stroke } + 'hookyDec' { Body.Serifless Serifs.Hooky Marks.Serifed XMiddle.Hooky para.diversityI 0 } + 'seriflessDec' { Body.Serifless null Marks.Serifless XMiddle.Center para.diversityI 0 } + 'tailedDec' { Body.Tailed null Marks.Serifless XMiddle.Tailed para.diversityI Stroke } + 'flatTailedDec' { Body.FlatTailed null Marks.Serifless XMiddle.FlatTailed para.diversityI Stroke } + 'diagonalTailedDec' { Body.DiagTailed null Marks.Serifless XMiddle.FlatTailed para.diversityI Stroke } + 'semiTailedDec' { Body.SemiTailed null Marks.Serifless XMiddle.FlatTailed para.diversityI Stroke } + 'hookyBottomDec' { Body.HookyBottom null Marks.Serifless XMiddle.HookyBottom para.diversityI Stroke } # R Tail - 'hookyRTail' { Body.Serifless Serifs.Hooky XMiddle.Center para.diversityII 0 } - 'seriflessRTail' { Body.Serifless null XMiddle.HookyBottom para.diversityII 0 } + 'hookyRTail' { Body.Serifless Serifs.Hooky Marks.Serifed XMiddle.Center para.diversityI 0 } + 'seriflessRTail' { Body.Serifless null Marks.Serifless XMiddle.HookyBottom para.diversityI 0 } # R Tail + Decompress - 'hookyRTailDec' { Body.Serifless Serifs.Hooky XMiddle.Center para.diversityI 0 } - 'seriflessRTailDec' { Body.Serifless null XMiddle.HookyBottom para.diversityI 0 } + 'hookyRTailDec' { Body.Serifless Serifs.Hooky Marks.Serifed XMiddle.Center para.diversityI 0 } + 'seriflessRTailDec' { Body.Serifless null Marks.Serifless XMiddle.HookyBottom para.diversityI 0 } # - 'hookyPL' { Body.PhoneticLeft Serifs.Hooky XMiddle.PhoneticLeft 1 0 } - 'seriflessPL' { Body.PhoneticLeft null XMiddle.PhoneticLeft 1 0 } + 'hookyPL' { Body.PhoneticLeft Serifs.Hooky Marks.Serifed XMiddle.PhoneticLeft 1 0 } + 'seriflessPL' { Body.PhoneticLeft null Marks.Serifless XMiddle.PhoneticLeft 1 0 } # Special variants for Tau (which is built using dotlessi) - 'tau/tailless' { Body.Serifless null XMiddle.Center 1 0 } - 'tau/tailed' { Body.Tailed null XMiddle.Tailed 1 Stroke } - 'tau/flatTailed' { Body.FlatTailed null XMiddle.FlatTailed 1 Stroke } - 'tau/diagonalTailed' { Body.DiagTailed null XMiddle.FlatTailed 1 Stroke } - 'tau/semiTailed' { Body.SemiTailed null XMiddle.FlatTailed 1 Stroke } - 'tau/shortTailed' { Body.ShortTailed null XMiddle.Center 1 Stroke } - - foreach { suffix { Body Serif xMiddleT div y0R } } [Object.entries SmallILConfig] : do + 'tau/tailless' { Body.Serifless null Marks.Serifless XMiddle.Center 1 0 } + 'tau/tailed' { Body.Tailed null Marks.Serifless XMiddle.Tailed 1 Stroke } + 'tau/flatTailed' { Body.FlatTailed null Marks.Serifless XMiddle.FlatTailed 1 Stroke } + 'tau/diagonalTailed' { Body.DiagTailed null Marks.Serifless XMiddle.FlatTailed 1 Stroke } + 'tau/semiTailed' { Body.SemiTailed null Marks.Serifless XMiddle.FlatTailed 1 Stroke } + 'tau/shortTailed' { Body.ShortTailed null Marks.Serifless XMiddle.Center 1 Stroke } + + do : foreach { suffix { Body Serif Marks xMiddleTMono div y0R } } [Object.entries SmallILConfig] : begin + define xMiddleT : if para.isQuasiProportional XMiddle.Center xMiddleTMono + create-glyph "dotlessi.\(suffix)" : glyph-proc local df : include : DivFrame div include : df.markSet.e local xMiddle : xMiddleT df include : Body df XH xMiddle + include : Marks df XH xMiddle if Serif : include : tagged 'serifLT' : Serif df XH xMiddle create-glyph "latn/Iota.\(suffix)" : glyph-proc @@ -219,6 +210,7 @@ glyph-block Letter-Latin-Lower-I : begin include : df.markSet.capital local xMiddle : xMiddleT df include : Body df CAP xMiddle + include : Marks df CAP xMiddle if Serif : include : tagged 'serifLT' : Serif df CAP xMiddle create-glyph "l.\(suffix)" : glyph-proc @@ -226,6 +218,7 @@ glyph-block Letter-Latin-Lower-I : begin include : df.markSet.b local xMiddle : xMiddleT df include : Body df Ascender xMiddle + include : Marks df Ascender xMiddle if Serif : include : tagged 'serifLT' : Serif df Ascender xMiddle create-glyph "lDotBase.\(suffix)" : glyph-proc @@ -281,6 +274,7 @@ glyph-block Letter-Latin-Lower-I : begin include : df.markSet.e local xMiddle : xMiddleT df include : Body df XH xMiddle + include : Marks df XH xMiddle include : HBar.t df.leftSB df.rightSB XH currentGlyph.deleteBaseAnchor 'trailing' @@ -288,12 +282,14 @@ glyph-block Letter-Latin-Lower-I : begin create-glyph "cyrl/Twe/middle.\(suffix)" : glyph-proc local df : include : DivFrame div include : Body df CAP [XMiddle.Center df] + include : Marks df CAP [XMiddle.Center df] currentGlyph.deleteBaseAnchor 'trailing' set-mark-anchor 'cvDecompose' (df.width / 2) CAP create-glyph "cyrl/twe/middle.\(suffix)" : glyph-proc local df : include : DivFrame div include : Body df XH [XMiddle.Center df] + include : Marks df XH [XMiddle.Center df] currentGlyph.deleteBaseAnchor 'trailing' set-mark-anchor 'cvDecompose' (df.width / 2) XH diff --git a/packages/font-glyphs/src/letter/latin/lower-j.ptl b/packages/font-glyphs/src/letter/latin/lower-j.ptl index 031ab2b995..4198e6ca69 100644 --- a/packages/font-glyphs/src/letter/latin/lower-j.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-j.ptl @@ -8,7 +8,7 @@ glyph-module glyph-block Letter-Latin-Lower-J : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Mark-Adjustment : ExtendAboveBaseAnchors + glyph-block-import Mark-Adjustment : LeaningAnchor ExtendAboveBaseAnchors glyph-block-import Letter-Shared : CreateAccentedComposition glyph-block-import Letter-Shared-Shapes : CurlyTail FlatHookDepth LetterBarOverlay glyph-block-import Letter-Shared-Shapes : DiagTail TopHook @@ -67,7 +67,7 @@ glyph-block Letter-Latin-Lower-J : begin serif -- false export : define [DiagonalTailed df top xMiddle] : glyph-proc - local dfHook : DivFrame [mix para.diversityI para.diversityII 0.5] + local dfHook : DivFrame para.diversityI include : dispiro widths.center flat xMiddle top [heading Downward] @@ -78,23 +78,23 @@ glyph-block Letter-Latin-Lower-J : begin export : define [Long df top xMiddle] : HSerif.lt xMiddle top (LongJut * df.div) define Marks : namespace - export : define [FullHook df top xMiddle fSerifed] : glyph-proc - set-base-anchor 'above' (xMiddle - [if fSerifed 1 0] * Stroke * [HSwToV : 0.166 * df.div]) top - set-base-anchor 'overlay' (xMiddle - [if fSerifed 1 0] * Stroke * [HSwToV : 0.166 * df.div]) (top / 2) + export : define [Serifed df top xMiddle] : glyph-proc + include : Serifless df top xMiddle + include : LeaningAnchor.Above.At [mix df.middle xMiddle (7/8)] - export : define [Straight df top xMiddle fSerifed] : glyph-proc + export : define [Serifless df top xMiddle] : glyph-proc set-base-anchor 'above' xMiddle top set-base-anchor 'overlay' xMiddle (top / 2) define JConfig : object - 'serifless' { "Regular" null XMiddle.Regular Marks.FullHook 1 } - 'serifed' { "Regular" Serifs.Long XMiddle.Regular Marks.FullHook 1 } - 'straightLine' { "Straight" null XMiddle.Straight Marks.Straight para.diversityII } - 'hooky' { "Straight" Serifs.Long XMiddle.Hooky Marks.Straight para.diversityII } - 'flatHookSerifless' { "FlatHook" null XMiddle.FlatHookSerifless Marks.FullHook para.diversityII } - 'flatHookSerifed' { "FlatHook" Serifs.Long XMiddle.FlatHookSerifed Marks.FullHook para.diversityI } - 'diagonalTailedSerifless' { "DiagonalTailed" null XMiddle.FlatHookSerifless Marks.FullHook para.diversityII } - 'diagonalTailedSerifed' { "DiagonalTailed" Serifs.Long XMiddle.FlatHookSerifed Marks.FullHook para.diversityI } + 'serifless' { "Regular" null XMiddle.Regular Marks.Serifless 1 } + 'serifed' { "Regular" Serifs.Long XMiddle.Regular Marks.Serifed 1 } + 'straightLine' { "Straight" null XMiddle.Straight Marks.Serifless para.diversityII } + 'hooky' { "Straight" Serifs.Long XMiddle.Hooky Marks.Serifed para.diversityI } + 'flatHookSerifless' { "FlatHook" null XMiddle.FlatHookSerifless Marks.Serifless para.diversityII } + 'flatHookSerifed' { "FlatHook" Serifs.Long XMiddle.FlatHookSerifed Marks.Serifed para.diversityI } + 'diagonalTailedSerifless' { "DiagonalTailed" null XMiddle.FlatHookSerifless Marks.Serifless para.diversityII } + 'diagonalTailedSerifed' { "DiagonalTailed" Serifs.Long XMiddle.FlatHookSerifed Marks.Serifed para.diversityI } foreach {suffix { shapeId Serif xMiddleT Marks div } } [Object.entries JConfig] : do local df : DivFrame div @@ -105,7 +105,7 @@ glyph-block Letter-Latin-Lower-J : begin include : df.markSet.p include : Body.(shapeId) df XH xMiddle if Serif : include : tagged 'serifLT' : Serif df XH xMiddle - include : Marks df XH xMiddle (!(!Serif)) + include : Marks df XH xMiddle create-glyph "dotlessjBar.\(suffix)" : glyph-proc include [refer-glyph "dotlessj.\(suffix)"] AS_BASE ALSO_METRICS diff --git a/packages/font-glyphs/src/letter/latin/lower-y.ptl b/packages/font-glyphs/src/letter/latin/lower-y.ptl index 01a2200140..da716b6709 100644 --- a/packages/font-glyphs/src/letter/latin/lower-y.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-y.ptl @@ -1,7 +1,7 @@ $$include '../../meta/macros.ptl' import [mix linreg fallback SuffixCfg] from "@iosevka/util" -import [LowerYDotAtBelow Dotless CvDecompose MathSansSerif OgonekTrY] from "@iosevka/glyph/relation" +import [LowerYDotAtBelow Dotless MathSansSerif OgonekTrY] from "@iosevka/glyph/relation" glyph-module diff --git a/packages/font-glyphs/src/letter/latin/s.ptl b/packages/font-glyphs/src/letter/latin/s.ptl index a2083ea8ca..f050ba7465 100644 --- a/packages/font-glyphs/src/letter/latin/s.ptl +++ b/packages/font-glyphs/src/letter/latin/s.ptl @@ -32,111 +32,102 @@ glyph-block Letter-Latin-S : begin local ss : y * 0.22 + 0.12 * strokeFactor + 0.05 * widthFactor return : ss + sign * TanSlope * SmoothAdjust - define [SStrokeDollarInterruptGap deltaX top bot gap stroke refSwEss] : begin - local ess : refSwEss * gap / Stroke - define archDepth : AdviceSArchDepth (top - bot) (-1) stroke - - return : dispiro - g4.down.mid (deltaX + SB - Width) (top - archDepth) [widths.lhs gap] - alsoThru.g2 0.5 0.5 [widths.center ess] - g4.down.mid (deltaX + RightSB - Width - SOBot) (bot + archDepth) [widths.rhs gap] - - define [SCurlyTail sw] : begin + define [SCurlyTail df sw] : begin local fine : AdviceStroke2 3 4 XH local rinner : ((XH * 0.5) - fine * 2 - sw * 0.5) / 4 - local m1 : RightSB - SOBot - [HSwToV sw] - local x2 : RightSB - sw * 0.3 + local m1 : df.rightSB - SOBot - [HSwToV sw] + local x2 : df.rightSB - sw * 0.3 local y2 : -XH * 0.05 - return : CurlyTail fine rinner m1 0 (SB + SOBot) x2 y2 + return : CurlyTail fine rinner m1 0 (df.leftSB + SOBot) x2 y2 - define [SStrokeImpl top bot st sb stroke refSwEss] : begin + define [SStrokeImpl df top bot st sb stroke refSwEss] : begin local ess : refSwEss * stroke / Stroke define archDepth : AdviceSArchDepth (top - bot) (-1) stroke return : dispiro match st - [Just SLAB-CLASSICAL] : SerifedArcStart.RtlLhs RightSB Middle top stroke Hook + [Just SLAB-CLASSICAL] : SerifedArcStart.RtlLhs df.rightSB df.middle top stroke Hook [Just SLAB-INWARD] : list - g4 RightSB (top - DToothlessRise) [widths.lhs stroke] - g4 (Middle - CorrectionOMidX * stroke) (top - O) + g4 df.rightSB (top - DToothlessRise) [widths.lhs stroke] + g4 (df.middle - CorrectionOMidX * stroke) (top - O) archv __ : list - g4 RightSB (top - Hook) [widths.lhs stroke] + g4 df.rightSB (top - Hook) [widths.lhs stroke] hookstart (top - O) (sw -- stroke) (swItalicAdj -- Stroke) - g4 SB (top - archDepth) + g4 df.leftSB (top - archDepth) alsoThru.g2 0.5 0.5 [widths.center ess] - g4 (RightSB - SOBot) (bot + archDepth) [widths.rhs stroke] + g4 (df.rightSB - SOBot) (bot + archDepth) [widths.rhs stroke] match sb - [Just SLAB-CLASSICAL] : SerifedArcEnd.RtlRhs SB Middle bot stroke Hook + [Just SLAB-CLASSICAL] : SerifedArcEnd.RtlRhs df.leftSB df.middle bot stroke Hook [Just SLAB-INWARD] : list arcvh - g4 (Middle + CorrectionOMidX * stroke) (bot + O) - g4 SB (bot + DToothlessRise) + g4 (df.middle + CorrectionOMidX * stroke) (bot + O) + g4 df.leftSB (bot + DToothlessRise) __ : list hookend (bot + O) (sw -- stroke) (swItalicAdj -- Stroke) - g4 (SB + SOBot) (bot + Hook) + g4 (df.leftSB + SOBot) (bot + Hook) - define [RevSStroke st sb stroke ess] : begin + define [RevSStroke df st sb stroke ess] : begin local archDepth : AdviceSArchDepth CAP 0.5 stroke return : dispiro match st - [Just SLAB-CLASSICAL] : SerifedArcStart.LtrRhs SB Middle CAP stroke Hook + [Just SLAB-CLASSICAL] : SerifedArcStart.LtrRhs df.leftSB df.middle CAP stroke Hook [Just SLAB-INWARD] : list - g4 SB (CAP - DToothlessRise) [widths.rhs stroke] - g4 (Middle - CorrectionOMidX * stroke) (CAP - O) + g4 df.leftSB (CAP - DToothlessRise) [widths.rhs stroke] + g4 (df.middle - CorrectionOMidX * stroke) (CAP - O) archv __ : list - g4 SB (CAP - Hook) [widths.rhs stroke] + g4 df.leftSB (CAP - Hook) [widths.rhs stroke] hookstart (CAP - O) (sw -- stroke) (swItalicAdj -- Stroke) - g4 RightSB (CAP - archDepth) + g4 df.rightSB (CAP - archDepth) alsoThru.g2 0.5 0.5 [widths.center ess] - g4 (SB + SOBot) archDepth [widths.lhs stroke] + g4 (df.leftSB + SOBot) archDepth [widths.lhs stroke] match sb - [Just SLAB-CLASSICAL] : SerifedArcEnd.LtrLhs RightSB Middle 0 stroke Hook + [Just SLAB-CLASSICAL] : SerifedArcEnd.LtrLhs df.rightSB df.middle 0 stroke Hook [Just SLAB-INWARD] : list arcvh - g4 (Middle + CorrectionOMidX * stroke) O - g4 RightSB DToothlessRise + g4 (df.middle + CorrectionOMidX * stroke) O + g4 df.rightSB DToothlessRise __ : list hookend O (sw -- stroke) (swItalicAdj -- Stroke) - g4 (RightSB + OX - SOBot) Hook + g4 (df.rightSB + OX - SOBot) Hook - define [SmallSStrokeImpl st sb stroke refSwEss] : begin + define [SmallSStrokeImpl df st sb stroke refSwEss] : begin define ess : refSwEss * stroke / Stroke define archDepth : AdviceSArchDepth XH (-1) stroke return : dispiro match st - [Just SLAB-CLASSICAL] : SerifedArcStart.RtlLhs RightSB Middle XH stroke SHook + [Just SLAB-CLASSICAL] : SerifedArcStart.RtlLhs df.rightSB df.middle XH stroke SHook [Just SLAB-INWARD] : list - g4 RightSB (XH - DToothlessRise) [widths.lhs stroke] - g4 (Middle - CorrectionOMidX * stroke) (XH - O) + g4 df.rightSB (XH - DToothlessRise) [widths.lhs stroke] + g4 (df.middle - CorrectionOMidX * stroke) (XH - O) archv __ : list - g4 (RightSB + OX) (XH - SHook) [widths.lhs stroke] + g4 (df.rightSB + OX) (XH - SHook) [widths.lhs stroke] hookstart (XH - O) (sw -- stroke) (swItalicAdj -- Stroke) - g4 (SB - OX) (XH - archDepth) + g4 (df.leftSB - OX) (XH - archDepth) alsoThru.g2 0.5 0.5 [widths.center ess] - g4 (RightSB + OX - SOBot) (archDepth) [widths.rhs stroke] + g4 (df.rightSB + OX - SOBot) (archDepth) [widths.rhs stroke] match sb [Just CURLY-TAIL] : list arcvh - SCurlyTail stroke - [Just SLAB-CLASSICAL] : SerifedArcEnd.RtlRhs SB Middle 0 stroke SHook + SCurlyTail df stroke + [Just SLAB-CLASSICAL] : SerifedArcEnd.RtlRhs df.leftSB df.middle 0 stroke SHook [Just SLAB-INWARD] : list arcvh - g4 (Middle + CorrectionOMidX * stroke) O - g4 SB DToothlessRise + g4 (df.middle + CorrectionOMidX * stroke) O + g4 df.leftSB DToothlessRise __ : list hookend O (sw -- stroke) (swItalicAdj -- Stroke) - g4 (SB - OX + SOBot) SHook + g4 (df.leftSB - OX + SOBot) SHook - define [SStrokeAlt] : with-params [top hook swStart swEnd oXLeftTop offsetLT offsetRB offsetC] : begin + define [SStrokeAlt] : with-params [df top hook swStart swEnd oXLeftTop offsetLT offsetRB offsetC] : begin define stroke : Math.max swStart swEnd define fine : Math.min swStart swEnd define soStart : stroke - swStart @@ -144,83 +135,83 @@ glyph-block Letter-Latin-S : begin define archDepth : AdviceSArchDepth top (-1) stroke return : dispiro widths.lhs fine - g4 (RightSB + OX / 4 - [HSwToV soStart]) (top - hook) + g4 (df.rightSB + OX / 4 - [HSwToV soStart]) (top - hook) hookstart (top - O - soStart) (sw -- fine) (swItalicAdj -- Stroke) (noAdjTerminalY -- true) - g4 (SB + oXLeftTop + offsetLT.x) (top - archDepth + offsetLT.y) + g4 (df.leftSB + oXLeftTop + offsetLT.x) (top - archDepth + offsetLT.y) g2 - offsetC.x + [mix (SB + oXLeftTop + offsetLT.x) (RightSB - SOBot - offsetRB.x) 0.5] + offsetC.x + [mix (df.leftSB + oXLeftTop + offsetLT.x) (df.rightSB - SOBot - offsetRB.x) 0.5] offsetC.y + [mix (top - archDepth) (archDepth) 0.5] widths.center stroke - g4 (RightSB - SOBot - offsetRB.x) (archDepth + offsetRB.y) [widths.rhs fine] + g4 (df.rightSB - SOBot - offsetRB.x) (archDepth + offsetRB.y) [widths.rhs fine] hookend (O + soEnd) (sw -- fine) (swItalicAdj -- Stroke) (noAdjTerminalY -- true) - g4 (SB + SOBot + [HSwToV soEnd]) (hook) [widths.rhs fine] + g4 (df.leftSB + SOBot + [HSwToV soEnd]) (hook) [widths.rhs fine] - define [SmallSStrokePhoneticRight st top] : begin + define [SmallSStrokePhoneticRight df st top] : begin define stroke : AdviceStroke2 2 3 top define ess : AdviceStroke2 2.2 3.2 top define archDepth : AdviceSArchDepth top (-1) stroke return : dispiro match st - [Just SLAB-CLASSICAL] : SerifedArcStart.RtlLhs RightSB Middle top stroke Hook + [Just SLAB-CLASSICAL] : SerifedArcStart.RtlLhs df.rightSB df.middle top stroke Hook [Just SLAB-INWARD] : list - g4 RightSB (top - DToothlessRise) [widths.lhs stroke] - g4 (Middle - CorrectionOMidX * stroke) (top - O) + g4 df.rightSB (top - DToothlessRise) [widths.lhs stroke] + g4 (df.middle - CorrectionOMidX * stroke) (top - O) archv __ : list - g4 RightSB (top - Hook) [widths.lhs stroke] + g4 df.rightSB (top - Hook) [widths.lhs stroke] hookstart (top - O) (sw -- stroke) (swItalicAdj -- Stroke) - g4 SB (top - archDepth) + g4 df.leftSB (top - archDepth) alsoThru.g2 0.5 0.5 [widths.center ess] - g4 (RightSB - SOBot) (archDepth) [widths.rhs stroke] + g4 (df.rightSB - SOBot) (archDepth) [widths.rhs stroke] arcvh - flat (Middle - CorrectionOMidS) 0 [widths.rhs Stroke] - curl SB 0 + flat (df.middle - CorrectionOMidS) 0 [widths.rhs Stroke] + curl df.leftSB 0 - define [RevSmallSStroke st sb stroke ess] : begin + define [RevSmallSStroke df st sb stroke ess] : begin define archDepth : AdviceSArchDepth XH 0.75 stroke return : dispiro match st - [Just SLAB-CLASSICAL] : SerifedArcStart.LtrRhs SB Middle XH stroke SHook + [Just SLAB-CLASSICAL] : SerifedArcStart.LtrRhs df.leftSB df.middle XH stroke SHook [Just SLAB-INWARD] : list - g4 SB (XH - DToothlessRise) [widths.rhs stroke] - g4 (Middle - CorrectionOMidX * stroke) (XH - O) + g4 df.leftSB (XH - DToothlessRise) [widths.rhs stroke] + g4 (df.middle - CorrectionOMidX * stroke) (XH - O) archv __ : list - g4 (SB - OX) (XH - SHook) [widths.rhs stroke] + g4 (df.leftSB - OX) (XH - SHook) [widths.rhs stroke] hookstart (XH - O) (sw -- stroke) (swItalicAdj -- Stroke) - g4 (RightSB + OX) (XH - archDepth) + g4 (df.rightSB + OX) (XH - archDepth) alsoThru.g2 0.5 0.5 [widths.center ess] - g4 (SB - OX + SOBot) (archDepth) [widths.lhs stroke] + g4 (df.leftSB - OX + SOBot) (archDepth) [widths.lhs stroke] match sb - [Just SLAB-CLASSICAL] : SerifedArcEnd.LtrLhs RightSB Middle 0 stroke SHook + [Just SLAB-CLASSICAL] : SerifedArcEnd.LtrLhs df.rightSB df.middle 0 stroke SHook [Just SLAB-INWARD] : list arcvh - g4 (Middle + CorrectionOMidX * stroke) O - g4 RightSB DToothlessRise + g4 (df.middle + CorrectionOMidX * stroke) O + g4 df.rightSB DToothlessRise __ : list hookend O (sw -- stroke) (swItalicAdj -- Stroke) - g4 (RightSB + OX - SOBot) SHook + g4 (df.rightSB + OX - SOBot) SHook glyph-block-export SAutoSlabStart - define [SAutoSlabStart st top sw hook] : match st - [Just SLAB-CLASSICAL] : ArcStartSerif.R RightSB top sw hook - [Just SLAB-INWARD] : ArcStartSerif.InwardR RightSB top sw hook + define [SAutoSlabStart df st top sw hook] : match st + [Just SLAB-CLASSICAL] : ArcStartSerif.R df.rightSB top sw hook + [Just SLAB-INWARD] : ArcStartSerif.InwardR df.rightSB top sw hook __ : glyph-proc glyph-block-export SAutoSlabEnd - define [SAutoSlabEnd st bot sw hook] : match st - [Just SLAB-CLASSICAL] : ArcEndSerif.L SB bot sw hook - [Just SLAB-INWARD] : ArcEndSerif.InwardL SB bot sw hook + define [SAutoSlabEnd df st bot sw hook] : match st + [Just SLAB-CLASSICAL] : ArcEndSerif.L df.leftSB bot sw hook + [Just SLAB-INWARD] : ArcEndSerif.InwardL df.leftSB bot sw hook __ : glyph-proc - define [RevSAutoSlabStart st top sw hook] : match st - [Just SLAB-CLASSICAL] : ArcStartSerif.L SB top sw hook - [Just SLAB-INWARD] : ArcStartSerif.InwardL SB top sw hook + define [RevSAutoSlabStart df st top sw hook] : match st + [Just SLAB-CLASSICAL] : ArcStartSerif.L df.leftSB top sw hook + [Just SLAB-INWARD] : ArcStartSerif.InwardL df.leftSB top sw hook __ : glyph-proc - define [RevSAutoSlabEnd st bot sw hook] : match st - [Just SLAB-CLASSICAL] : ArcEndSerif.R RightSB bot sw hook - [Just SLAB-INWARD] : ArcEndSerif.InwardR RightSB bot sw hook + define [RevSAutoSlabEnd df st bot sw hook] : match st + [Just SLAB-CLASSICAL] : ArcEndSerif.R df.rightSB bot sw hook + [Just SLAB-INWARD] : ArcEndSerif.InwardR df.rightSB bot sw hook __ : glyph-proc define SConfig : object @@ -233,108 +224,122 @@ glyph-block Letter-Latin-S : begin bottomSerifed { SLAB-NONE SLAB-CLASSICAL } hybridSerifed1 { SLAB-INWARD SLAB-CLASSICAL } + define DfCapital : DivFrame 1 + define DfLower : DivFrame 1 + foreach { suffix { doTS doBS } } [Object.entries SConfig] : do create-glyph "S.\(suffix)" : glyph-proc + local df : include DfCapital + include : df.markSet.capital local sw : AdviceStroke2 2 3 CAP - include : MarkSet.capital - include : SStrokeImpl CAP 0 doTS doBS sw EssUpper - include : SAutoSlabStart doTS CAP sw Hook - include : SAutoSlabEnd doBS 0 sw Hook + include : SStrokeImpl df CAP 0 doTS doBS sw EssUpper + include : SAutoSlabStart df doTS CAP sw Hook + include : SAutoSlabEnd df doBS 0 sw Hook create-glyph "smcpS.\(suffix)" : glyph-proc + local df : include DfCapital + include : df.markSet.e local sw : AdviceStroke2 2 3 CAP - include : MarkSet.e - include : SStrokeImpl XH 0 doTS doBS sw EssUpper - include : SAutoSlabStart doTS XH sw Hook - include : SAutoSlabEnd doBS 0 sw Hook + include : SStrokeImpl df XH 0 doTS doBS sw EssUpper + include : SAutoSlabStart df doTS XH sw Hook + include : SAutoSlabEnd df doBS 0 sw Hook create-glyph "S/dollarKernelStd.\(suffix)" : glyph-proc + local df DfCapital set-width 0 - set-mark-anchor 'cvDecompose' Middle (CAP / 2) + set-mark-anchor 'cvDecompose' df.middle (CAP / 2) define top : CAP * 0.95 define bot : CAP * 0.05 local sw : AdviceStroke2 2 3 (top - bot) - include : SStrokeImpl top bot doTS doBS sw EssUpper - include : SAutoSlabStart doTS top sw Hook - include : SAutoSlabEnd doBS bot sw Hook + include : SStrokeImpl df top bot doTS doBS sw EssUpper + include : SAutoSlabStart df doTS top sw Hook + include : SAutoSlabEnd df doBS bot sw Hook create-glyph "S/dollarKernelCap.\(suffix)" : glyph-proc + local df DfCapital set-width 0 - set-mark-anchor 'cvDecompose' Middle (CAP / 2) + set-mark-anchor 'cvDecompose' df.middle (CAP / 2) define top : CAP * 0.88 define bot : CAP * 0.12 local sw : AdviceStroke2 2 3 (top - bot) - include : SStrokeImpl top bot doTS doBS sw EssUpper - include : SAutoSlabStart doTS top sw Hook - include : SAutoSlabEnd doBS bot sw Hook + include : SStrokeImpl df top bot doTS doBS sw EssUpper + include : SAutoSlabStart df doTS top sw Hook + include : SAutoSlabEnd df doBS bot sw Hook create-glyph "s.\(suffix)" : glyph-proc - local sw : AdviceStroke2 2 3 XH - include : MarkSet.e - include : SmallSStrokeImpl doTS doBS sw EssLower - include : SAutoSlabStart doTS XH sw Hook - include : SAutoSlabEnd doBS 0 sw Hook + local df : include DfLower + include : df.markSet.e + local sw : AdviceStroke2 2 3 XH df.div + include : SmallSStrokeImpl df doTS doBS sw EssLower + include : SAutoSlabStart df doTS XH sw Hook + include : SAutoSlabEnd df doBS 0 sw Hook create-glyph "s/phoneticRight.\(suffix)" : glyph-proc + local df : include DfLower + include : df.markSet.e local sw : AdviceStroke2 2 3 XH - include : MarkSet.e - include : SmallSStrokePhoneticRight doTS XH - include : SAutoSlabStart doTS XH sw Hook + include : SmallSStrokePhoneticRight df doTS XH + include : SAutoSlabStart df doTS XH sw Hook create-glyph "revS.\(suffix)" : glyph-proc + local df : include DfCapital + include : df.markSet.capital local sw : AdviceStroke2 2 3 CAP - include : MarkSet.capital - include : RevSStroke doTS doBS sw EssUpper - include : RevSAutoSlabStart doTS CAP sw Hook - include : RevSAutoSlabEnd doBS 0 sw Hook + include : RevSStroke df doTS doBS sw EssUpper + include : RevSAutoSlabStart df doTS CAP sw Hook + include : RevSAutoSlabEnd df doBS 0 sw Hook create-glyph "revs.\(suffix)" : glyph-proc + local df : include DfLower + include : df.markSet.e local sw : AdviceStroke2 2 3 XH - include : MarkSet.e - include : RevSmallSStroke doTS doBS sw EssLower - include : RevSAutoSlabStart doTS XH sw Hook - include : RevSAutoSlabEnd doBS 0 sw Hook - - define [UpperSBaseWithAttach] : glyph-proc - include : SAutoSlabStart doTS CAP Stroke Hook - local stroke : include : SStrokeImpl CAP 0 doTS doBS [AdviceStroke2 2 3 CAP] EssUpper + include : RevSmallSStroke df doTS doBS sw EssLower + include : RevSAutoSlabStart df doTS XH sw Hook + include : RevSAutoSlabEnd df doBS 0 sw Hook + + define [UpperSBaseWithAttach df] : glyph-proc + include : SAutoSlabStart df doTS CAP Stroke Hook + local stroke : include : SStrokeImpl df CAP 0 doTS doBS [AdviceStroke2 2 3 CAP] EssUpper return stroke.lhsKnots.(stroke.lhsKnots.length - 1) - define [LowerSBaseWithAttach] : glyph-proc - include : SAutoSlabStart doTS XH [AdviceStroke2 2 3 XH] Hook - local stroke : include : SmallSStrokeImpl doTS doBS [AdviceStroke2 2 3 XH] EssLower + define [LowerSBaseWithAttach df] : glyph-proc + include : SAutoSlabStart df doTS XH [AdviceStroke2 2 3 XH] Hook + local stroke : include : SmallSStrokeImpl df doTS doBS [AdviceStroke2 2 3 XH] EssLower return stroke.lhsKnots.(stroke.lhsKnots.length - 1) if [not doBS] : create-glyph "SSwash.\(suffix)" : glyph-proc - include : MarkSet.capDesc + local df : include DfCapital + include : df.markSet.capDesc - local start : include : UpperSBaseWithAttach + local start : include : UpperSBaseWithAttach df local sw : AdviceStroke2 2 3 CAP include : dispiro widths.lhs [AdviceStroke 4.5] g4 start.x start.y alsoThru 0.15 0.6 important - flat (RightSB - 1) Descender [widths.lhs sw] - curl RightSB Descender + flat (df.rightSB - 1) Descender [widths.lhs sw] + curl df.rightSB Descender if [not doBS] : create-glyph "sSwash.\(suffix)" : glyph-proc - include : MarkSet.p + local df : include DfLower + include : df.markSet.p - local start : include : LowerSBaseWithAttach + local start : include : LowerSBaseWithAttach df local sw : AdviceStroke2 2 3 XH include : dispiro widths.lhs [AdviceStroke 4.5] g4 start.x start.y alsoThru 0.15 0.6 important - flat (RightSB - 1) Descender [widths.lhs sw] - curl RightSB Descender + flat (df.rightSB - 1) Descender [widths.lhs sw] + curl df.rightSB Descender create-glyph "sCurlyTail.\(suffix)" : glyph-proc - local sw : AdviceStroke2 2 3 XH - include : MarkSet.e - include : SmallSStrokeImpl doTS CURLY-TAIL sw EssLower + local df : include DfLower + include : df.markSet.e + local sw : AdviceStroke2 2 3 XH df.div + include : SmallSStrokeImpl df doTS CURLY-TAIL sw EssLower include : SAutoSlabStart doTS XH sw Hook include : SAutoSlabEnd doBS 0 sw Hook @@ -371,9 +376,9 @@ glyph-block Letter-Latin-S : begin derive-composites 'sRTail' 0x282 's/descBase' RetroflexHook.l SB 0 (yAttach -- DToothlessRise) (refSw -- [AdviceStroke2 2 3 XH]) derive-composites 'cyrl/gheDescender.italic' null 'revs/descBase' - CyrDescender.r RightSB 0 (yAttach -- DToothlessRise) (refSw -- [AdviceStroke2 2 3 XH]) + CyrDescender.r DfLower.rightSB 0 (yAttach -- DToothlessRise) (refSw -- [AdviceStroke2 2 3 XH]) derive-composites 'cyrl/gheDHook.italic' null 'revs/descBase' - PalatalHook.r RightSB 0 (yAttach -- DToothlessRise) (refSw -- [AdviceStroke2 2 3 XH]) + PalatalHook.r DfLower.rightSB 0 (yAttach -- DToothlessRise) (refSw -- [AdviceStroke2 2 3 XH]) derive-composites 'cyrl/ghayn.italic' null 'revs' FlatSlashShape Middle (XH / 2) (OverlayStroke / 2) (-0.2) 0.75 @@ -381,7 +386,7 @@ glyph-block Letter-Latin-S : begin FlatSlashShape Middle (XH / 2) (OverlayStroke / 2) (-0.2) 0.75 derive-composites 'sPalatalHook' 0x1D8A 's' : PalatalHook.r - x -- [mix (Middle + CorrectionOMidS) RightSB 0.75] + x -- [mix (Middle + CorrectionOMidS) DfLower.rightSB 0.75] y -- 0 yAttach -- [mix O [AdviceSArchDepth XH (-1) [AdviceStroke2 2 3 XH]] : archv.yFromX 0.75] @@ -389,7 +394,7 @@ glyph-block Letter-Latin-S : begin eject-contour 'arcStartSerifR' local sw : ArcStartSerifWidth [AdviceStroke2 2 3 XH] local fine : sw * [mix CThinB 1 0.6] - local hd : FlatHookDepth [DivFrame 1] + local hd : FlatHookDepth DfCapital local yStart : XH - [ArcStartSerifDepth SHook] local neckLength : 0.5 * Stroke local leftExt : 0.3 * (RightSB - SB) - [HSwToV : 0.25 * sw] @@ -407,10 +412,12 @@ glyph-block Letter-Latin-S : begin derive-composites 'sCedilla' 0x15F 's' 'cedillaExtShapeBelowSOArc' create-glyph 'mathbb/S' 0x1D54A : glyph-proc - include : MarkSet.capital + local df : include DfCapital + include : df.markSet.capital define theta : Math.PI / 4 foreach sign [items-of { 1 (-1) }] : begin include : SStrokeAlt + df -- df top -- CAP hook -- Hook swStart -- BBS * [if (sign > 0) CThin 1] @@ -431,10 +438,12 @@ glyph-block Letter-Latin-S : begin } create-glyph 'mathbb/s' 0x1D564 : glyph-proc - include : MarkSet.e + local df : include DfLower + include : df.markSet.e define theta : Math.PI / 5 foreach sign [items-of { 1 (-1) }] : begin include : SStrokeAlt + df -- df top -- XH hook -- SHook swStart -- BBS * [if (sign > 0) CThin 1] diff --git a/packages/font-glyphs/src/letter/latin/upper-j.ptl b/packages/font-glyphs/src/letter/latin/upper-j.ptl index ee13ad8ee7..014a4acbff 100644 --- a/packages/font-glyphs/src/letter/latin/upper-j.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-j.ptl @@ -113,7 +113,7 @@ glyph-block Letter-Latin-Upper-J : begin "" { JFullHookBase [DivFrame 1] [DivFrame 1] } flatHook { JFlatHookBase [DivFrame 1] [DivFrame 1] } descending { JDescendingBase [DivFrame 1] [DivFrame 1] } - descendingFlatHookSerifless { JDescendingFlatHookBase [DivFrame para.diversityII] [DivFrame para.diversityI] } + descendingFlatHookSerifless { JDescendingFlatHookBase [DivFrame para.diversityI] [DivFrame para.diversityI] } descendingFlatHookSerifed { JDescendingFlatHookSerifedBase [DivFrame para.diversityI] [DivFrame para.diversityI] } function [body] : if (body == 'descendingFlatHookSerifless' || body == 'descendingFlatHookSerifed') {."" null} : object serifless null diff --git a/packages/font-glyphs/src/letter/latin/z.ptl b/packages/font-glyphs/src/letter/latin/z.ptl index 72a5b06a2a..d4559d86b7 100644 --- a/packages/font-glyphs/src/letter/latin/z.ptl +++ b/packages/font-glyphs/src/letter/latin/z.ptl @@ -1,7 +1,7 @@ $$include '../../meta/macros.ptl' import [mix SuffixCfg fallback] from "@iosevka/util" -import [CvDecompose MathSansSerif] from "@iosevka/glyph/relation" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module @@ -84,8 +84,8 @@ glyph-block Letter-Latin-Z : begin corner SB 0 corner (-Width) 0 corner (-Width) (2 * top) - corner (RightSB - xDiagWidth) (2 * top) - corner (RightSB - xDiagWidth) (top - yFootHeight) + corner (RightSB - xDiagWidth + 0.1) (2 * top) + corner (RightSB - xDiagWidth + 0.1) (top - yFootHeight) dispiro flat (SB + OX) (top - yHookDepth) [widths.rhs.heading hookTerminalWidth Upward] curl (SB + OX) (top - yHookDepth + yHookStraightDepth) [heading Upward] @@ -97,7 +97,7 @@ glyph-block Letter-Latin-Z : begin include : dispiro corner RightSB (top - yFootHeight) [widths.rhs (Stroke / HVContrast)] corner SB [if (mode == MODE-ZSWASH) 0 yFootHeight] [widths.lhs (Stroke / HVContrast)] - + include : VBar.r RightSB top (top - yFootHeight) (xDiagWidth / HVContrast) if (mode != MODE-ZSWASH) : include : VBar.l SB 0 yFootHeight (xDiagWidth / HVContrast) @@ -120,8 +120,8 @@ glyph-block Letter-Latin-Z : begin ([Just MODE-ZDESC] || [Just MODE-ZSWASH]) : no-shape __ : intersection spiro-outline - corner (SB + xDiagWidth) yFootHeight - corner (SB + xDiagWidth) (-top) + corner (SB + xDiagWidth - 0.1) yFootHeight + corner (SB + xDiagWidth - 0.1) (-top) corner (2 * Width) (-top) corner (2 * Width) (top) corner RightSB top diff --git a/packages/font-glyphs/src/number/1.ptl b/packages/font-glyphs/src/number/1.ptl index 4daa855855..8517ac2e94 100644 --- a/packages/font-glyphs/src/number/1.ptl +++ b/packages/font-glyphs/src/number/1.ptl @@ -62,6 +62,7 @@ glyph-block Digits-One : begin select-variant 'one.lnum' [CodeLnum '1'] (follow -- 'one') select-variant 'one.onum' [CodeOnum '1'] (follow -- 'one') + link-reduced-variant 'one/sansSerif.lnum' 'one.lnum' MathSansSerif (follow -- 'one/sansSerif') link-reduced-variant 'one/sansSerif.onum' 'one.onum' MathSansSerif (follow -- 'one/sansSerif') diff --git a/packages/font-glyphs/src/number/2.ptl b/packages/font-glyphs/src/number/2.ptl index 73bbb76217..ed733039dd 100644 --- a/packages/font-glyphs/src/number/2.ptl +++ b/packages/font-glyphs/src/number/2.ptl @@ -1,6 +1,7 @@ $$include '../meta/macros.ptl' import [mix linreg clamp fallback] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module @@ -34,38 +35,58 @@ glyph-block Digits-Two : begin flat (SB - offset) 1 [widths.heading sw 0 Downward] curl (SB - offset) 0 [heading Downward] - define [TwoShape top] : glyph-proc + define [TwoShape top slab] : glyph-proc include : TwoArcShapeT dispiro 0 Stroke top include : HBar.b (SB + HalfStroke) RightSB 0 - if SLAB : begin + if slab : begin include : VSerif.ur RightSB 0 VJut - define [TwoStraightNeckShape top] : glyph-proc + define [TwoStraightNeckShape top slab] : glyph-proc include : TwoStraightNeckArcT dispiro 0 Stroke top include : HBar.b SB RightSB 0 - if SLAB : begin + if slab : begin include : VSerif.ur RightSB 0 VJut - create-glyph 'two.lnum.straightNeck' : glyph-proc + create-glyph 'two.lnum.straightNeckSerifless' : glyph-proc include : MarkSet.capital - include : TwoStraightNeckShape CAP + include : TwoStraightNeckShape CAP false - create-glyph 'two.onum.straightNeck' : glyph-proc + create-glyph 'two.onum.straightNeckSerifless' : glyph-proc include : OnumMarks.e - include : TwoStraightNeckShape OnumHeight + include : TwoStraightNeckShape OnumHeight false - create-glyph 'two.lnum.curlyNeck' : glyph-proc + create-glyph 'two.lnum.straightNeckSerifed' : glyph-proc include : MarkSet.capital - include : TwoShape CAP + include : TwoStraightNeckShape CAP true - create-glyph 'two.onum.curlyNeck' : glyph-proc + create-glyph 'two.onum.straightNeckSerifed' : glyph-proc include : OnumMarks.e - include : TwoShape OnumHeight + include : TwoStraightNeckShape OnumHeight true + + create-glyph 'two.lnum.curlyNeckSerifless' : glyph-proc + include : MarkSet.capital + include : TwoShape CAP false + + create-glyph 'two.onum.curlyNeckSerifless' : glyph-proc + include : OnumMarks.e + include : TwoShape OnumHeight false + + create-glyph 'two.lnum.curlyNeckSerifed' : glyph-proc + include : MarkSet.capital + include : TwoShape CAP true + + create-glyph 'two.onum.curlyNeckSerifed' : glyph-proc + include : OnumMarks.e + include : TwoShape OnumHeight true select-variant 'two.lnum' [CodeLnum '2'] (follow -- 'two') select-variant 'two.onum' [CodeOnum '2'] (follow -- 'two') + turned 'turnDigitTwo' 0x218A 'two.lnum' Middle (CAP / 2) + link-reduced-variant 'two/sansSerif.lnum' 'two.lnum' MathSansSerif (follow -- 'two/sansSerif') + link-reduced-variant 'two/sansSerif.onum' 'two.onum' MathSansSerif (follow -- 'two/sansSerif') + glyph-block-import Letter-Blackboard : BBS BBD create-glyph 'mathbb/two' 0x1D7DA : glyph-proc include : MarkSet.capital diff --git a/packages/font-glyphs/src/number/3.ptl b/packages/font-glyphs/src/number/3.ptl index facd8aae36..16c1585750 100644 --- a/packages/font-glyphs/src/number/3.ptl +++ b/packages/font-glyphs/src/number/3.ptl @@ -1,6 +1,7 @@ $$include '../meta/macros.ptl' import [mix linreg clamp fallback] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module @@ -35,16 +36,23 @@ glyph-block Digits-Three : begin create-glyph 'three.lnum.twoArcs' : glyph-proc include : MarkSet.capital include : ThreeShape CAP - create-glyph 'three.lnum.flatTop' : glyph-proc + create-glyph 'three.lnum.flatTopSerifless' : glyph-proc include : MarkSet.capital - include : EzhShape CAP 0 (pLeft -- 0.25) (pRight -- 0.975) + include : EzhShape CAP 0 (pLeft -- 0.25) (pRight -- 0.975) (isSerifed -- false) + create-glyph 'three.lnum.flatTopSerifed' : glyph-proc + include : MarkSet.capital + include : EzhShape CAP 0 (pLeft -- 0.25) (pRight -- 0.975) (isSerifed -- true) create-glyph 'three.onum.twoArcs' : glyph-proc include : OnumMarks.p include : ThreeShape CAP include : ShiftDown - create-glyph 'three.onum.flatTop' : glyph-proc + create-glyph 'three.onum.flatTopSerifless' : glyph-proc + include : OnumMarks.p + include : EzhShape CAP 0 (pLeft -- 0.25) (pRight -- 0.975) (isSerifed -- false) + include : ShiftDown + create-glyph 'three.onum.flatTopSerifed' : glyph-proc include : OnumMarks.p - include : EzhShape CAP 0 (pLeft -- 0.25) (pRight -- 0.975) + include : EzhShape CAP 0 (pLeft -- 0.25) (pRight -- 0.975) (isSerifed -- true) include : ShiftDown select-variant 'three.lnum' [CodeLnum '3'] (follow -- 'three') @@ -52,6 +60,9 @@ glyph-block Digits-Three : begin turned 'turnDigitThree' 0x218B 'three.lnum' Middle (CAP / 2) + link-reduced-variant 'three/sansSerif.lnum' 'three.lnum' MathSansSerif (follow -- 'three/sansSerif') + link-reduced-variant 'three/sansSerif.onum' 'three.onum' MathSansSerif (follow -- 'three/sansSerif') + glyph-block-import Letter-Blackboard : BBS BBD create-glyph 'mathbb/three' 0x1D7DB : glyph-proc include : MarkSet.capital diff --git a/packages/font-glyphs/src/number/4.ptl b/packages/font-glyphs/src/number/4.ptl index 2c6b4fe3df..eaa560ead8 100644 --- a/packages/font-glyphs/src/number/4.ptl +++ b/packages/font-glyphs/src/number/4.ptl @@ -1,6 +1,7 @@ $$include '../meta/macros.ptl' -import [mix linreg clamp fallback] from "@iosevka/util" +import [mix linreg clamp fallback SuffixCfg] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module @@ -9,7 +10,7 @@ glyph-block Digits-Four : begin glyph-block-import Common-Derivatives glyph-block-import Digits-Shared : OnumMarks ShiftDown CodeLnum CodeOnum - define [FourStdShape] : with-params [top open crossing [fine : AdviceStroke 3] [sw Stroke] [bbd 0]] : glyph-proc + define [FourStdShape] : with-params [top open crossing [fine : AdviceStroke 3] [sw Stroke] [bbd 0] [slab SLAB]] : glyph-proc local yBar : top * 0.3 + 0.625 * sw define xVertBar : [mix SB RightSB : if crossing 0.75 0.9125] - (bbd * 0.75) + [if crossing [HSwToV : 0.375 * sw] 0] @@ -35,10 +36,16 @@ glyph-block Digits-Four : begin include : VBar.r (xVertBar + bbd) 0 yVertBarTop sw include : HBar.t xVertBar (xVertBar + bbd) CAP sw include : HBar.b xVertBar (xVertBar + bbd) 0 sw - if (!bbd && SLAB) : begin + if (!bbd && slab) : begin include : HSerif.mb (xVertBar - [HSwToV HalfStroke]) 0 Jut - define [FourOpenShape top crossing] : glyph-proc + define [FourClosedShape top crossing slab] : begin + return : FourStdShape top false crossing (slab -- slab) + + define [FourSemiOpenShape top crossing slab] : begin + return : FourStdShape top true crossing (fine -- [AdviceStroke 2.75]) (slab -- slab) + + define [FourOpenShape top crossing slab] : glyph-proc local yBar (top * 0.4) local fine : AdviceStroke 3 @@ -48,66 +55,37 @@ glyph-block Digits-Four : begin include : HBar.t SB xHBarTerminal yBar include : VBar.r xVertBar 0 [mix (yBar - Stroke) top 0.75] include : VBar.l SB yBar top - if SLAB : begin + if slab : begin include : HSerif.mb (xVertBar - [HSwToV HalfStroke]) 0 Jut - create-glyph 'four.lnum.closed' : glyph-proc - include : MarkSet.capital - include : FourStdShape CAP false true - - create-glyph 'four.lnum.closedNonCrossing' : glyph-proc - include : MarkSet.capital - include : FourStdShape CAP false false - - create-glyph 'four.lnum.semiOpen' : glyph-proc - include : MarkSet.capital - include : FourStdShape CAP true true (fine -- [AdviceStroke 2.75]) - - create-glyph 'four.lnum.semiOpenNonCrossing' : glyph-proc - include : MarkSet.capital - include : FourStdShape CAP true false (fine -- [AdviceStroke 2.75]) - - create-glyph 'four.lnum.open' : glyph-proc - include : MarkSet.capital - include : FourOpenShape CAP true - - create-glyph 'four.lnum.openNonCrossing' : glyph-proc - include : MarkSet.capital - include : FourOpenShape CAP false - - create-glyph 'four.onum.closed' : glyph-proc - include : OnumMarks.p - include : FourStdShape CAP false true - include : ShiftDown - - create-glyph 'four.onum.closedNonCrossing' : glyph-proc - include : OnumMarks.p - include : FourStdShape CAP false false - include : ShiftDown - - create-glyph 'four.onum.semiOpen' : glyph-proc - include : OnumMarks.p - include : FourStdShape CAP true true - include : ShiftDown - - create-glyph 'four.onum.semiOpenNonCrossing' : glyph-proc - include : OnumMarks.p - include : FourStdShape CAP true false - include : ShiftDown - - create-glyph 'four.onum.open' : glyph-proc - include : OnumMarks.p - include : FourOpenShape CAP true - include : ShiftDown - - create-glyph 'four.onum.openNonCrossing' : glyph-proc - include : OnumMarks.p - include : FourOpenShape CAP false - include : ShiftDown + define FourConfig : SuffixCfg.weave + object # body + "closed" FourClosedShape + "semiOpen" FourSemiOpenShape + "open" FourOpenShape + object # crossing + "nonCrossing" false + "crossing" true + object # slab + "serifless" false + "serifed" true + + foreach { suffix { body crossing slab } } [pairs-of FourConfig] : do + create-glyph "four.lnum.\(suffix)" : glyph-proc + include : MarkSet.capital + include : body CAP crossing slab + + create-glyph "four.onum.\(suffix)" : glyph-proc + include : OnumMarks.p + include : body CAP crossing slab + include : ShiftDown select-variant 'four.lnum' [CodeLnum '4'] (follow -- 'four') select-variant 'four.onum' [CodeOnum '4'] (follow -- 'four') + link-reduced-variant 'four/sansSerif.lnum' 'four.lnum' MathSansSerif (follow -- 'four/sansSerif') + link-reduced-variant 'four/sansSerif.onum' 'four.onum' MathSansSerif (follow -- 'four/sansSerif') + glyph-block-import Letter-Blackboard : BBS BBD BBBarCenter create-glyph 'mathbb/four' 0x1D7DC : glyph-proc include : MarkSet.capital diff --git a/packages/font-glyphs/src/number/5.ptl b/packages/font-glyphs/src/number/5.ptl index 429457111b..7e26c533fe 100644 --- a/packages/font-glyphs/src/number/5.ptl +++ b/packages/font-glyphs/src/number/5.ptl @@ -1,6 +1,7 @@ $$include '../meta/macros.ptl' import [mix linreg clamp fallback SuffixCfg] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module @@ -35,7 +36,7 @@ glyph-block Digits-Five : begin define [FiveShape] : with-params [ top bp pBarPosSwAdj [sw Stroke] [bbd 0] [obl 0] [zt 0] - [bottomShape FiveArcStroke] [pXLeft 0.025] + [bottomShape FiveArcStroke] [pXLeft 0.025] [slab SLAB] ] : glyph-proc local t1 : (top * bp + sw * pBarPosSwAdj) * 0.8 local t2 : (top * bp + sw * pBarPosSwAdj) * 1.0 @@ -67,7 +68,7 @@ glyph-block Digits-Five : begin Rect (t2 / 2 + t2 * kGap) (t2 / 2 - t2 * kGap) 0 Middle - if (!bbd && SLAB) : include : VSerif.dr xRight top [Math.min VJut ((top - t2) * 0.8)] + if (!bbd && slab) : include : VSerif.dr xRight top [Math.min VJut ((top - t2) * 0.8)] define FiveConfig : SuffixCfg.weave object # upper-left-bar @@ -76,27 +77,34 @@ glyph-block Digits-Five : begin object # middle "arched" { FiveArcStroke DesignParameters.fiveBarPos 0 0.025 } "flat" { FiveFlatStroke (7 / 8 * DesignParameters.fiveBarPos) (1/3) 0.05 } + object # serifs + "serifless" false + "serifed" true - foreach { suffix { obl { bottomShape pBarPos pBarPosSwAdj pXLeft } } } [pairs-of FiveConfig] : do + foreach { suffix { obl { bottomShape pBarPos pBarPosSwAdj pXLeft } slab } } [pairs-of FiveConfig] : do create-glyph "five.lnum.\(suffix)" : glyph-proc include : MarkSet.capital - include : FiveShape CAP pBarPos pBarPosSwAdj (bottomShape -- bottomShape) (obl -- obl) (pXLeft -- pXLeft) + include : FiveShape CAP pBarPos pBarPosSwAdj (bottomShape -- bottomShape) (obl -- obl) (pXLeft -- pXLeft) (slab -- slab) create-glyph "five.onum.\(suffix)" : glyph-proc include : OnumMarks.p - include : FiveShape CAP pBarPos pBarPosSwAdj (bottomShape -- bottomShape) (obl -- obl) (pXLeft -- pXLeft) + include : FiveShape CAP pBarPos pBarPosSwAdj (bottomShape -- bottomShape) (obl -- obl) (pXLeft -- pXLeft) (slab -- slab) include : ShiftDown create-glyph "zhuangToneFive.\(suffix)" : glyph-proc include : MarkSet.capital - include : FiveShape CAP pBarPos pBarPosSwAdj (bottomShape -- bottomShape) (zt -- ((RightSB - SB) * 0.05)) (pXLeft -- pXLeft) + include : FiveShape CAP pBarPos pBarPosSwAdj (bottomShape -- bottomShape) (zt -- ((RightSB - SB) * 0.05)) (pXLeft -- pXLeft) (slab -- slab) create-glyph "zhuangtonefive.\(suffix)" : glyph-proc include : MarkSet.e - include : FiveShape XH pBarPos pBarPosSwAdj (bottomShape -- bottomShape) (zt -- ((RightSB - SB) * 0.05)) (pXLeft -- pXLeft) + include : FiveShape XH pBarPos pBarPosSwAdj (bottomShape -- bottomShape) (zt -- ((RightSB - SB) * 0.05)) (pXLeft -- pXLeft) (slab -- slab) select-variant 'five.lnum' [CodeLnum '5'] (follow -- 'five') select-variant 'five.onum' [CodeOnum '5'] (follow -- 'five') + + link-reduced-variant 'five/sansSerif.lnum' 'five.lnum' MathSansSerif (follow -- 'five/sansSerif') + link-reduced-variant 'five/sansSerif.onum' 'five.onum' MathSansSerif (follow -- 'five/sansSerif') + select-variant 'zhuangToneFive' 0x1BC select-variant 'zhuangtonefive' 0x1BD (follow -- 'zhuangToneFive') diff --git a/packages/font-glyphs/src/symbol/arrow.ptl b/packages/font-glyphs/src/symbol/arrow.ptl index 075c2f7846..e9849bcda1 100644 --- a/packages/font-glyphs/src/symbol/arrow.ptl +++ b/packages/font-glyphs/src/symbol/arrow.ptl @@ -37,9 +37,9 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 define arrowDiagBot : mix arrowMidX arrowBot diagPropY define arrowDiagTop : mix arrowMidX arrowTop diagPropY - define [ArrowBar x1 y1 x2 y2 halfSw w] : begin + define [ArrowBar x1 y1 x2 y2 halfSw w _offset] : begin return : PointingTo x1 y1 x2 y2 : lambda [mag] : begin - local p : (mag - o - halfSw * [fallback w 1.1]) / mag + local p : (mag - [fallback _offset : o + halfSw * [fallback w 1.1]]) / mag dispiro widths.center (halfSw * 2) flat (mag * (1 - p)) 0 @@ -162,10 +162,39 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 corner length (width - o) corner length (-width + o) + define [TriangleArrowHeadBar x1 y1 x2 y2 width sw _length] : begin + local length : fallback _length width + return : new-glyph : PointingTo x1 y1 x2 y2 : lambda [mag] : intersection + spiro-outline + corner o 0 + corner length (width - o) + corner length (-width + o) + Rect width (-width) (0.6 * length - 0.5 * sw) (0.6 * length + 0.5 * sw) + + define [RectangleArrowTail x1 y1 x2 y2 width _length _width2] : begin + local length : fallback _length width + return : new-glyph : PointingTo x1 y1 x2 y2 : lambda [mag] : Rect width (-[fallback _width2 width]) 0 length + define [ArrowShape x1 y1 x2 y2 size] : glyph-proc include : ArrowHead x1 y1 x2 y2 size include : ArrowBar x1 y1 x2 y2 halfArrowSw + define [ArrowTailBarShape x1 y1 x2 y2 size sw] : begin + return : PointingTo x1 y1 x2 y2 : lambda [mag] : begin + dispiro + widths.rhs sw + flat mag size + curl mag (-size) + + define [ArrowFromBarShape x1 y1 x2 y2 size] : glyph-proc + local width : Math.abs (x1 - x2) + local height : Math.abs (y1 - y2) + local barShrink : size * [Math.min (width / height) (height / width)] + local p : barShrink / [Math.hypot width height] + include : ArrowHead x1 y1 x2 y2 size + include : ArrowBar [mix x1 x2 p] [mix y1 y2 p] x2 y2 halfArrowSw + include : ArrowTailBarShape [mix x1 x2 p] [mix y1 y2 p] x2 y2 size fine + define [ThinArrowShape x1 y1 x2 y2 size] : glyph-proc include : ArrowHead x1 y1 x2 y2 size include : ArrowBar x1 y1 x2 y2 (0.5 * [mix fine terminal 0.5]) @@ -228,15 +257,27 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 local headLen : MosaicUnitWidth * [Math.sqrt MosaicWidthScalar] * 0.4 local halfBarWidth : headLen / 3 local headWidth : halfBarWidth * 2 - local fine : Math.min [AdviceStroke 5] (halfBarWidth * 0.6) + + local turnWidth : headWidth * 1.5 + local barLen : headLen * 0.2 + fine * 2 + local dotGap : barLen - fine * 2 + local doubleHeadOffset : headLen * 0.4 + local whiteDoubleHeadOffset : headLen * 0.4 + 0.75 * fine + local mag : Math.hypot (y2 - y1) (x2 - x1) local p : (mag - fine) / mag local p2 : (mag - fine * [Math.sqrt 13] / 2) / mag local innerHeaderLengthShrink : fine * (1 + [Math.sqrt 13] / 2) + local p3 : (mag - doubleHeadOffset) / mag + local p4 : (mag - fine * [Math.sqrt 13] / 2 - doubleHeadOffset) / mag + local p3WD : (mag - whiteDoubleHeadOffset) / mag + local p4WD : (mag - fine * [Math.sqrt 13] / 2 - whiteDoubleHeadOffset) / mag local x1a : mix x1 x2 (1 - p) local y1a : mix y1 y2 (1 - p) + local x2FlatA : mix x1 x2 p + local y2FlatA : mix y1 y2 p local x2a : mix x1 x2 p2 local y2a : mix y1 y2 p2 local x1CoA : mix x1 x2 (-0.05) @@ -259,6 +300,55 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 TriangleArrowHead x1CoA y1CoA x2a y2a (headWidth - innerHeaderLengthShrink * headWidth / headLen) (headLen - innerHeaderLengthShrink) ArrowBar x1CoA y1CoA x2a y2a (halfBarWidth - fine / 2) 2 + [Just "white-closing"] : difference + ArrowBar x1 y1 x2 y2 (halfBarWidth + fine / 2) 0 0 + ArrowBar x1CoA y1CoA x2FlatA y2FlatA (halfBarWidth - fine / 2) 0 0 + + [Just "whiteDouble"] : difference + union + difference + TriangleArrowHead x1 y1 x2 y2 headWidth headLen + TriangleArrowHead x1a y1a x2a y2a (headWidth - innerHeaderLengthShrink * headWidth / headLen) (headLen - innerHeaderLengthShrink) + TriangleArrowHead x1 y1 [mix x1 x2 p3WD] [mix y1 y2 p3WD] headWidth headLen + ArrowBar x1 y1 [mix x1 x2 p3WD] [mix y1 y2 p3WD] (halfBarWidth + fine / 2) 2 + union + TriangleArrowHead x1a y1a [mix x1 x2 p4WD] [mix y1 y2 p4WD] (headWidth - innerHeaderLengthShrink * headWidth / headLen) (headLen - innerHeaderLengthShrink) + ArrowBar x1CoA y1CoA [mix x1 x2 p4WD] [mix y1 y2 p4WD] (halfBarWidth - fine / 2) 2 + + [Just "whiteBarred"] : union + difference + union + TriangleArrowHead x1 y1 x2 y2 headWidth headLen + ArrowBar x1 y1 x2 y2 (halfBarWidth + fine / 2) 2 + union + TriangleArrowHead x1CoA y1CoA x2a y2a (headWidth - innerHeaderLengthShrink * headWidth / headLen) (headLen - innerHeaderLengthShrink) + ArrowBar x1CoA y1CoA x2a y2a (halfBarWidth - fine / 2) 2 + TriangleArrowHeadBar x1 y1 x2 y2 headWidth fine headLen + + [Just "whiteDot"] : difference + union + RectangleArrowTail x1 y1 x2 y2 (halfBarWidth + fine / 2) barLen + ArrowBar x1 y1 x2 y2 (halfBarWidth + fine / 2) 0 (barLen + dotGap) + union + RectangleArrowTail x1a y1a x2FlatA y2FlatA (halfBarWidth - fine / 2) (barLen - fine * 2) + ArrowBar x1CoA y1CoA x2FlatA y2FlatA (halfBarWidth - fine / 2) 0 (barLen + dotGap) + + [Just "whiteRect"] : difference + union + RectangleArrowTail x1 y1 x2 y2 headWidth barLen + ArrowBar x1 y1 x2 y2 (halfBarWidth + fine / 2) 0.5 + union + RectangleArrowTail x1a y1a x2FlatA y2FlatA (headWidth - fine) (barLen - fine * 2) + ArrowBar x1CoA y1CoA x2FlatA y2FlatA (halfBarWidth - fine / 2) 0.5 + + [Just "whiteLeftTurn"] : difference + union + RectangleArrowTail x1 y1 x2 y2 (halfBarWidth + fine / 2) (halfBarWidth * 2 + fine * 1.5) turnWidth + ArrowBar x1 y1 x2 y2 (halfBarWidth + fine / 2) 1 + union + RectangleArrowTail x1a y1a x2FlatA y2FlatA (halfBarWidth - fine / 2) (halfBarWidth * 2 - fine / 2) (turnWidth - fine) + ArrowBar x1CoA y1CoA x2FlatA y2FlatA (halfBarWidth - fine / 2) 1 + [Just "black"] : union TriangleArrowHead x1 y1 x2 y2 headWidth headLen ArrowBar x1 y1 x2 y2 halfBarWidth 2 @@ -756,6 +846,15 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 DoubleArrow [ThickArrowShape 'white-open'] [MangleName 'uni2B04'] [MangleUnicode 0x2B04] arrowSB SymbolMid arrowRSB SymbolMid DoubleArrow [ThickArrowShape 'white-open'] [MangleName 'uni21F3'] [MangleUnicode 0x21F3] arrowMidX arrowBot arrowMidX arrowTop + DoubleArrow2 [ThickArrowShape 'whiteDot'] [ThickArrowShape 'white-open'] [MangleName 'uni21EA'] [MangleUnicode 0x21EA] arrowMidX arrowBot arrowMidX arrowTop + DoubleArrow2 [ThickArrowShape 'whiteRect'] [ThickArrowShape 'white-open'] [MangleName 'uni21EB'] [MangleUnicode 0x21EB] arrowMidX arrowBot arrowMidX arrowTop + DoubleArrow2 [ThickArrowShape 'whiteRect'] [ThickArrowShape 'whiteBarred'] [MangleName 'uni21EC'] [MangleUnicode 0x21EC] arrowMidX arrowBot arrowMidX arrowTop + DoubleArrow2 [ThickArrowShape 'white-closing'] [ThickArrowShape 'whiteDouble'] [MangleName 'uni21EE'] [MangleUnicode 0x21EE] arrowMidX arrowBot arrowMidX arrowTop + DoubleArrow2 [ThickArrowShape 'whiteRect'] [ThickArrowShape 'whiteDouble'] [MangleName 'uni21EF'] [MangleUnicode 0x21EF] arrowMidX arrowBot arrowMidX arrowTop + DoubleArrow2 [ThickArrowShape 'whiteRect'] [ThickArrowShape 'white-open'] [MangleName 'uni21F0'] [MangleUnicode 0x21F0] arrowSB SymbolMid arrowRSB SymbolMid + DoubleArrow2 [ThickArrowShape 'whiteDot'] [ThickArrowShape 'whiteBarred'] [MangleName 'uni2BB8'] [MangleUnicode 0x2BB8] arrowMidX arrowBot arrowMidX arrowTop + DoubleArrow2 [ThickArrowShape 'whiteLeftTurn'] [ThickArrowShape 'white-open'] [MangleName 'uni23CE'] [MangleUnicode 0x23CE] arrowRSB SymbolMid arrowSB SymbolMid + MkArrow [ThickArrowShape 'black'] [MangleName 'uni2B05'] [MangleUnicode 0x2B05] arrowRSB SymbolMid arrowSB SymbolMid MkArrow [ThickArrowShape 'black'] [MangleName 'uni2B06'] [MangleUnicode 0x2B06] arrowMidX arrowBot arrowMidX arrowTop MkArrow [ThickArrowShape 'black'] [MangleName 'uni27A1'] [MangleUnicode 0x27A1] arrowSB SymbolMid arrowRSB SymbolMid @@ -768,6 +867,12 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 DoubleArrow [ThickArrowShape 'black'] [MangleName 'uni2B0C'] [MangleUnicode 0x2B0C] arrowSB SymbolMid arrowRSB SymbolMid DoubleArrow [ThickArrowShape 'black'] [MangleName 'uni2B0D'] [MangleUnicode 0x2B0D] arrowMidX arrowBot arrowMidX arrowTop + create-glyph [MangleName 'uni21ED'] [MangleUnicode 0x21ED] : composite-proc + refer-glyph : MangleName 'uni21EB' + intersection + refer-glyph : MangleName 'uni2B06' + Rect arrowTop arrowBot (arrowMidX - [AdviceStroke 5] / 2) (arrowMidX + [AdviceStroke 5] / 2) + MkArrow [ThickArrowShape 'blackSemiHookL'] [MangleName 'uni27A5'] [MangleUnicode 0x27A5] arrowSB SymbolMid arrowRSB SymbolMid MkArrow [ThickArrowShape 'blackSemiHookR'] [MangleName 'uni27A6'] [MangleUnicode 0x27A6] arrowSB SymbolMid arrowRSB SymbolMid @@ -844,12 +949,18 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 MkArrow ArrowShape [MangleName 'arrowRightK'] null arrowSB SymbolMid (arrowRSB - fine) SymbolMid MkArrow ArrowShape [MangleName 'arrowUpK'] null arrowMidX arrowBot arrowMidX (arrowTop - fine) MkArrow ArrowShape [MangleName 'arrowDownK'] null arrowMidX arrowTop arrowMidX (arrowBot + fine) - MkArrow ArrowShape [MangleName 'arrowLeftSK'] null (arrowRSB - fine / 2) SymbolMid arrowSB SymbolMid - MkArrow ArrowShape [MangleName 'arrowRightSK'] null (arrowSB + fine / 2) SymbolMid arrowRSB SymbolMid - MkArrow ArrowShape [MangleName 'arrowUpSK'] null arrowMidX (arrowBot + fine / 2) arrowMidX arrowTop - MkArrow ArrowShape [MangleName 'arrowDownSK'] null arrowMidX (arrowTop - fine / 2) arrowMidX arrowBot + MkArrow [ThickArrowShape 'black'] [MangleName 'blackArrowDownK'] null arrowMidX arrowTop arrowMidX (arrowBot + fine) MkArrow ArrowShape [MangleName 'arrowUpLeftTK'] null arrowRSB arrowBot arrowSB (arrowTop - [Math.max (arrowWidth / 8) (fine * 1.5)]) + MkArrow ArrowFromBarShape [MangleName 'barArrowLeft'] [MangleUnicode 0x21A4] arrowRSB SymbolMid arrowSB SymbolMid + MkArrow ArrowFromBarShape [MangleName 'barArrowUp'] [MangleUnicode 0x21A5] arrowMidX arrowBot arrowMidX arrowTop + MkArrow ArrowFromBarShape [MangleName 'barArrowRight'] [MangleUnicode 0x21A6] arrowSB SymbolMid arrowRSB SymbolMid + MkArrow ArrowFromBarShape [MangleName 'barArrowDown'] [MangleUnicode 0x21A7] arrowMidX arrowTop arrowMidX arrowBot + MkArrow ArrowFromBarShape [MangleName 'barArrowUpLeft'] [MangleUnicode 0x1F8B8] arrowDiagRSB arrowDiagBot arrowDiagSB arrowDiagTop + MkArrow ArrowFromBarShape [MangleName 'barArrowUpRight'] [MangleUnicode 0x1F8B9] arrowDiagSB arrowDiagBot arrowDiagRSB arrowDiagTop + MkArrow ArrowFromBarShape [MangleName 'barArrowDownRight'] [MangleUnicode 0x1F8BA] arrowDiagSB arrowDiagTop arrowDiagRSB arrowDiagBot + MkArrow ArrowFromBarShape [MangleName 'barArrowDownLeft'] [MangleUnicode 0x1F8BB] arrowDiagRSB arrowDiagTop arrowDiagSB arrowDiagBot + create-glyph [MangleName 'arrowBarLeft'] [MangleUnicode 0x21E4] : composite-proc refer-glyph : MangleName 'arrowLeftK' VBar.m arrowSB (SymbolMid - arrowHeadSize) (SymbolMid + arrowHeadSize) fine @@ -862,18 +973,9 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 create-glyph [MangleName 'arrowBarDown'] [MangleUnicode 0x2913] : composite-proc refer-glyph : MangleName 'arrowDownK' HBar.m (arrowMidX - arrowHeadSize) (arrowMidX + arrowHeadSize) arrowBot fine - create-glyph [MangleName 'barArrowLeft'] [MangleUnicode 0x21A4] : composite-proc - refer-glyph : MangleName 'arrowLeftSK' - VBar.m arrowRSB (SymbolMid - arrowHeadSize) (SymbolMid + arrowHeadSize) fine - create-glyph [MangleName 'barArrowRight'] [MangleUnicode 0x21A6] : composite-proc - refer-glyph : MangleName 'arrowRightSK' - VBar.m arrowSB (SymbolMid - arrowHeadSize) (SymbolMid + arrowHeadSize) fine - create-glyph [MangleName 'barArrowUp'] [MangleUnicode 0x21A5] : composite-proc - refer-glyph : MangleName 'arrowUpSK' + create-glyph [MangleName 'blackArrowBarDown'] [MangleUnicode 0x1F8B3] : composite-proc + refer-glyph : MangleName 'blackArrowDownK' HBar.m (arrowMidX - arrowHeadSize) (arrowMidX + arrowHeadSize) arrowBot fine - create-glyph [MangleName 'barArrowDown'] [MangleUnicode 0x21A7] : composite-proc - refer-glyph : MangleName 'arrowDownSK' - HBar.m (arrowMidX - arrowHeadSize) (arrowMidX + arrowHeadSize) arrowTop fine MkArrow [HalfArrowShape RHSHalfArrowHead] [MangleName 'arrowLeftHRK'] null arrowRSB SymbolMid (arrowSB + fine) SymbolMid MkArrow [HalfArrowShape LHSHalfArrowHead] [MangleName 'arrowLeftHLK'] null arrowRSB SymbolMid (arrowSB + fine) SymbolMid @@ -1220,7 +1322,7 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 include : union TriangleArrowHead x3ArrowHeadMock y3 x4 y4 arrowHeadSize ZigZagArrowBar - + do "Lightning" define x1 : mix arrowMidX arrowRSB (0.875 / [Math.sqrt MosaicWidthScalar]) define x2 : mix arrowMidX arrowSB (0.875 / [Math.sqrt MosaicWidthScalar]) diff --git a/packages/font-glyphs/src/symbol/geometric/plain.ptl b/packages/font-glyphs/src/symbol/geometric/plain.ptl index 02593460c3..1c84eaff0b 100644 --- a/packages/font-glyphs/src/symbol/geometric/plain.ptl +++ b/packages/font-glyphs/src/symbol/geometric/plain.ptl @@ -217,7 +217,7 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1 local offsetY : space * 0.45 include : union with-transform [Translate (-offsetX) (-offsetY)] : refer-glyph : MangleName [if square1 'blackMediumSquare' 'whiteMediumSquare'] - with-transform [Translate offsetX offsetY] : refer-glyph : MangleName [if square2 'blackMediumSquare' 'whiteMediumSquare'] + with-transform [Translate offsetX offsetY] : refer-glyph : MangleName [if square2 'blackMediumSquare' 'whiteMediumSquare'] SquareOverlap 'overlapWWSquareRev' 0x29C9 1 0 0 SquareOverlap 'overlapWWSquare' 0x2BBA 0 0 0 diff --git a/packages/font-glyphs/src/symbol/mosaic.ptl b/packages/font-glyphs/src/symbol/mosaic.ptl index 6dab9551dd..9db20e5d75 100644 --- a/packages/font-glyphs/src/symbol/mosaic.ptl +++ b/packages/font-glyphs/src/symbol/mosaic.ptl @@ -1,1309 +1,12 @@ -###### Teletext symbols $$include '../meta/macros.ptl' -import [mix linreg clamp fallback] from "@iosevka/util" - -glyph-module - -glyph-block Symbol-Mosaic : begin - glyph-block-import CommonShapes - glyph-block-import Common-Derivatives - - define MosaicTop fontMetrics.os2.sTypoAscender - define MosaicBottom fontMetrics.os2.sTypoDescender - - for-width-kinds WideWidth4 - - define top MosaicTop - define bottom MosaicBottom - define left 0 - define right MosaicWidth - - # Corner numbers - # 1 2 3 - # 4 5 - # 6 7 - # 8 9 0 - define [PatternCorner23 bit] : match bit - 1 : corner [mix left right (0 / 2)] [mix top bottom (0 / 3)] - 2 : corner [mix left right (1 / 2)] [mix top bottom (0 / 3)] - 3 : corner [mix left right (2 / 2)] [mix top bottom (0 / 3)] - 4 : corner [mix left right (0 / 2)] [mix top bottom (1 / 3)] - 5 : corner [mix left right (2 / 2)] [mix top bottom (1 / 3)] - 6 : corner [mix left right (0 / 2)] [mix top bottom (2 / 3)] - 7 : corner [mix left right (2 / 2)] [mix top bottom (2 / 3)] - 8 : corner [mix left right (0 / 2)] [mix top bottom (3 / 3)] - 9 : corner [mix left right (1 / 2)] [mix top bottom (3 / 3)] - 0 : corner [mix left right (2 / 2)] [mix top bottom (3 / 3)] - - # Corner numbers - # 1 2 3 - # 4 5 6 - # 7 8 9 - define [PatternCorner22 bit] : match bit - 1 : corner [mix left right (0 / 2)] [mix top bottom (0 / 2)] - 2 : corner [mix left right (1 / 2)] [mix top bottom (0 / 2)] - 3 : corner [mix left right (2 / 2)] [mix top bottom (0 / 2)] - 4 : corner [mix left right (0 / 2)] [mix top bottom (1 / 2)] - 5 : corner [mix left right (1 / 2)] [mix top bottom (1 / 2)] - 6 : corner [mix left right (2 / 2)] [mix top bottom (1 / 2)] - 7 : corner [mix left right (0 / 2)] [mix top bottom (2 / 2)] - 8 : corner [mix left right (1 / 2)] [mix top bottom (2 / 2)] - 9 : corner [mix left right (2 / 2)] [mix top bottom (2 / 2)] - define [PatternPolygon22 bits] : spiro-outline : bits.map : x => [PatternCorner22 (x - 0)] - - define [BEGlyphName unicode] : MangleName ('be' + [unicode.toString 16 :.toUpperCase]) - define [BMGlyphName unicode] : MangleName ('blockMosaic/' + [unicode.toString 16 :.toUpperCase]) - define [BdGlyphName unicode] : MangleName ('bd' + [unicode.toString 16 :.toUpperCase]) - - ### Block mosaic - do "Block Mosaic" : begin - define [BlockMosaicTile w h id] : glyph-proc - local column : id % w - local row : Math.floor (id / w) - define cw : (right - left) / w - define ch : (top - bottom) / h - include : spiro-outline - corner (column * cw) (top - row * ch) - corner ((column + 1) * cw) (top - row * ch) - corner ((column + 1) * cw) (top - (row + 1) * ch) - corner (column * cw) (top - (row + 1) * ch) - - define [BlockMosaicPattern w h bits] : glyph-proc - if (bits.length > 0) : include : union - BlockMosaicTile w h bits.0 - BlockMosaicPattern w h : bits.slice 1 - - define [BlockMosaic23 unicode pattern] : begin - create-glyph [BMGlyphName unicode] [MangleUnicode unicode] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : BlockMosaicPattern 2 3 : [pattern.split ''].map : x => x - 1 - - define [BlockMosaic24 unicode pattern] : begin - create-glyph [BMGlyphName unicode] [MangleUnicode unicode] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : BlockMosaicPattern 2 4 : [pattern.split ''].map : x => x - 1 - - define [BlockMosaic unicode w h pattern] : begin - create-glyph [BMGlyphName unicode] [MangleUnicode unicode] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : BlockMosaicPattern w h pattern - - BlockMosaic23 0x1FB00 '1' - BlockMosaic23 0x1FB01 '2' - BlockMosaic23 0x1FB02 '12' - BlockMosaic23 0x1FB03 '3' - BlockMosaic23 0x1FB04 '13' - BlockMosaic23 0x1FB05 '23' - BlockMosaic23 0x1FB06 '123' - BlockMosaic23 0x1FB07 '4' - BlockMosaic23 0x1FB08 '14' - BlockMosaic23 0x1FB09 '24' - BlockMosaic23 0x1FB0A '124' - BlockMosaic23 0x1FB0B '34' - BlockMosaic23 0x1FB0C '134' - BlockMosaic23 0x1FB0D '234' - BlockMosaic23 0x1FB0E '1234' - BlockMosaic23 0x1FB0F '5' - BlockMosaic23 0x1FB10 '15' - BlockMosaic23 0x1FB11 '25' - BlockMosaic23 0x1FB12 '125' - BlockMosaic23 0x1FB13 '35' - BlockMosaic23 0x1FB14 '235' - BlockMosaic23 0x1FB15 '1235' - BlockMosaic23 0x1FB16 '45' - BlockMosaic23 0x1FB17 '145' - BlockMosaic23 0x1FB18 '245' - BlockMosaic23 0x1FB19 '1245' - BlockMosaic23 0x1FB1A '345' - BlockMosaic23 0x1FB1B '1345' - BlockMosaic23 0x1FB1C '2345' - BlockMosaic23 0x1FB1D '12345' - BlockMosaic23 0x1FB1E '6' - BlockMosaic23 0x1FB1F '16' - BlockMosaic23 0x1FB20 '26' - BlockMosaic23 0x1FB21 '126' - BlockMosaic23 0x1FB22 '36' - BlockMosaic23 0x1FB23 '136' - BlockMosaic23 0x1FB24 '236' - BlockMosaic23 0x1FB25 '1236' - BlockMosaic23 0x1FB26 '46' - BlockMosaic23 0x1FB27 '146' - BlockMosaic23 0x1FB28 '1246' - BlockMosaic23 0x1FB29 '346' - BlockMosaic23 0x1FB2A '1346' - BlockMosaic23 0x1FB2B '2346' - BlockMosaic23 0x1FB2C '12346' - BlockMosaic23 0x1FB2D '56' - BlockMosaic23 0x1FB2E '156' - BlockMosaic23 0x1FB2F '256' - BlockMosaic23 0x1FB30 '1256' - BlockMosaic23 0x1FB31 '356' - BlockMosaic23 0x1FB32 '1356' - BlockMosaic23 0x1FB33 '2356' - BlockMosaic23 0x1FB34 '12356' - BlockMosaic23 0x1FB35 '456' - BlockMosaic23 0x1FB36 '1456' - BlockMosaic23 0x1FB37 '2456' - BlockMosaic23 0x1FB38 '12456' - BlockMosaic23 0x1FB39 '3456' - BlockMosaic23 0x1FB3A '13456' - BlockMosaic23 0x1FB3B '23456' - - BlockMosaic24 0x1CD00 '3' - BlockMosaic24 0x1CD01 '23' - BlockMosaic24 0x1CD02 '123' - BlockMosaic24 0x1CD03 '4' - BlockMosaic24 0x1CD04 '14' - BlockMosaic24 0x1CD05 '124' - BlockMosaic24 0x1CD06 '34' - BlockMosaic24 0x1CD07 '134' - BlockMosaic24 0x1CD08 '234' - BlockMosaic24 0x1CD09 '5' - BlockMosaic24 0x1CD0A '15' - BlockMosaic24 0x1CD0B '25' - BlockMosaic24 0x1CD0C '125' - BlockMosaic24 0x1CD0D '135' - BlockMosaic24 0x1CD0E '235' - BlockMosaic24 0x1CD0F '1235' - BlockMosaic24 0x1CD10 '45' - BlockMosaic24 0x1CD11 '145' - BlockMosaic24 0x1CD12 '245' - BlockMosaic24 0x1CD13 '1245' - BlockMosaic24 0x1CD14 '345' - BlockMosaic24 0x1CD15 '1345' - BlockMosaic24 0x1CD16 '2345' - BlockMosaic24 0x1CD17 '12345' - BlockMosaic24 0x1CD18 '6' - BlockMosaic24 0x1CD19 '16' - BlockMosaic24 0x1CD1A '26' - BlockMosaic24 0x1CD1B '126' - BlockMosaic24 0x1CD1C '36' - BlockMosaic24 0x1CD1D '136' - BlockMosaic24 0x1CD1E '236' - BlockMosaic24 0x1CD1F '1236' - BlockMosaic24 0x1CD20 '146' - BlockMosaic24 0x1CD21 '246' - BlockMosaic24 0x1CD22 '1246' - BlockMosaic24 0x1CD23 '346' - BlockMosaic24 0x1CD24 '1346' - BlockMosaic24 0x1CD25 '2346' - BlockMosaic24 0x1CD26 '12346' - BlockMosaic24 0x1CD27 '56' - BlockMosaic24 0x1CD28 '156' - BlockMosaic24 0x1CD29 '256' - BlockMosaic24 0x1CD2A '1256' - BlockMosaic24 0x1CD2B '356' - BlockMosaic24 0x1CD2C '1356' - BlockMosaic24 0x1CD2D '2356' - BlockMosaic24 0x1CD2E '12356' - BlockMosaic24 0x1CD2F '456' - BlockMosaic24 0x1CD30 '1456' - BlockMosaic24 0x1CD31 '2456' - BlockMosaic24 0x1CD32 '12456' - BlockMosaic24 0x1CD33 '3456' - BlockMosaic24 0x1CD34 '13456' - BlockMosaic24 0x1CD35 '23456' - BlockMosaic24 0x1CD36 '17' - BlockMosaic24 0x1CD37 '27' - BlockMosaic24 0x1CD38 '127' - BlockMosaic24 0x1CD39 '37' - BlockMosaic24 0x1CD3A '137' - BlockMosaic24 0x1CD3B '237' - BlockMosaic24 0x1CD3C '1237' - BlockMosaic24 0x1CD3D '47' - BlockMosaic24 0x1CD3E '147' - BlockMosaic24 0x1CD3F '247' - BlockMosaic24 0x1CD40 '1247' - BlockMosaic24 0x1CD41 '347' - BlockMosaic24 0x1CD42 '1347' - BlockMosaic24 0x1CD43 '2347' - BlockMosaic24 0x1CD44 '12347' - BlockMosaic24 0x1CD45 '157' - BlockMosaic24 0x1CD46 '257' - BlockMosaic24 0x1CD47 '1257' - BlockMosaic24 0x1CD48 '357' - BlockMosaic24 0x1CD49 '2357' - BlockMosaic24 0x1CD4A '12357' - BlockMosaic24 0x1CD4B '457' - BlockMosaic24 0x1CD4C '1457' - BlockMosaic24 0x1CD4D '12457' - BlockMosaic24 0x1CD4E '3457' - BlockMosaic24 0x1CD4F '13457' - BlockMosaic24 0x1CD50 '23457' - BlockMosaic24 0x1CD51 '67' - BlockMosaic24 0x1CD52 '167' - BlockMosaic24 0x1CD53 '267' - BlockMosaic24 0x1CD54 '1267' - BlockMosaic24 0x1CD55 '367' - BlockMosaic24 0x1CD56 '1367' - BlockMosaic24 0x1CD57 '2367' - BlockMosaic24 0x1CD58 '12367' - BlockMosaic24 0x1CD59 '467' - BlockMosaic24 0x1CD5A '1467' - BlockMosaic24 0x1CD5B '2467' - BlockMosaic24 0x1CD5C '12467' - BlockMosaic24 0x1CD5D '3467' - BlockMosaic24 0x1CD5E '13467' - BlockMosaic24 0x1CD5F '23467' - BlockMosaic24 0x1CD60 '123467' - BlockMosaic24 0x1CD61 '567' - BlockMosaic24 0x1CD62 '1567' - BlockMosaic24 0x1CD63 '2567' - BlockMosaic24 0x1CD64 '12567' - BlockMosaic24 0x1CD65 '3567' - BlockMosaic24 0x1CD66 '13567' - BlockMosaic24 0x1CD67 '23567' - BlockMosaic24 0x1CD68 '123567' - BlockMosaic24 0x1CD69 '4567' - BlockMosaic24 0x1CD6A '14567' - BlockMosaic24 0x1CD6B '24567' - BlockMosaic24 0x1CD6C '124567' - BlockMosaic24 0x1CD6D '34567' - BlockMosaic24 0x1CD6E '134567' - BlockMosaic24 0x1CD6F '234567' - BlockMosaic24 0x1CD70 '1234567' - BlockMosaic24 0x1CD71 '18' - BlockMosaic24 0x1CD72 '28' - BlockMosaic24 0x1CD73 '128' - BlockMosaic24 0x1CD74 '38' - BlockMosaic24 0x1CD75 '138' - BlockMosaic24 0x1CD76 '238' - BlockMosaic24 0x1CD77 '1238' - BlockMosaic24 0x1CD78 '48' - BlockMosaic24 0x1CD79 '148' - BlockMosaic24 0x1CD7A '248' - BlockMosaic24 0x1CD7B '1248' - BlockMosaic24 0x1CD7C '348' - BlockMosaic24 0x1CD7D '1348' - BlockMosaic24 0x1CD7E '2348' - BlockMosaic24 0x1CD7F '12348' - BlockMosaic24 0x1CD80 '58' - BlockMosaic24 0x1CD81 '158' - BlockMosaic24 0x1CD82 '258' - BlockMosaic24 0x1CD83 '1258' - BlockMosaic24 0x1CD84 '358' - BlockMosaic24 0x1CD85 '1358' - BlockMosaic24 0x1CD86 '2358' - BlockMosaic24 0x1CD87 '12358' - BlockMosaic24 0x1CD88 '458' - BlockMosaic24 0x1CD89 '1458' - BlockMosaic24 0x1CD8A '2458' - BlockMosaic24 0x1CD8B '12458' - BlockMosaic24 0x1CD8C '3458' - BlockMosaic24 0x1CD8D '13458' - BlockMosaic24 0x1CD8E '23458' - BlockMosaic24 0x1CD8F '123458' - BlockMosaic24 0x1CD90 '168' - BlockMosaic24 0x1CD91 '268' - BlockMosaic24 0x1CD92 '1268' - BlockMosaic24 0x1CD93 '368' - BlockMosaic24 0x1CD94 '2368' - BlockMosaic24 0x1CD95 '12368' - BlockMosaic24 0x1CD96 '468' - BlockMosaic24 0x1CD97 '1468' - BlockMosaic24 0x1CD98 '12468' - BlockMosaic24 0x1CD99 '3468' - BlockMosaic24 0x1CD9A '13468' - BlockMosaic24 0x1CD9B '23468' - BlockMosaic24 0x1CD9C '568' - BlockMosaic24 0x1CD9D '1568' - BlockMosaic24 0x1CD9E '2568' - BlockMosaic24 0x1CD9F '12568' - BlockMosaic24 0x1CDA0 '3568' - BlockMosaic24 0x1CDA1 '13568' - BlockMosaic24 0x1CDA2 '23568' - BlockMosaic24 0x1CDA3 '123568' - BlockMosaic24 0x1CDA4 '4568' - BlockMosaic24 0x1CDA5 '14568' - BlockMosaic24 0x1CDA6 '24568' - BlockMosaic24 0x1CDA7 '124568' - BlockMosaic24 0x1CDA8 '34568' - BlockMosaic24 0x1CDA9 '134568' - BlockMosaic24 0x1CDAA '234568' - BlockMosaic24 0x1CDAB '1234568' - BlockMosaic24 0x1CDAC '178' - BlockMosaic24 0x1CDAD '278' - BlockMosaic24 0x1CDAE '1278' - BlockMosaic24 0x1CDAF '378' - BlockMosaic24 0x1CDB0 '1378' - BlockMosaic24 0x1CDB1 '2378' - BlockMosaic24 0x1CDB2 '12378' - BlockMosaic24 0x1CDB3 '478' - BlockMosaic24 0x1CDB4 '1478' - BlockMosaic24 0x1CDB5 '2478' - BlockMosaic24 0x1CDB6 '12478' - BlockMosaic24 0x1CDB7 '3478' - BlockMosaic24 0x1CDB8 '13478' - BlockMosaic24 0x1CDB9 '23478' - BlockMosaic24 0x1CDBA '123478' - BlockMosaic24 0x1CDBB '578' - BlockMosaic24 0x1CDBC '1578' - BlockMosaic24 0x1CDBD '2578' - BlockMosaic24 0x1CDBE '12578' - BlockMosaic24 0x1CDBF '3578' - BlockMosaic24 0x1CDC0 '13578' - BlockMosaic24 0x1CDC1 '23578' - BlockMosaic24 0x1CDC2 '123578' - BlockMosaic24 0x1CDC3 '4578' - BlockMosaic24 0x1CDC4 '14578' - BlockMosaic24 0x1CDC5 '24578' - BlockMosaic24 0x1CDC6 '124578' - BlockMosaic24 0x1CDC7 '34578' - BlockMosaic24 0x1CDC8 '134578' - BlockMosaic24 0x1CDC9 '234578' - BlockMosaic24 0x1CDCA '1234578' - BlockMosaic24 0x1CDCB '678' - BlockMosaic24 0x1CDCC '1678' - BlockMosaic24 0x1CDCD '2678' - BlockMosaic24 0x1CDCE '12678' - BlockMosaic24 0x1CDCF '3678' - BlockMosaic24 0x1CDD0 '13678' - BlockMosaic24 0x1CDD1 '23678' - BlockMosaic24 0x1CDD2 '123678' - BlockMosaic24 0x1CDD3 '4678' - BlockMosaic24 0x1CDD4 '14678' - BlockMosaic24 0x1CDD5 '24678' - BlockMosaic24 0x1CDD6 '124678' - BlockMosaic24 0x1CDD7 '34678' - BlockMosaic24 0x1CDD8 '134678' - BlockMosaic24 0x1CDD9 '234678' - BlockMosaic24 0x1CDDA '1234678' - BlockMosaic24 0x1CDDB '15678' - BlockMosaic24 0x1CDDC '25678' - BlockMosaic24 0x1CDDD '125678' - BlockMosaic24 0x1CDDE '35678' - BlockMosaic24 0x1CDDF '235678' - BlockMosaic24 0x1CDE0 '1235678' - BlockMosaic24 0x1CDE1 '45678' - BlockMosaic24 0x1CDE2 '145678' - BlockMosaic24 0x1CDE3 '1245678' - BlockMosaic24 0x1CDE4 '1345678' - BlockMosaic24 0x1CDE5 '2345678' - - BlockMosaic 0x1FB95 4 4 {0 2 5 7 8 10 13 15} - BlockMosaic 0x1FB96 4 4 {1 3 4 6 9 11 12 14} - BlockMosaic 0x1FB97 4 4 {4 5 6 7 12 13 14 15} - - do "ArchDepth Mosaic" : begin - define [SmoothMosaic23 unicode pattern] : begin - create-glyph [MangleName ('blockMosaicSmooth23/' + pattern)] [MangleUnicode unicode] : glyph-proc - set-width MosaicWidth - include : ForceUpright - define corners : [pattern.split ''].map : x => [PatternCorner23 (x - 0)] - include : spiro-outline corners - - SmoothMosaic23 0x1FB3C '689' - SmoothMosaic23 0x1FB3D '680' - SmoothMosaic23 0x1FB3E '489' - SmoothMosaic23 0x1FB3F '480' - SmoothMosaic23 0x1FB40 '189' - SmoothMosaic23 0x1FB41 '42308' - SmoothMosaic23 0x1FB42 '4308' - SmoothMosaic23 0x1FB43 '62308' - SmoothMosaic23 0x1FB44 '6308' - SmoothMosaic23 0x1FB45 '2308' - SmoothMosaic23 0x1FB46 '6508' - SmoothMosaic23 0x1FB47 '970' - SmoothMosaic23 0x1FB48 '870' - SmoothMosaic23 0x1FB49 '950' - SmoothMosaic23 0x1FB4A '850' - SmoothMosaic23 0x1FB4B '930' - SmoothMosaic23 0x1FB4C '25081' - SmoothMosaic23 0x1FB4D '5081' - SmoothMosaic23 0x1FB4E '27081' - SmoothMosaic23 0x1FB4F '7081' - SmoothMosaic23 0x1FB50 '2081' - SmoothMosaic23 0x1FB51 '7084' - SmoothMosaic23 0x1FB52 '69031' - SmoothMosaic23 0x1FB53 '6031' - SmoothMosaic23 0x1FB54 '49031' - SmoothMosaic23 0x1FB55 '4031' - SmoothMosaic23 0x1FB56 '9031' - SmoothMosaic23 0x1FB57 '142' - SmoothMosaic23 0x1FB58 '143' - SmoothMosaic23 0x1FB59 '162' - SmoothMosaic23 0x1FB5A '163' - SmoothMosaic23 0x1FB5B '182' - SmoothMosaic23 0x1FB5C '1653' - SmoothMosaic23 0x1FB5D '18973' - SmoothMosaic23 0x1FB5E '1873' - SmoothMosaic23 0x1FB5F '18953' - SmoothMosaic23 0x1FB60 '1853' - SmoothMosaic23 0x1FB61 '1893' - SmoothMosaic23 0x1FB62 '235' - SmoothMosaic23 0x1FB63 '135' - SmoothMosaic23 0x1FB64 '237' - SmoothMosaic23 0x1FB65 '137' - SmoothMosaic23 0x1FB66 '230' - SmoothMosaic23 0x1FB67 '1473' - - define [SmoothMosaic22 unicode pattern] : begin - create-glyph [MangleName ('blockMosaicSmooth22/' + pattern)] [MangleUnicode unicode] : glyph-proc - set-width MosaicWidth - include : ForceUpright - define corners : [pattern.split ''].map : x => [PatternCorner22 (x - 0)] - include : spiro-outline corners - - SmoothMosaic22 0x1FB68 '15793' - SmoothMosaic22 0x1FB69 '17935' - SmoothMosaic22 0x1FB6A '17953' - SmoothMosaic22 0x1FB6B '17593' - SmoothMosaic22 0x1FB6C '175' - SmoothMosaic22 0x1FB6D '315' - SmoothMosaic22 0x1FB6E '359' - SmoothMosaic22 0x1FB6F '579' - SmoothMosaic22 0x1FB9A '1379' - SmoothMosaic22 0x1FB9B '1739' - - ### Large Type Pieces - do 'Large Type Pieces' - local stemleft : mix 0 MosaicWidth (1 / 3) - local stemright : mix 0 MosaicWidth (2 / 3) - local stemmid : mix 0 MosaicWidth 0.5 - define [yPart n] : return : mix top bottom (n / 5) - - define [Stem start end] : spiro-outline - corner stemleft [yPart start] - corner stemright [yPart start] - corner stemright [yPart (end + 1)] - corner stemleft [yPart (end + 1)] - - define [TopBit] : spiro-outline - corner stemleft top - corner stemright top - corner stemmid [mix top bottom 0.1] - - define [BottomBit] : spiro-outline - corner stemmid [mix top bottom 0.9] - corner stemleft bottom - corner stemright bottom - - define [Arm yStart yEnd left right] : spiro-outline - corner left [yPart yStart] - corner right [yPart yEnd] - corner right [yPart (yEnd + 1)] - corner left [yPart (yStart + 1)] - - define [Arc yHori yVert fRight] : spiro-outline - corner [if fRight MosaicWidth 0] [yPart [if fRight yHori (yHori + 1)]] - corner [if fRight MosaicWidth 0] [yPart [if fRight (yHori + 1) yHori]] - corner [if (yHori < yVert) stemright stemleft] [yPart [if (yHori < yVert) (yVert + 1) yVert]] - corner [if (yHori < yVert) stemleft stemright] [yPart [if (yHori < yVert) (yVert + 1) yVert]] - - define [MakePiece unicode shape] : begin - create-glyph [MangleName unicode] [MangleUnicode unicode] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include shape - - MakePiece 0x1CE1A : union [Stem 4 4] [Arc 2 3 1] - MakePiece 0x1CE1B : union [Stem 2 4] [Arm 2 2 stemright MosaicWidth] - MakePiece 0x1CE1C : union [Stem 2 4] - MakePiece 0x1CE1D : union [Stem 2 4] [Arm 2 3 stemright MosaicWidth] - MakePiece 0x1CE1E : union [Arm 2 2 stemleft MosaicWidth] - MakePiece 0x1CE1F : union [Arm 2 2 0 MosaicWidth] - MakePiece 0x1CE20 : union [Stem 2 4] [Arm 2 2 0 MosaicWidth] - MakePiece 0x1CE21 : union [Arc 3 4 0] [Arc 3 4 1] - MakePiece 0x1CE22 : union [Arc 3 4 0] - MakePiece 0x1CE23 : union [Stem 4 4] - MakePiece 0x1CE24 : union [Stem 4 4] [Arc 2 3 0] - MakePiece 0x1CE25 : union [Arm 2 2 0 stemright] - MakePiece 0x1CE26 : union [Stem 2 4] [Arm 3 2 0 stemleft] - MakePiece 0x1CE27 : union [Stem 2 4] [Arm 2 2 0 stemleft] - MakePiece 0x1CE28 : union [Stem 0 4] [Arm 2 2 stemright MosaicWidth] - MakePiece 0x1CE29 : union [Stem 0 4] - MakePiece 0x1CE2A : union [Arc 1 0 1] [Arc 3 4 1] - MakePiece 0x1CE2B : union [Arc 1 0 1] - MakePiece 0x1CE2C : union [Arc 3 4 1] - MakePiece 0x1CE2D : union [Stem 0 0] - MakePiece 0x1CE2E : union [Stem 0 0] [Stem 4 4] [Arc 2 1 1] [Arc 2 3 1] - MakePiece 0x1CE2F : union [Arm 2 2 0 stemmid] [Arm 2 1 stemmid MosaicWidth] [Arm 2 3 stemmid MosaicWidth] - MakePiece 0x1CE30 : union [TopBit] - MakePiece 0x1CE31 : union [BottomBit] - MakePiece 0x1CE32 : union [Arm 1 3 0 MosaicWidth] [Arm 3 1 0 MosaicWidth] - MakePiece 0x1CE33 : union [Stem 3 4] [Arc 1 2 0] [Arc 1 2 1] - MakePiece 0x1CE34 : union [Arm 2 2 0 MosaicWidth] [Arm 3 1 0 MosaicWidth] - MakePiece 0x1CE35 : union [Stem 3 4] [Arc 1 2 1] - MakePiece 0x1CE36 : union [Stem 0 4] [Arm 2 2 0 stemleft] - MakePiece 0x1CE37 : union [Stem 0 0] [Stem 4 4] [Arc 2 1 0] [Arc 2 3 0] - MakePiece 0x1CE38 : union [Arc 1 0 0] [Arc 3 4 0] - MakePiece 0x1CE39 : union [Stem 0 4] [Arm 1 2 0 stemleft] - MakePiece 0x1CE3A : union [Stem 0 4] [Arm 2 2 0 MosaicWidth] - MakePiece 0x1CE3B : union [Arc 0 1 0] - MakePiece 0x1CE3C : union [Stem 0 2] - MakePiece 0x1CE3D : union [Stem 0 2] [Arm 2 2 stemright MosaicWidth] - MakePiece 0x1CE3E : union [Stem 0 0] [Arc 2 1 1] - MakePiece 0x1CE3F : union [Stem 0 2] [Arm 2 1 stemright MosaicWidth] - MakePiece 0x1CE40 : union [Stem 0 2] [Arm 2 2 0 MosaicWidth] - MakePiece 0x1CE41 : union [Arm 1 2.5 0 stemmid] [Arm 2.5 1 stemmid MosaicWidth] - MakePiece 0x1CE42 : union [Arc 1 0 0] [Arc 1 0 1] - MakePiece 0x1CE43 : union [Stem 0 0] [Arc 2 1 0] - MakePiece 0x1CE44 : union [Stem 0 2] [Arm 2 2 0 stemleft] - MakePiece 0x1CE45 : union [Stem 0 0] [Arc 2 1 0] [Arm 0 2 0 stemright] - MakePiece 0x1CE46 : union [Stem 0 2] [Arm 1 2 0 stemleft] - MakePiece 0x1CE47 : union [Stem 3 4] - MakePiece 0x1CE48 : union [Stem 1 4] - MakePiece 0x1CE49 : union [Stem 3 3] - MakePiece 0x1CE4A : union [Stem 2 3] - MakePiece 0x1CE4B : union [Stem 1 3] - MakePiece 0x1CE4C : union [Stem 0 3] - MakePiece 0x1CE4D : union [Stem 2 2] - MakePiece 0x1CE4E : union [Stem 1 2] - MakePiece 0x1CE4F : union [Stem 1 1] - MakePiece 0x1CE50 : union [Stem 0 1] - - ### Blocks - do 'Block Shapes' - define [FillBlock hStart hEnd vStart vEnd] : spiro-outline - corner [mix left right hStart] [mix bottom top vStart] - corner [mix left right hStart] [mix bottom top vEnd] - corner [mix left right hEnd] [mix bottom top vEnd] - corner [mix left right hEnd] [mix bottom top vStart] - - define [BlockElementGlyph unicode hStart hEnd vStart vEnd] : begin - create-glyph [BEGlyphName unicode] [MangleUnicode unicode] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : FillBlock hStart hEnd vStart vEnd - - define [BlockElementGlyph2 unicode hStart1 hEnd1 vStart1 vEnd1 hStart2 hEnd2 vStart2 vEnd2] : begin - create-glyph [BEGlyphName unicode] [MangleUnicode unicode] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : union - FillBlock hStart1 hEnd1 vStart1 vEnd1 - FillBlock hStart2 hEnd2 vStart2 vEnd2 - - BlockElementGlyph 0x2588 0 1 0 1 - BlockElementGlyph 0x1FB86 0 1 (1 / 8) 1 - BlockElementGlyph 0x1FB85 0 1 (2 / 8) 1 - BlockElementGlyph 0x1FB84 0 1 (3 / 8) 1 - BlockElementGlyph 0x2580 0 1 (1 / 2) 1 - BlockElementGlyph 0x1FB83 0 1 (5 / 8) 1 - BlockElementGlyph 0x1FB82 0 1 (6 / 8) 1 - BlockElementGlyph 0x2594 0 1 (7 / 8) 1 - BlockElementGlyph 0x2595 (7 / 8) 1 0 1 - BlockElementGlyph 0x1FB87 (6 / 8) 1 0 1 - BlockElementGlyph 0x1FB88 (5 / 8) 1 0 1 - BlockElementGlyph 0x2590 (1 / 2) 1 0 1 - BlockElementGlyph 0x1FB89 (3 / 8) 1 0 1 - BlockElementGlyph 0x1FB8A (2 / 8) 1 0 1 - BlockElementGlyph 0x1FB8B (1 / 8) 1 0 1 - - foreach [fill : range 1 8] : begin - BlockElementGlyph (0x2580 + fill) 0 1 0 (fill / 8) - BlockElementGlyph (0x2590 - fill) 0 (fill / 8) 0 1 - if (fill >= 2 && fill <= 7) : begin - BlockElementGlyph (0x1FB70 - 2 + fill) ((fill - 1) / 8) (fill / 8) 0 1 - BlockElementGlyph (0x1FB76 - 2 + fill) 0 1 (1 - (fill - 1) / 8) (1 - fill / 8) - - BlockElementGlyph2 0x1FB7C 0 (1 / 8) 0 1 0 1 0 (1 / 8) - BlockElementGlyph2 0x1FB7D 0 (1 / 8) 0 1 0 1 (7 / 8) 1 - BlockElementGlyph2 0x1FB7E (7 / 8) 1 0 1 0 1 (7 / 8) 1 - BlockElementGlyph2 0x1FB7F (7 / 8) 1 0 1 0 1 0 (1 / 8) - BlockElementGlyph2 0x1FB80 0 1 (7 / 8) 1 0 1 0 (1 / 8) - create-glyph [BEGlyphName 0x1FB81] [MangleUnicode 0x1FB81] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : union - FillBlock 0 1 (7 / 8) 1 - FillBlock 0 1 (5 / 8) (6 / 8) - FillBlock 0 1 (3 / 8) (4 / 8) - FillBlock 0 1 0 (1 / 8) - - create-glyph [BEGlyphName 0x1FBB5] [MangleUnicode 0x1FBB5] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : refer-glyph : MangleName "arrowLeft" - include : refer-glyph : BEGlyphName 0x1FB80 - - create-glyph [BEGlyphName 0x1FBB6] [MangleUnicode 0x1FBB6] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : refer-glyph : MangleName "arrowRight" - include : refer-glyph : BEGlyphName 0x1FB80 - - create-glyph [BEGlyphName 0x1FBB7] [MangleUnicode 0x1FBB7] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : refer-glyph : MangleName "arrowDown" - include : refer-glyph : BEGlyphName 0x2595 - - create-glyph [BEGlyphName 0x1FBB8] [MangleUnicode 0x1FBB8] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : refer-glyph : MangleName "arrowUp" - include : refer-glyph : BEGlyphName 0x2595 - - create-glyph [BEGlyphName 0x1FBBC] [MangleUnicode 0x1FBBC] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : refer-glyph : MangleName "blackSmallCircle" - include : refer-glyph : BEGlyphName 0x2595 - include : refer-glyph : BEGlyphName 0x1FB80 - - define [Shade _steps fill box] : glyph-proc - local steps : Math.abs _steps - local sign : if (_steps >= 0) 1 (-1) - local sw : (top - bottom) / steps * fill - local skew : [Math.round (MosaicWidth / Width)] * (top - bottom) / 2 - include : ForceUpright - include : intersection - glyph-proc - foreach j [range (-steps * 4 - 2) (steps * 4 + 2)] : begin - local y0 : mix top bottom (j / steps) - local y1 : y0 + sign * skew - include : spiro-outline - corner 0 (y0 - sw / 2) - corner MosaicWidth (y1 - sw / 2) - corner MosaicWidth (y1 + sw / 2) - corner 0 (y0 + sw / 2) - fallback box [FillBlock 0 1 0 1] - - define FillLight (1 / 8) - define FillMedium (1 / 4) - define FillHeavy (1 / 2) - - create-glyph [MangleName 'lightShade'] [MangleUnicode 0x2591] : glyph-proc - set-width MosaicWidth - include : Shade 4 FillLight - - create-glyph [MangleName 'denseShade'] : glyph-proc - set-width MosaicWidth - include : Shade 16 FillHeavy - - define [MediumShade unicode bits] : begin - create-glyph [BEGlyphName unicode] [MangleUnicode unicode] : glyph-proc - set-width MosaicWidth - include : Shade 8 FillMedium : PatternPolygon22 bits - - define [InverseMediumShade unicode bits] : begin - create-glyph [BEGlyphName unicode] [MangleUnicode unicode] : glyph-proc - set-width MosaicWidth - include : Shade (-8) (1 - FillMedium) : PatternPolygon22 bits - include : difference - FillBlock 0 1 0 1 - PatternPolygon22 bits - - MediumShade 0x2592 {1 3 9 7} - MediumShade 0x1FB8C {1 2 8 7} - MediumShade 0x1FB8D {2 3 9 8} - MediumShade 0x1FB8E {1 3 6 4} - MediumShade 0x1FB8F {4 6 9 7} - InverseMediumShade 0x1FB90 {1 3 9 7} - InverseMediumShade 0x1FB94 {1 2 8 7} - # InverseMediumShade 0x1FB93 {2 3 9 8} - InverseMediumShade 0x1FB92 {1 3 6 4} - InverseMediumShade 0x1FB91 {4 6 9 7} - MediumShade 0x1FB9C {1 3 7} - MediumShade 0x1FB9D {1 3 9} - MediumShade 0x1FB9E {3 7 9} - MediumShade 0x1FB9F {1 7 9} - - create-glyph [MangleName 'heavyShade'] [MangleUnicode 0x2593] : glyph-proc - set-width MosaicWidth - include : Shade 8 FillHeavy - - create-glyph [MangleName 'upperLeftToLowerRightFill'] [MangleUnicode 0x1FB98] : glyph-proc - set-width MosaicWidth - include : Shade (-4) FillHeavy - - create-glyph [MangleName 'upperRightToLowerLeftFill'] [MangleUnicode 0x1FB99] : glyph-proc - set-width MosaicWidth - include : Shade 4 FillHeavy - - define filldata : list - list 0x2596 0 0 1 0 - list 0x2597 0 0 0 1 - list 0x2598 1 0 0 0 - list 0x2599 1 0 1 1 - list 0x259A 1 0 0 1 - list 0x259B 1 1 1 0 - list 0x259C 1 1 0 1 - list 0x259D 0 1 0 0 - list 0x259E 0 1 1 0 - list 0x259F 0 1 1 1 - foreach [{unicode lt rt lb rb} : items-of filldata] : begin - create-glyph [BEGlyphName unicode] [MangleUnicode unicode] : glyph-proc - set-width MosaicWidth - include : ForceUpright - define t top - define b bottom - define l 0 - define r MosaicWidth - local mx : mix l r 0.5 - local my : mix b t 0.5 - if lt : include : spiro-outline - corner l t - corner l my - corner mx my - corner mx t - if rt : include : spiro-outline - corner mx t - corner mx my - corner r my - corner r t - if lb : include : spiro-outline - corner l my - corner l b - corner mx b - corner mx my - if rb : include : spiro-outline - corner mx my - corner mx b - corner r b - corner r my - - ### Box drawing glyphs - do "Box Drawing" - local light : AdviceStroke 3.5 - local heavy : Math.max (light * 2) (Width * 0.15) - local midx : MosaicWidth / 2 - - # Add a little overshoot to the lines to make them join vertically - local verticalOvershoot 1.02 - local topy : mix bottom top verticalOvershoot - local boty : mix top bottom verticalOvershoot - local midy : mix boty topy 0.5 - - define [hline unicode pos] : begin - create-glyph [BdGlyphName unicode] [MangleUnicode unicode] : glyph-proc - set-width MosaicWidth - include : ForceUpright - local posy : mix (bottom + light / 2) (top - light / 2) pos - include : HBar.m 0 MosaicWidth posy light - - define [vline unicode pos] : begin - create-glyph [BdGlyphName unicode] [MangleUnicode unicode] : glyph-proc - set-width MosaicWidth - include : ForceUpright - local posx : mix (light / 2) (MosaicWidth - light / 2) pos - include : VBar.m posx bottom top light - - # Scan Lines - vline 0x23B8 0 - vline 0x23B9 1 - hline 0x23BA 1 - hline 0x23BB (3 / 4) - hline 0x23BC (1 / 4) - hline 0x23BD 0 - - # Split Dashed Lines - create-glyph [BdGlyphName 0x1CE0D] [MangleUnicode 0x1CE0D] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : HBar.m 0 (MosaicWidth / 3) midy light - include : HBar.m (MosaicWidth * 2 / 3) MosaicWidth midy light - - create-glyph [BdGlyphName 0x1CE0E] [MangleUnicode 0x1CE0E] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : HBar.m (MosaicWidth / 3) (MosaicWidth * 2 / 3) midy light - - define [hlinetick unicode a b c] : begin - create-glyph [BdGlyphName unicode] [MangleUnicode unicode] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : HBar.m 0 MosaicWidth midy light - if a : include : VBar.r (MosaicWidth / 3) [mix bottom midy 0.5] midy light - if b : include : VBar.r (MosaicWidth * 2 / 3) [mix bottom midy 0.5] midy light - if c : include : VBar.r MosaicWidth [mix bottom midy 0.5] midy light - - define [vlinetick unicode a b c d rev] : begin - create-glyph [BdGlyphName unicode] [MangleUnicode unicode] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : VBar.m midx [if d bottom boty] [if c top topy] light - local tickleft : if rev midx 0 - local tickright : if rev MosaicWidth midx - if a : include : HBar.t tickleft tickright [mix bottom top (1 / 3)] light - if b : include : HBar.t tickleft tickright [mix bottom top (2 / 3)] light - if c : include : HBar.t tickleft tickright top light - if d : include : HBar.b tickleft tickright bottom light - - # Box Drawing with Ticks - hlinetick 0x1CE0F 0 0 1 - hlinetick 0x1CE10 0 1 0 - hlinetick 0x1CE11 1 0 1 - hlinetick 0x1CE12 1 1 1 - vlinetick 0x1CE13 0 1 0 0 0 - vlinetick 0x1CE14 1 0 1 0 0 - vlinetick 0x1CE15 1 1 1 0 0 - vlinetick 0x1CE16 0 0 1 0 1 - vlinetick 0x1CE17 0 0 0 1 1 - vlinetick 0x1CE18 0 0 1 0 0 - vlinetick 0x1CE19 0 0 0 1 0 - - define [boxdraw unicode u d l r] : begin - create-glyph [BdGlyphName unicode] [MangleUnicode unicode] : glyph-proc - set-width MosaicWidth - include : ForceUpright - local stopH : [Math.max u d] / 2 - local stopV : [Math.max l r] / 2 - if l : include : HBar.m 0 (midx + stopH) midy l - if r : include : HBar.m (midx - stopH) MosaicWidth midy r - if d : include : VBar.m midx boty (midy + stopV) d - if u : include : VBar.m midx (midy - stopV) topy u - - define [dlboxdraw unicode u d l r] : begin - create-glyph [BdGlyphName unicode] [MangleUnicode unicode] : glyph-proc - set-width MosaicWidth - include : ForceUpright - local stopH : [Math.max u d] - light * 1 - [HSwToV : 0.5 * light] - local stopV : [Math.max l r] - light * 1.5 - local capH : [Math.max u d] - light * 1 - local capV : [Math.max l r] - light * 1 - if l : begin - include : HBar.m 0 (midx - stopH) (midy + (l - light)) light - if (l > light) : include : HBar.m 0 (midx - stopH) (midy - (l - light)) light - if r : begin - include : HBar.m (midx + stopH) MosaicWidth (midy + (r - light)) light - if (r > light) : include : HBar.m (midx + stopH) MosaicWidth (midy - (r - light)) light - if d : begin - include : VBar.m (midx + (d - light)) boty (midy - stopV) light - if (d > light) : include : VBar.m (midx - (d - light)) boty (midy - stopV) light - if u : begin - include : VBar.m (midx + (u - light)) (midy + stopV) topy light - if (u > light) : include : VBar.m (midx - (u - light)) (midy + stopV) topy light - if (stopH > 0 && [not u]) : include : HBar.m (midx - stopH - [HSwToV light]) (midx + stopH + [HSwToV light]) (midy + capV) light - if (stopH > 0 && [not d]) : include : HBar.m (midx - stopH - [HSwToV light]) (midx + stopH + [HSwToV light]) (midy - capV) light - if (stopV > 0 && [not l]) : include : VBar.m (midx - capH) (midy - stopV - light) (midy + stopV + light) light - if (stopV > 0 && [not r]) : include : VBar.m (midx + capH) (midy - stopV - light) (midy + stopV + light) light - - define [complexBoxDraw unicodeStart U D L R fn dl] : begin - local order { - {light light light light} - {light light heavy light} - {light light light heavy} - {light light heavy heavy} - {heavy light light light} - {light heavy light light} - {heavy heavy light light} - {heavy light heavy light} - {heavy light light heavy} - {light heavy heavy light} - {light heavy light heavy} - {heavy light heavy heavy} - {light heavy heavy heavy} - {heavy heavy heavy light} - {heavy heavy light heavy} - {heavy heavy heavy heavy} - } - local existings {} - local n 0 - foreach {u d l r} [items-of order] : begin - local newcome true - local masked {(U * u) (D * d) (L * l) (R * r)} - foreach existing [items-of existings] : if ('' + existing === '' + masked) : set newcome false - if newcome : begin - if ([not dl] - || ([not masked.0] || [not masked.1] || (masked.0 === masked.1)) - && ([not masked.2] || [not masked.3] || (masked.2 === masked.3)) - && (masked.0 > light || masked.1 > light || masked.2 > light || masked.3 > light) - ) : begin - [fallback fn boxdraw].apply null {(unicodeStart + n) :: masked} - inc n - existings.push masked - - # Straight - boxdraw 0x2500 0 0 light light - boxdraw 0x2501 0 0 heavy heavy - boxdraw 0x2502 light light 0 0 - boxdraw 0x2503 heavy heavy 0 0 - boxdraw 0x2574 0 0 light 0 - boxdraw 0x2575 light 0 0 0 - boxdraw 0x2576 0 0 0 light - boxdraw 0x2577 0 light 0 0 - boxdraw 0x2578 0 0 heavy 0 - boxdraw 0x2579 heavy 0 0 0 - boxdraw 0x257A 0 0 0 heavy - boxdraw 0x257B 0 heavy 0 0 - boxdraw 0x257C 0 0 light heavy - boxdraw 0x257D light heavy 0 0 - boxdraw 0x257E 0 0 heavy light - boxdraw 0x257F heavy light 0 0 - dlboxdraw 0x2550 0 0 heavy heavy - dlboxdraw 0x2551 heavy heavy 0 0 - - # Complex - complexBoxDraw 0x250C 0 1 0 1 - complexBoxDraw 0x2510 0 1 1 0 - complexBoxDraw 0x2514 1 0 0 1 - complexBoxDraw 0x2518 1 0 1 0 - complexBoxDraw 0x251C 1 1 0 1 - complexBoxDraw 0x2524 1 1 1 0 - complexBoxDraw 0x252C 0 1 1 1 - complexBoxDraw 0x2534 1 0 1 1 - complexBoxDraw 0x253C 1 1 1 1 - complexBoxDraw 0x2552 0 1 0 1 dlboxdraw 1 - complexBoxDraw 0x2555 0 1 1 0 dlboxdraw 1 - complexBoxDraw 0x2558 1 0 0 1 dlboxdraw 1 - complexBoxDraw 0x255B 1 0 1 0 dlboxdraw 1 - complexBoxDraw 0x255E 1 1 0 1 dlboxdraw 1 - complexBoxDraw 0x2561 1 1 1 0 dlboxdraw 1 - complexBoxDraw 0x2564 0 1 1 1 dlboxdraw 1 - complexBoxDraw 0x2567 1 0 1 1 dlboxdraw 1 - complexBoxDraw 0x256A 1 1 1 1 dlboxdraw 1 - - # Dashed - define [hDashed unicode segments weight] : begin - create-glyph [BdGlyphName unicode] [MangleUnicode unicode] : glyph-proc - set-width MosaicWidth - include : ForceUpright - foreach j [range 0 segments] : include : HBar.m [mix (MosaicWidth * j / segments) (MosaicWidth * (j + 1) / segments) 0.2] [mix (MosaicWidth * j / segments) (MosaicWidth * (j + 1) / segments) 0.8] midy weight - - define [vDashed unicode segments weight] : begin - create-glyph [BdGlyphName unicode] [MangleUnicode unicode] : glyph-proc - set-width MosaicWidth - include : ForceUpright - foreach j [range 0 segments] : include : VBar.m - begin midx - mix [mix boty topy (j / segments)] [mix boty topy ((j + 1) / segments)] 0.2 - mix [mix boty topy (j / segments)] [mix boty topy ((j + 1) / segments)] 0.8 - begin weight - - hDashed 0x2504 3 light - hDashed 0x2505 3 heavy - hDashed 0x2508 4 light - hDashed 0x2509 4 heavy - hDashed 0x254C 2 light - hDashed 0x254D 2 heavy - vDashed 0x2506 3 light - vDashed 0x2507 3 heavy - vDashed 0x250A 4 light - vDashed 0x250B 4 heavy - vDashed 0x254E 2 light - vDashed 0x254F 2 heavy - - # Arcs - local bdArcRadius : Math.min (midx + O * 2) ((midy - boty) / 2) - create-glyph [BdGlyphName 0x256D] [MangleUnicode 0x256D] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : dispiro - widths.center light - flat midx boty [heading Upward] - curl midx (midy - bdArcRadius) [heading Upward] - arcvh - flat (midx + bdArcRadius) midy [heading Rightward] - curl MosaicWidth midy [heading Rightward] - - create-glyph [BdGlyphName 0x256E] [MangleUnicode 0x256E] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : dispiro - widths.center light - flat midx boty [heading Upward] - curl midx (midy - bdArcRadius) [heading Upward] - arcvh - flat (midx - bdArcRadius) midy [heading Leftward] - curl 0 midy [heading Leftward] - - create-glyph [BdGlyphName 0x256F] [MangleUnicode 0x256F] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : dispiro - widths.center light - flat midx topy [heading Downward] - curl midx (midy + bdArcRadius) [heading Downward] - arcvh - flat (midx - bdArcRadius) midy [heading Leftward] - curl 0 midy [heading Leftward] - - create-glyph [BdGlyphName 0x2570] [MangleUnicode 0x2570] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : dispiro - widths.center light - flat midx topy [heading Downward] - curl midx (midy + bdArcRadius) [heading Downward] - arcvh - flat (midx + bdArcRadius) midy [heading Rightward] - curl MosaicWidth midy [heading Rightward] - - create-glyph [BdGlyphName 0x2571] [MangleUnicode 0x2571] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : dispiro - widths.center light - flat MosaicWidth topy - curl 0 boty - - create-glyph [BdGlyphName 0x2572] [MangleUnicode 0x2572] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : dispiro - widths.center light - flat 0 topy - curl MosaicWidth boty - - create-glyph [BdGlyphName 0x2573] [MangleUnicode 0x2573] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : refer-glyph : BdGlyphName 0x2571 - include : refer-glyph : BdGlyphName 0x2572 - - # Diamond - define [DiamondBarRaw hStart vStart hEnd vEnd] : begin - define zStartX : mix left right hStart - define zStartY : mix bottom top vStart - define zEndX : mix left right hEnd - define zEndY : mix bottom top vEnd - return : dispiro - widths.center light - corner [mix zStartX zEndX (-1)] [mix zStartY zEndY (-1)] - corner [mix zStartX zEndX (+2)] [mix zStartY zEndY (+2)] - - define [DiamondMask] : spiro-outline - corner [mix left right 0] [mix bottom top 0] - corner [mix left right 0] [mix bottom top 1] - corner [mix left right 1] [mix bottom top 1] - corner [mix left right 1] [mix bottom top 0] - - define [DiamondBoxDrawing unicode a b c d] : begin - create-glyph [BdGlyphName unicode] [MangleUnicode unicode] : glyph-proc - local candidates {} - if a : candidates.push [DiamondBarRaw 0.5 1 0 0.5] - if b : candidates.push [DiamondBarRaw 1 0.5 0.5 1] - if c : candidates.push [DiamondBarRaw 0 0.5 0.5 0] - if d : candidates.push [DiamondBarRaw 0.5 0 1 0.5] - - set-width MosaicWidth - include : ForceUpright - include : intersection - DiamondMask - union.apply null candidates - - DiamondBoxDrawing 0x1FBA0 1 0 0 0 - DiamondBoxDrawing 0x1FBA1 0 1 0 0 - DiamondBoxDrawing 0x1FBA2 0 0 1 0 - DiamondBoxDrawing 0x1FBA3 0 0 0 1 - DiamondBoxDrawing 0x1FBA4 1 0 1 0 - DiamondBoxDrawing 0x1FBA5 0 1 0 1 - DiamondBoxDrawing 0x1FBA6 0 0 1 1 - DiamondBoxDrawing 0x1FBA7 1 1 0 0 - DiamondBoxDrawing 0x1FBA8 1 0 0 1 - DiamondBoxDrawing 0x1FBA9 0 1 1 0 - DiamondBoxDrawing 0x1FBAA 0 1 1 1 - DiamondBoxDrawing 0x1FBAB 1 0 1 1 - DiamondBoxDrawing 0x1FBAC 1 1 0 1 - DiamondBoxDrawing 0x1FBAD 1 1 1 0 - DiamondBoxDrawing 0x1FBAE 1 1 1 1 - - - create-glyph [BEGlyphName 0x1FBBD] [MangleUnicode 0x1FBBD] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : difference - glyph-proc : include : refer-glyph : BEGlyphName 0x2588 - glyph-proc : include : refer-glyph : BdGlyphName 0x2573 - - create-glyph [BEGlyphName 0x1FBBE] [MangleUnicode 0x1FBBE] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : difference - glyph-proc : include : refer-glyph : BEGlyphName 0x2588 - glyph-proc : include : refer-glyph : BdGlyphName 0x1FBA3 - - create-glyph [BdGlyphName 0x1FBBF] [MangleUnicode 0x1FBBF] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : difference - glyph-proc : include : refer-glyph : BEGlyphName 0x2588 - glyph-proc : include : refer-glyph : BdGlyphName 0x1FBAE - - create-glyph [BdGlyphName 0x1FBAF] [MangleUnicode 0x1FBAF] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : intersection - glyph-proc : include : refer-glyph : BdGlyphName 0x253C - Rect [mix bottom top 0.35] [mix bottom top 0.65] 0 MosaicWidth - - -glyph-block Symbol-Mosaic-Powerline : begin - glyph-block-import CommonShapes - glyph-block-import Common-Derivatives : refer-glyph - - define MosaicTop fontMetrics.os2.sTypoAscender - define MosaicBottom fontMetrics.os2.sTypoDescender - - for-width-kinds WideWidth4 - local pwlMidOrig : (MosaicTop + MosaicBottom) / 2 - local pwlTop : (MosaicTop - pwlMidOrig) * para.powerlineScaleY + para.powerlineShiftY + pwlMidOrig - local pwlBot : (MosaicBottom - pwlMidOrig) * para.powerlineScaleY + para.powerlineShiftY + pwlMidOrig - local pwlMid : mix pwlBot pwlTop (1 / 2) - local pwlNear : 0 * para.powerlineScaleX + para.powerlineShiftX - local pwlFar : MosaicWidth * para.powerlineScaleX + para.powerlineShiftX - - define [RotatedPowerline gidNew unicodeNew gidSource] : begin - create-glyph [MangleName gidNew] [MangleUnicode unicodeNew] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : refer-glyph [MangleName gidSource] - include : FlipAround (MosaicWidth / 2) pwlMid - - create-glyph [MangleName 'powerline/triangleRight'] [MangleUnicode 0xE0B0] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : spiro-outline - corner (pwlNear + O) pwlTop - corner pwlNear pwlTop - corner pwlFar pwlMid - corner pwlNear pwlBot - corner (pwlNear + O) pwlBot - - create-glyph [MangleName 'powerline/angleRight'] [MangleUnicode 0xE0B1] : glyph-proc - set-width MosaicWidth - include : ForceUpright - local fine : AdviceStroke 4 - include : intersection - spiro-outline - corner (pwlNear - MosaicWidth) pwlTop - corner pwlNear pwlTop - corner pwlFar pwlMid - corner pwlNear pwlBot - corner (pwlNear - MosaicWidth) pwlBot - union - dispiro - widths.rhs fine - flat pwlNear pwlTop - curl pwlFar pwlMid - dispiro - widths.rhs fine - flat pwlFar pwlMid - curl pwlNear pwlBot - - RotatedPowerline 'powerline/triangleLeft' 0xE0B2 'powerline/triangleRight' - RotatedPowerline 'powerline/angleLeft' 0xE0B3 'powerline/angleRight' - - create-glyph [MangleName 'powerline/hemiCircleRight'] [MangleUnicode 0xE0B4] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : spiro-outline - corner (pwlNear + O) pwlTop - g4 pwlNear pwlTop - g4.down.mid pwlFar pwlMid - g4 pwlNear pwlBot - corner (pwlNear + O) pwlBot - - create-glyph [MangleName 'powerline/arcRight'] [MangleUnicode 0xE0B5] : glyph-proc - set-width MosaicWidth - include : ForceUpright - local fine : AdviceStroke 4 - include : dispiro - widths.rhs fine - corner (pwlNear + O) pwlTop [heading Rightward] - g4 pwlNear pwlTop [heading Rightward] - g4.down.mid pwlFar pwlMid [heading Downward] - g4 pwlNear pwlBot [heading Leftward] - corner (pwlNear + O) pwlBot [heading Leftward] - - RotatedPowerline 'powerline/hemiCircleLeft' 0xE0B6 'powerline/hemiCircleRight' - RotatedPowerline 'powerline/arcLeft' 0xE0B7 'powerline/arcRight' - - create-glyph [MangleName 'powerline/underline'] [MangleUnicode 0xE0AE] : glyph-proc - set-width MosaicWidth - include : ForceUpright - local fine : AdviceStroke 4 - include : HBar.b 0 MosaicWidth pwlBot - - create-glyph [MangleName 'powerline/overline'] [MangleUnicode 0xE0AF] : glyph-proc - set-width MosaicWidth - include : ForceUpright - local fine : AdviceStroke 4 - include : HBar.t 0 MosaicWidth pwlTop - - create-glyph [MangleName 'powerline/cornerBottomLeft'] [MangleUnicode 0xE0B8] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : spiro-outline - corner (pwlNear + O) pwlTop - corner pwlNear pwlTop - corner pwlFar pwlBot - corner (pwlNear + O) pwlBot - - create-glyph [MangleName 'powerline/slashBottomLeft'] [MangleUnicode 0xE0B9] : glyph-proc - set-width MosaicWidth - include : ForceUpright - local fine : AdviceStroke 4 - include : dispiro - widths.rhs fine - flat pwlNear pwlTop - curl pwlFar pwlBot - - create-glyph [MangleName 'powerline/cornerTopLeft'] [MangleUnicode 0xE0BC] : glyph-proc - set-width MosaicWidth - include : ForceUpright - include : spiro-outline - corner (pwlNear + O) pwlTop - corner pwlNear pwlTop - corner pwlFar pwlTop - corner (pwlNear + O) pwlBot - - create-glyph [MangleName 'powerline/slashTopLeft'] [MangleUnicode 0xE0BD] : glyph-proc - set-width MosaicWidth - include : ForceUpright - local fine : AdviceStroke 4 - include : dispiro - widths.rhs fine - flat pwlNear pwlBot - curl pwlFar pwlTop - - RotatedPowerline 'powerline/cornerBottomRight' 0xE0BA 'powerline/cornerTopLeft' - RotatedPowerline 'powerline/slashBottomRight' 0xE0BB 'powerline/slashTopLeft' - RotatedPowerline 'powerline/cornerTopRight' 0xE0BE 'powerline/cornerBottomLeft' - RotatedPowerline 'powerline/slashTopRight' 0xE0BF 'powerline/slashBottomLeft' - - -glyph-block Symbol-Mosaic-NotDef : begin - glyph-block-import CommonShapes : Rect - glyph-block-import Common-Derivatives : refer-glyph - - create-glyph '.notdef' : glyph-proc - define sw : AdviceStroke 8 - include : union - intersection - glyph-proc : include : refer-glyph "be2592.NWID" - Rect CAP 0 SB RightSB - difference - Rect CAP 0 SB RightSB - Rect (CAP - sw) (0 + sw) (SB + sw) (RightSB - sw) - set currentGlyph.glyphRank (9999) - -glyph-block Symbol-Geometric-Mosaic-Inverted : for-width-kinds WideWidth1 - glyph-block-import CommonShapes - glyph-block-import Common-Derivatives - glyph-block-import Symbol-Geometric-Shared : GeometricDim UnicodeWeightGrade GeometricSizes - - define MosaicTop fontMetrics.os2.sTypoAscender - define MosaicBottom fontMetrics.os2.sTypoDescender - - create-glyph [MangleName 'uni25D8'] [MangleUnicode 0x25D8] : glyph-proc - set-width MosaicWidth - include : difference - refer-glyph : MangleName 'be2588' - refer-glyph : MangleName 'blackCircle' - include : difference - refer-glyph : MangleName 'be2588' - refer-glyph : MangleName 'blackCircle' - - create-glyph [MangleName 'uni25DA'] [MangleUnicode 0x25DA] : glyph-proc - set-width MosaicWidth - include : difference - refer-glyph : MangleName 'be2580' - refer-glyph : MangleName 'whiteCircle' - - create-glyph [MangleName 'uni25DB'] [MangleUnicode 0x25DB] : glyph-proc - set-width MosaicWidth - include : difference - refer-glyph : MangleName 'be2584' - refer-glyph : MangleName 'whiteCircle' - - create-glyph [MangleName 'uni25D9'] [MangleUnicode 0x25D9] : glyph-proc - set-width MosaicWidth - include : refer-glyph : MangleName 'uni25DA' - include : refer-glyph : MangleName 'uni25DB' +export : define [apply] : begin + define $$Capture$$ this + run-glyph-module "./mosaic/block.mjs" + run-glyph-module "./mosaic/teletext.mjs" + run-glyph-module "./mosaic/smooth.mjs" + run-glyph-module "./mosaic/box-drawing.mjs" + run-glyph-module "./mosaic/large-type.mjs" + run-glyph-module "./mosaic/powerline.mjs" + run-glyph-module "./mosaic/notdef.mjs" + run-glyph-module "./mosaic/inverted.mjs" diff --git a/packages/font-glyphs/src/symbol/mosaic/block.ptl b/packages/font-glyphs/src/symbol/mosaic/block.ptl new file mode 100644 index 0000000000..80606842e5 --- /dev/null +++ b/packages/font-glyphs/src/symbol/mosaic/block.ptl @@ -0,0 +1,254 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" + +glyph-module + +glyph-block Symbol-Mosaic-Block : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + + for-width-kinds WideWidth4 + + define top fontMetrics.os2.sTypoAscender + define bottom fontMetrics.os2.sTypoDescender + define left 0 + define right MosaicWidth + + # Corner numbers + # 1 2 3 + # 4 5 6 + # 7 8 9 + define [PatternCorner22 bit] : match bit + 1 : corner [mix left right (0 / 2)] [mix top bottom (0 / 2)] + 2 : corner [mix left right (1 / 2)] [mix top bottom (0 / 2)] + 3 : corner [mix left right (2 / 2)] [mix top bottom (0 / 2)] + 4 : corner [mix left right (0 / 2)] [mix top bottom (1 / 2)] + 5 : corner [mix left right (1 / 2)] [mix top bottom (1 / 2)] + 6 : corner [mix left right (2 / 2)] [mix top bottom (1 / 2)] + 7 : corner [mix left right (0 / 2)] [mix top bottom (2 / 2)] + 8 : corner [mix left right (1 / 2)] [mix top bottom (2 / 2)] + 9 : corner [mix left right (2 / 2)] [mix top bottom (2 / 2)] + + define [PatternPolygon22 bits] : spiro-outline : bits.map : x => [PatternCorner22 (x - 0)] + + + define [FillBlock hStart hEnd vStart vEnd] : spiro-outline + corner [mix left right hStart] [mix bottom top vStart] + corner [mix left right hStart] [mix bottom top vEnd] + corner [mix left right hEnd] [mix bottom top vEnd] + corner [mix left right hEnd] [mix bottom top vStart] + + define [BlockElementGlyph unicode hStart hEnd vStart vEnd] : begin + create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : FillBlock hStart hEnd vStart vEnd + + define [BlockElementGlyph2 unicode hStart1 hEnd1 vStart1 vEnd1 hStart2 hEnd2 vStart2 vEnd2] : begin + create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : union + FillBlock hStart1 hEnd1 vStart1 vEnd1 + FillBlock hStart2 hEnd2 vStart2 vEnd2 + + BlockElementGlyph 0x2588 0 1 0 1 + BlockElementGlyph 0x1FB86 0 1 (1 / 8) 1 + BlockElementGlyph 0x1FB85 0 1 (2 / 8) 1 + BlockElementGlyph 0x1FB84 0 1 (3 / 8) 1 + BlockElementGlyph 0x2580 0 1 (1 / 2) 1 + BlockElementGlyph 0x1FB83 0 1 (5 / 8) 1 + BlockElementGlyph 0x1FB82 0 1 (6 / 8) 1 + BlockElementGlyph 0x2594 0 1 (7 / 8) 1 + BlockElementGlyph 0x2595 (7 / 8) 1 0 1 + BlockElementGlyph 0x1FB87 (6 / 8) 1 0 1 + BlockElementGlyph 0x1FB88 (5 / 8) 1 0 1 + BlockElementGlyph 0x2590 (1 / 2) 1 0 1 + BlockElementGlyph 0x1FB89 (3 / 8) 1 0 1 + BlockElementGlyph 0x1FB8A (2 / 8) 1 0 1 + BlockElementGlyph 0x1FB8B (1 / 8) 1 0 1 + + foreach [fill : range 1 8] : begin + BlockElementGlyph (0x2580 + fill) 0 1 0 (fill / 8) + BlockElementGlyph (0x2590 - fill) 0 (fill / 8) 0 1 + if (fill >= 2 && fill <= 7) : begin + BlockElementGlyph (0x1FB70 - 2 + fill) ((fill - 1) / 8) (fill / 8) 0 1 + BlockElementGlyph (0x1FB76 - 2 + fill) 0 1 (1 - (fill - 1) / 8) (1 - fill / 8) + + foreach [pos : range 0 16] : begin + local xCoord : (pos % 4) / 4 + local yCoord : 1 - [Math.floor (pos / 4)] / 4 + BlockElementGlyph (0x1CE90 + pos) xCoord (xCoord + 0.25) (yCoord - 0.25) yCoord + + foreach [index : range 0 4] : begin + local lower : [Math.max 0 (index - 1)] / 4 + local upper : [Math.min 4 (index + 2)] / 4 + BlockElementGlyph (0x1CEA0 + index) (1 - upper) (1 - lower) 0 (1 / 4) + BlockElementGlyph (0x1CEA4 + index) 0 (1 / 4) lower upper + BlockElementGlyph (0x1CEA8 + index) lower upper (3 / 4) 1 + BlockElementGlyph (0x1CEAC + index) (3 / 4) 1 (1 - upper) (1 - lower) + + BlockElementGlyph 0x1FBCE 0 (2 / 3) 0 1 + BlockElementGlyph 0x1FBCF 0 (1 / 3) 0 1 + BlockElementGlyph 0x1FBE4 (1 / 4) (3 / 4) (1 / 2) 1 + BlockElementGlyph 0x1FBE5 (1 / 4) (3 / 4) 0 (1 / 2) + BlockElementGlyph 0x1FBE6 0 (1 / 2) (1 / 4) (3 / 4) + BlockElementGlyph 0x1FBE7 (1 / 2) 1 (1 / 4) (3 / 4) + + BlockElementGlyph2 0x1FB7C 0 (1 / 8) 0 1 0 1 0 (1 / 8) + BlockElementGlyph2 0x1FB7D 0 (1 / 8) 0 1 0 1 (7 / 8) 1 + BlockElementGlyph2 0x1FB7E (7 / 8) 1 0 1 0 1 (7 / 8) 1 + BlockElementGlyph2 0x1FB7F (7 / 8) 1 0 1 0 1 0 (1 / 8) + BlockElementGlyph2 0x1FB80 0 1 (7 / 8) 1 0 1 0 (1 / 8) + create-glyph [MangleName : NameUni 0x1FB81] [MangleUnicode 0x1FB81] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : union + FillBlock 0 1 (7 / 8) 1 + FillBlock 0 1 (5 / 8) (6 / 8) + FillBlock 0 1 (3 / 8) (4 / 8) + FillBlock 0 1 0 (1 / 8) + + create-glyph [MangleName : NameUni 0x1FBB5] [MangleUnicode 0x1FBB5] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName "arrowLeft" + include : refer-glyph : MangleName : NameUni 0x1FB80 + + create-glyph [MangleName : NameUni 0x1FBB6] [MangleUnicode 0x1FBB6] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName "arrowRight" + include : refer-glyph : MangleName : NameUni 0x1FB80 + + create-glyph [MangleName : NameUni 0x1FBB7] [MangleUnicode 0x1FBB7] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName "arrowDown" + include : refer-glyph : MangleName : NameUni 0x2595 + + create-glyph [MangleName : NameUni 0x1FBB8] [MangleUnicode 0x1FBB8] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName "arrowUp" + include : refer-glyph : MangleName : NameUni 0x2595 + + create-glyph [MangleName : NameUni 0x1FBBC] [MangleUnicode 0x1FBBC] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName "blackSmallCircle" + include : refer-glyph : MangleName : NameUni 0x2595 + include : refer-glyph : MangleName : NameUni 0x1FB80 + + define [Shade _steps fill box] : glyph-proc + local steps : Math.abs _steps + local sign : if (_steps >= 0) 1 (-1) + local sw : (top - bottom) / steps * fill + local skew : [Math.round (MosaicWidth / Width)] * (top - bottom) / 2 + include : ForceUpright + include : intersection + glyph-proc + foreach j [range (-steps * 4 - 2) (steps * 4 + 2)] : begin + local y0 : mix top bottom (j / steps) + local y1 : y0 + sign * skew + include : spiro-outline + corner 0 (y0 - sw / 2) + corner MosaicWidth (y1 - sw / 2) + corner MosaicWidth (y1 + sw / 2) + corner 0 (y0 + sw / 2) + fallback box [FillBlock 0 1 0 1] + + define FillLight (1 / 8) + define FillMedium (1 / 4) + define FillHeavy (1 / 2) + + create-glyph [MangleName 'lightShade'] [MangleUnicode 0x2591] : glyph-proc + set-width MosaicWidth + include : Shade 4 FillLight + + create-glyph [MangleName 'denseShade'] : glyph-proc + set-width MosaicWidth + include : Shade 16 FillHeavy + + define [MediumShade unicode bits] : begin + create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : Shade 8 FillMedium : PatternPolygon22 bits + + define [InverseMediumShade unicode bits] : begin + create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : Shade (-8) (1 - FillMedium) : PatternPolygon22 bits + include : difference + FillBlock 0 1 0 1 + PatternPolygon22 bits + + MediumShade 0x2592 {1 3 9 7} + MediumShade 0x1FB8C {1 2 8 7} + MediumShade 0x1FB8D {2 3 9 8} + MediumShade 0x1FB8E {1 3 6 4} + MediumShade 0x1FB8F {4 6 9 7} + InverseMediumShade 0x1FB90 {1 3 9 7} + InverseMediumShade 0x1FB94 {1 2 8 7} + # InverseMediumShade 0x1FB93 {2 3 9 8} + InverseMediumShade 0x1FB92 {1 3 6 4} + InverseMediumShade 0x1FB91 {4 6 9 7} + MediumShade 0x1FB9C {1 3 7} + MediumShade 0x1FB9D {1 3 9} + MediumShade 0x1FB9E {3 7 9} + MediumShade 0x1FB9F {1 7 9} + + create-glyph [MangleName 'heavyShade'] [MangleUnicode 0x2593] : glyph-proc + set-width MosaicWidth + include : Shade 8 FillHeavy + + create-glyph [MangleName 'upperLeftToLowerRightFill'] [MangleUnicode 0x1FB98] : glyph-proc + set-width MosaicWidth + include : Shade (-4) FillHeavy + + create-glyph [MangleName 'upperRightToLowerLeftFill'] [MangleUnicode 0x1FB99] : glyph-proc + set-width MosaicWidth + include : Shade 4 FillHeavy + + define filldata : list + list 0x2596 0 0 1 0 + list 0x2597 0 0 0 1 + list 0x2598 1 0 0 0 + list 0x2599 1 0 1 1 + list 0x259A 1 0 0 1 + list 0x259B 1 1 1 0 + list 0x259C 1 1 0 1 + list 0x259D 0 1 0 0 + list 0x259E 0 1 1 0 + list 0x259F 0 1 1 1 + foreach [{unicode lt rt lb rb} : items-of filldata] : begin + create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + define t top + define b bottom + define l 0 + define r MosaicWidth + local mx : mix l r 0.5 + local my : mix b t 0.5 + if lt : include : spiro-outline + corner l t + corner l my + corner mx my + corner mx t + if rt : include : spiro-outline + corner mx t + corner mx my + corner r my + corner r t + if lb : include : spiro-outline + corner l my + corner l b + corner mx b + corner mx my + if rb : include : spiro-outline + corner mx my + corner mx b + corner r b + corner r my diff --git a/packages/font-glyphs/src/symbol/mosaic/box-drawing.ptl b/packages/font-glyphs/src/symbol/mosaic/box-drawing.ptl new file mode 100644 index 0000000000..1f5cea93c7 --- /dev/null +++ b/packages/font-glyphs/src/symbol/mosaic/box-drawing.ptl @@ -0,0 +1,510 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" + +glyph-module + +glyph-block Symbol-Mosaic-Box-Drawing : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + + for-width-kinds WideWidth4 + + define top fontMetrics.os2.sTypoAscender + define bottom fontMetrics.os2.sTypoDescender + define left 0 + define right MosaicWidth + + local light : AdviceStroke 3.5 + local heavy : Math.max (light * 2) (Width * 0.15) + local midx : MosaicWidth / 2 + local midy : mix bottom top 0.5 + + define [hline unicode pos] : begin + create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + local posy : mix (bottom + light / 2) (top - light / 2) pos + include : HBar.m left right posy light + + define [vline unicode pos] : begin + create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + local posx : mix (left + light / 2) (right - light / 2) pos + include : VBar.m posx bottom top light + + # Scan Lines + vline 0x23B8 0 + vline 0x23B9 1 + hline 0x23BA 1 + hline 0x23BB (3 / 4) + hline 0x23BC (1 / 4) + hline 0x23BD 0 + + create-glyph [MangleName : NameUni 0x1CC1B] [MangleUnicode 0x1CC1B] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : HBar.m left right midy light + include : VBar.r right midy top light + + create-glyph [MangleName : NameUni 0x1CC1C] [MangleUnicode 0x1CC1C] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : HBar.m left right midy light + include : VBar.r right bottom midy light + + create-glyph [MangleName : NameUni 0x1CC1D] [MangleUnicode 0x1CC1D] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : HBar.t left right top light + include : VBar.l left (midy - 0.5 * light) top light + + create-glyph [MangleName : NameUni 0x1CC1E] [MangleUnicode 0x1CC1E] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : HBar.b left right bottom light + include : VBar.l left bottom (midy + 0.5 * light) light + + # Split Dashed Lines + create-glyph [MangleName : NameUni 0x1CE0D] [MangleUnicode 0x1CE0D] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : HBar.m left [mix left right (1 / 3)] midy light + include : HBar.m [mix left right (2 / 3)] right midy light + + create-glyph [MangleName : NameUni 0x1CE0E] [MangleUnicode 0x1CE0E] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : HBar.m [mix left right (1 / 3)] [mix left right (2 / 3)] midy light + + define [hlinetick unicode a b c] : begin + create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : HBar.m left right midy light + local tickbot : mix bottom midy 0.5 + local ticktop midy + if a : include : VBar.r [mix left right (1 / 3)] tickbot ticktop light + if b : include : VBar.r [mix left right (2 / 3)] tickbot ticktop light + if c : include : VBar.r right tickbot ticktop light + + define [vlinetick unicode a b c d rev] : begin + create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : VBar.m midx [if d bottom bottom] [if c top top] light + local tickleft : if rev midx 0 + local tickright : if rev MosaicWidth midx + if a : include : HBar.t tickleft tickright [mix bottom top (1 / 3)] light + if b : include : HBar.t tickleft tickright [mix bottom top (2 / 3)] light + if c : include : HBar.t tickleft tickright top light + if d : include : HBar.b tickleft tickright bottom light + + # Box Drawing with Ticks + hlinetick 0x1CE0F 0 0 1 + hlinetick 0x1CE10 0 1 0 + hlinetick 0x1CE11 1 0 1 + hlinetick 0x1CE12 1 1 1 + vlinetick 0x1CE13 0 1 0 0 0 + vlinetick 0x1CE14 1 0 1 0 0 + vlinetick 0x1CE15 1 1 1 0 0 + vlinetick 0x1CE16 0 0 1 0 1 + vlinetick 0x1CE17 0 0 0 1 1 + vlinetick 0x1CE18 0 0 1 0 0 + vlinetick 0x1CE19 0 0 0 1 0 + + create-glyph [MangleName : NameUni 0x1CC90] [MangleUnicode 0x1CC90] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : VBar.m midx bottom top light + local tickleft : mix left right (1 / 4) + local tickright : mix left right (3 / 4) + foreach i [range 0 4] : begin + include : HBar.t tickleft tickright [mix bottom top ((i + 1) / 4)] light + + create-glyph [MangleName : NameUni 0x1CC91] [MangleUnicode 0x1CC91] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : HBar.m left right midy light + local tickbot : mix bottom midy 0.75 + local ticktop : mix midy top 0.25 + foreach i [range 0 4] : begin + include : VBar.l [mix left right (i / 4)] tickbot ticktop light + + create-glyph [MangleName : NameUni 0x1CC05] [MangleUnicode 0x1CC05] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : VBar.m [mix left right (6.5 / 8)] bottom [mix bottom top (3 / 8)] light + include : HBar.m left right [mix bottom top (1.5 / 8)] light + + create-glyph [MangleName : NameUni 0x1CC06] [MangleUnicode 0x1CC06] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : VBar.m [mix left right (6.5 / 8)] bottom top light + include : HBar.m [mix left right (5 / 8)] right [mix bottom top (1.5 / 8)] light + + create-glyph [MangleName : NameUni 0x1CC07] [MangleUnicode 0x1CC07] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : VBar.m [mix left right (6.5 / 8)] bottom top light + include : HBar.m left right [mix bottom top (1.5 / 8)] light + + define [boxdraw unicode u d l r] : begin + create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + local stopH : [Math.max u d] / 2 + local stopV : [Math.max l r] / 2 + if l : include : HBar.m left (midx + stopH) midy l + if r : include : HBar.m (midx - stopH) right midy r + if d : include : VBar.m midx bottom (midy + stopV) d + if u : include : VBar.m midx (midy - stopV) top u + + define [dlboxdraw unicode u d l r] : begin + create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + local stopH : [Math.max u d] - light * 1 - [HSwToV : 0.5 * light] + local stopV : [Math.max l r] - light * 1.5 + local capH : [Math.max u d] - light * 1 + local capV : [Math.max l r] - light * 1 + if l : begin + include : HBar.m left (midx - stopH) (midy + (l - light)) light + if (l > light) : include : HBar.m left (midx - stopH) (midy - (l - light)) light + if r : begin + include : HBar.m (midx + stopH) right (midy + (r - light)) light + if (r > light) : include : HBar.m (midx + stopH) right (midy - (r - light)) light + if d : begin + include : VBar.m (midx + (d - light)) bottom (midy - stopV) light + if (d > light) : include : VBar.m (midx - (d - light)) bottom (midy - stopV) light + if u : begin + include : VBar.m (midx + (u - light)) (midy + stopV) top light + if (u > light) : include : VBar.m (midx - (u - light)) (midy + stopV) top light + if (stopH > 0 && [not u]) : include : HBar.m (midx - stopH - [HSwToV light]) (midx + stopH + [HSwToV light]) (midy + capV) light + if (stopH > 0 && [not d]) : include : HBar.m (midx - stopH - [HSwToV light]) (midx + stopH + [HSwToV light]) (midy - capV) light + if (stopV > 0 && [not l]) : include : VBar.m (midx - capH) (midy - stopV - light) (midy + stopV + light) light + if (stopV > 0 && [not r]) : include : VBar.m (midx + capH) (midy - stopV - light) (midy + stopV + light) light + + define [complexBoxDraw unicodeStart U D L R fn dl] : begin + local order { + {light light light light} + {light light heavy light} + {light light light heavy} + {light light heavy heavy} + {heavy light light light} + {light heavy light light} + {heavy heavy light light} + {heavy light heavy light} + {heavy light light heavy} + {light heavy heavy light} + {light heavy light heavy} + {heavy light heavy heavy} + {light heavy heavy heavy} + {heavy heavy heavy light} + {heavy heavy light heavy} + {heavy heavy heavy heavy} + } + local existings {} + local n 0 + foreach {u d l r} [items-of order] : begin + local newcome true + local masked {(U * u) (D * d) (L * l) (R * r)} + foreach existing [items-of existings] : if ('' + existing === '' + masked) : set newcome false + if newcome : begin + if ([not dl] + || ([not masked.0] || [not masked.1] || (masked.0 === masked.1)) + && ([not masked.2] || [not masked.3] || (masked.2 === masked.3)) + && (masked.0 > light || masked.1 > light || masked.2 > light || masked.3 > light) + ) : begin + [fallback fn boxdraw].apply null {(unicodeStart + n) :: masked} + inc n + existings.push masked + + # Straight + boxdraw 0x2500 0 0 light light + boxdraw 0x2501 0 0 heavy heavy + boxdraw 0x2502 light light 0 0 + boxdraw 0x2503 heavy heavy 0 0 + boxdraw 0x2574 0 0 light 0 + boxdraw 0x2575 light 0 0 0 + boxdraw 0x2576 0 0 0 light + boxdraw 0x2577 0 light 0 0 + boxdraw 0x2578 0 0 heavy 0 + boxdraw 0x2579 heavy 0 0 0 + boxdraw 0x257A 0 0 0 heavy + boxdraw 0x257B 0 heavy 0 0 + boxdraw 0x257C 0 0 light heavy + boxdraw 0x257D light heavy 0 0 + boxdraw 0x257E 0 0 heavy light + boxdraw 0x257F heavy light 0 0 + dlboxdraw 0x2550 0 0 heavy heavy + dlboxdraw 0x2551 heavy heavy 0 0 + + # Complex + complexBoxDraw 0x250C 0 1 0 1 + complexBoxDraw 0x2510 0 1 1 0 + complexBoxDraw 0x2514 1 0 0 1 + complexBoxDraw 0x2518 1 0 1 0 + complexBoxDraw 0x251C 1 1 0 1 + complexBoxDraw 0x2524 1 1 1 0 + complexBoxDraw 0x252C 0 1 1 1 + complexBoxDraw 0x2534 1 0 1 1 + complexBoxDraw 0x253C 1 1 1 1 + complexBoxDraw 0x2552 0 1 0 1 dlboxdraw 1 + complexBoxDraw 0x2555 0 1 1 0 dlboxdraw 1 + complexBoxDraw 0x2558 1 0 0 1 dlboxdraw 1 + complexBoxDraw 0x255B 1 0 1 0 dlboxdraw 1 + complexBoxDraw 0x255E 1 1 0 1 dlboxdraw 1 + complexBoxDraw 0x2561 1 1 1 0 dlboxdraw 1 + complexBoxDraw 0x2564 0 1 1 1 dlboxdraw 1 + complexBoxDraw 0x2567 1 0 1 1 dlboxdraw 1 + complexBoxDraw 0x256A 1 1 1 1 dlboxdraw 1 + + # Dashed + define [hDashed unicode segments weight] : begin + create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + foreach j [range 0 segments] : include : HBar.m [mix (MosaicWidth * j / segments) (MosaicWidth * (j + 1) / segments) 0.2] [mix (MosaicWidth * j / segments) (MosaicWidth * (j + 1) / segments) 0.8] midy weight + + define [vDashed unicode segments weight] : begin + create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + foreach j [range 0 segments] : include : VBar.m + begin midx + mix [mix bottom top (j / segments)] [mix bottom top ((j + 1) / segments)] 0.2 + mix [mix bottom top (j / segments)] [mix bottom top ((j + 1) / segments)] 0.8 + begin weight + + hDashed 0x2504 3 light + hDashed 0x2505 3 heavy + hDashed 0x2508 4 light + hDashed 0x2509 4 heavy + hDashed 0x254C 2 light + hDashed 0x254D 2 heavy + vDashed 0x2506 3 light + vDashed 0x2507 3 heavy + vDashed 0x250A 4 light + vDashed 0x250B 4 heavy + vDashed 0x254E 2 light + vDashed 0x254F 2 heavy + + # Arcs + local bdArcRadius : Math.min (midx + O * 2) ((midy - bottom) / 2) + create-glyph [MangleName : NameUni 0x256D] [MangleUnicode 0x256D] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : dispiro + widths.center light + flat midx bottom [heading Upward] + curl midx (midy - bdArcRadius) [heading Upward] + arcvh + flat (midx + bdArcRadius) midy [heading Rightward] + curl MosaicWidth midy [heading Rightward] + + create-glyph [MangleName : NameUni 0x256E] [MangleUnicode 0x256E] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : dispiro + widths.center light + flat midx bottom [heading Upward] + curl midx (midy - bdArcRadius) [heading Upward] + arcvh + flat (midx - bdArcRadius) midy [heading Leftward] + curl 0 midy [heading Leftward] + + create-glyph [MangleName : NameUni 0x256F] [MangleUnicode 0x256F] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : dispiro + widths.center light + flat midx top [heading Downward] + curl midx (midy + bdArcRadius) [heading Downward] + arcvh + flat (midx - bdArcRadius) midy [heading Leftward] + curl 0 midy [heading Leftward] + + create-glyph [MangleName : NameUni 0x2570] [MangleUnicode 0x2570] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : dispiro + widths.center light + flat midx top [heading Downward] + curl midx (midy + bdArcRadius) [heading Downward] + arcvh + flat (midx + bdArcRadius) midy [heading Rightward] + curl MosaicWidth midy [heading Rightward] + + # Corner Diagonals + create-glyph [MangleName : NameUni 0x2571] [MangleUnicode 0x2571] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : dispiro + widths.center light + flat MosaicWidth top + curl 0 bottom + + create-glyph [MangleName : NameUni 0x2572] [MangleUnicode 0x2572] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : dispiro + widths.center light + flat 0 top + curl MosaicWidth bottom + + create-glyph [MangleName : NameUni 0x2573] [MangleUnicode 0x2573] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName : NameUni 0x2571 + include : refer-glyph : MangleName : NameUni 0x2572 + + create-glyph [MangleName : NameUni 0x1FBD8] [MangleUnicode 0x1FBD8] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : intersection [MaskRight midx] : refer-glyph : MangleName : NameUni 0x2571 + include : intersection [MaskLeft midx] : refer-glyph : MangleName : NameUni 0x2572 + + create-glyph [MangleName : NameUni 0x1FBD9] [MangleUnicode 0x1FBD9] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : intersection [MaskAbove midy] : refer-glyph : MangleName : NameUni 0x2571 + include : intersection [MaskBelow midy] : refer-glyph : MangleName : NameUni 0x2572 + + create-glyph [MangleName : NameUni 0x1FBDA] [MangleUnicode 0x1FBDA] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : intersection [MaskLeft midx] : refer-glyph : MangleName : NameUni 0x2571 + include : intersection [MaskRight midx] : refer-glyph : MangleName : NameUni 0x2572 + + create-glyph [MangleName : NameUni 0x1FBDB] [MangleUnicode 0x1FBDB] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : intersection [MaskBelow midy] : refer-glyph : MangleName : NameUni 0x2571 + include : intersection [MaskAbove midy] : refer-glyph : MangleName : NameUni 0x2572 + + # Diamond + define [DiamondBarRaw hStart vStart hEnd vEnd] : begin + define zStartX : mix left right hStart + define zStartY : mix bottom top vStart + define zEndX : mix left right hEnd + define zEndY : mix bottom top vEnd + return : dispiro + widths.center light + corner [mix zStartX zEndX (-1)] [mix zStartY zEndY (-1)] + corner [mix zStartX zEndX (+2)] [mix zStartY zEndY (+2)] + + define [DiamondMask] : spiro-outline + corner [mix left right 0] [mix bottom top 0] + corner [mix left right 0] [mix bottom top 1] + corner [mix left right 1] [mix bottom top 1] + corner [mix left right 1] [mix bottom top 0] + + define [DiamondBoxDrawing unicode a b c d] : begin + create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc + local candidates {} + if a : candidates.push [DiamondBarRaw 0.5 1 0 0.5] + if b : candidates.push [DiamondBarRaw 1 0.5 0.5 1] + if c : candidates.push [DiamondBarRaw 0 0.5 0.5 0] + if d : candidates.push [DiamondBarRaw 0.5 0 1 0.5] + + set-width MosaicWidth + include : ForceUpright + include : intersection + DiamondMask + union.apply null candidates + + DiamondBoxDrawing 0x1FBA0 1 0 0 0 + DiamondBoxDrawing 0x1FBA1 0 1 0 0 + DiamondBoxDrawing 0x1FBA2 0 0 1 0 + DiamondBoxDrawing 0x1FBA3 0 0 0 1 + DiamondBoxDrawing 0x1FBA4 1 0 1 0 + DiamondBoxDrawing 0x1FBA5 0 1 0 1 + DiamondBoxDrawing 0x1FBA6 0 0 1 1 + DiamondBoxDrawing 0x1FBA7 1 1 0 0 + DiamondBoxDrawing 0x1FBA8 1 0 0 1 + DiamondBoxDrawing 0x1FBA9 0 1 1 0 + DiamondBoxDrawing 0x1FBAA 0 1 1 1 + DiamondBoxDrawing 0x1FBAB 1 0 1 1 + DiamondBoxDrawing 0x1FBAC 1 1 0 1 + DiamondBoxDrawing 0x1FBAD 1 1 1 0 + DiamondBoxDrawing 0x1FBAE 1 1 1 1 + + create-glyph [MangleName : NameUni 0x1CE09] [MangleUnicode 0x1CE09] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName : NameUni 0x1FBA7 + include : refer-glyph : MangleName : NameUni 0x1FBDA + + create-glyph [MangleName : NameUni 0x1CE0A] [MangleUnicode 0x1CE0A] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName : NameUni 0x1FBA6 + include : refer-glyph : MangleName : NameUni 0x1FBD8 + + # Corner-to-Edge Diagonal + define [VDiagonal unicode sx sy] : begin + local fUpwards : sy === bottom + create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : intersection + if fUpwards [MaskBelow top] [MaskAbove bottom] + dispiro + widths.center light + flat sx sy + curl [mix sx midx 1.5] [mix sy [if fUpwards top bottom] 1.5] + + define [HDiagonal unicode sx sy] : begin + local fRightwards : sx === left + create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : intersection + if fRightwards [MaskLeft right] [MaskRight left] + dispiro + widths.center light + flat sx sy + curl [mix sx [if fRightwards right left] 1.5] [mix sy midy 1.5] + + HDiagonal 0x1FBD0 left bottom + HDiagonal 0x1FBD1 right top + HDiagonal 0x1FBD2 left top + HDiagonal 0x1FBD3 right bottom + VDiagonal 0x1FBD4 left top + VDiagonal 0x1FBD5 right bottom + VDiagonal 0x1FBD6 right top + VDiagonal 0x1FBD7 left bottom + + create-glyph [MangleName : NameUni 0x1FBDC] [MangleUnicode 0x1FBDC] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName : NameUni 0x1FBD4 + include : refer-glyph : MangleName : NameUni 0x1FBD6 + + create-glyph [MangleName : NameUni 0x1FBDD] [MangleUnicode 0x1FBDD] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName : NameUni 0x1FBD1 + include : refer-glyph : MangleName : NameUni 0x1FBD3 + + create-glyph [MangleName : NameUni 0x1FBDE] [MangleUnicode 0x1FBDE] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName : NameUni 0x1FBD5 + include : refer-glyph : MangleName : NameUni 0x1FBD7 + + create-glyph [MangleName : NameUni 0x1FBDF] [MangleUnicode 0x1FBDF] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName : NameUni 0x1FBD0 + include : refer-glyph : MangleName : NameUni 0x1FBD2 + + + create-glyph [MangleName : NameUni 0x1FBAF] [MangleUnicode 0x1FBAF] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : intersection + glyph-proc : include : refer-glyph : MangleName : NameUni 0x253C + Rect [mix bottom top 0.35] [mix bottom top 0.65] 0 MosaicWidth diff --git a/packages/font-glyphs/src/symbol/mosaic/inverted.ptl b/packages/font-glyphs/src/symbol/mosaic/inverted.ptl new file mode 100644 index 0000000000..19cb96eeba --- /dev/null +++ b/packages/font-glyphs/src/symbol/mosaic/inverted.ptl @@ -0,0 +1,100 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" + +glyph-module + +glyph-block Symbol-Geometric-Mosaic-Inverted : for-width-kinds WideWidth1 + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Symbol-Geometric-Shared : GeometricDim UnicodeWeightGrade GeometricSizes + + define MosaicTop fontMetrics.os2.sTypoAscender + define MosaicBottom fontMetrics.os2.sTypoDescender + + create-glyph [MangleName : NameUni 0x25D8] [MangleUnicode 0x25D8] : glyph-proc + set-width MosaicWidth + include : difference + refer-glyph : MangleName : NameUni 0x2588 + refer-glyph : MangleName 'blackCircle' + + create-glyph [MangleName : NameUni 0x25DA] [MangleUnicode 0x25DA] : glyph-proc + set-width MosaicWidth + include : difference + refer-glyph : MangleName : NameUni 0x2580 + refer-glyph : MangleName 'whiteCircle' + + create-glyph [MangleName : NameUni 0x25DB] [MangleUnicode 0x25DB] : glyph-proc + set-width MosaicWidth + include : difference + refer-glyph : MangleName : NameUni 0x2584 + refer-glyph : MangleName 'whiteCircle' + + create-glyph [MangleName : NameUni 0x25D9] [MangleUnicode 0x25D9] : glyph-proc + set-width MosaicWidth + include : difference + refer-glyph : MangleName : NameUni 0x2588 + refer-glyph : MangleName 'whiteCircle' + + # create-glyph [MangleName 'uni1CC8D'] [MangleUnicode 0x1CC8D] : glyph-proc + # set-width MosaicWidth + # include : difference + # refer-glyph : MangleName 'uni2588' + # refer-glyph : MangleName 'blackDiamond' + + create-glyph [MangleName : NameUni 0x1CC8E] [MangleUnicode 0x1CC8E] : glyph-proc + set-width MosaicWidth + include : refer-glyph : MangleName : NameUni 0x1FB7D + include : with-transform [ApparentTranslate (MosaicWidth / 16) ((MosaicBottom - MosaicTop) / 16)] : refer-glyph : MangleName 'blackSmallSquare' + + create-glyph [MangleName : NameUni 0x1CC8F] [MangleUnicode 0x1CC8F] : glyph-proc + set-width MosaicWidth + include : difference + refer-glyph : MangleName : NameUni 0x2588 + with-transform [ApparentTranslate (MosaicWidth / 16) ((MosaicBottom - MosaicTop) / 16)] : refer-glyph : MangleName 'blackSmallSquare' + + create-glyph [MangleName : NameUni 0x1F8B4] [MangleUnicode 0x1F8B4] : glyph-proc + set-width MosaicWidth + include : difference + refer-glyph : MangleName : NameUni 0x2588 + refer-glyph : MangleName 'arrowLeft' + + create-glyph [MangleName : NameUni 0x1F8B5] [MangleUnicode 0x1F8B5] : glyph-proc + set-width MosaicWidth + include : difference + refer-glyph : MangleName : NameUni 0x2588 + refer-glyph : MangleName 'arrowUp' + + create-glyph [MangleName : NameUni 0x1F8B6] [MangleUnicode 0x1F8B6] : glyph-proc + set-width MosaicWidth + include : difference + refer-glyph : MangleName : NameUni 0x2588 + refer-glyph : MangleName 'arrowRight' + + create-glyph [MangleName : NameUni 0x1F8B7] [MangleUnicode 0x1F8B7] : glyph-proc + set-width MosaicWidth + include : difference + refer-glyph : MangleName : NameUni 0x2588 + refer-glyph : MangleName 'arrowDown' + + # Box Drawing + create-glyph [MangleName : NameUni 0x1FBBD] [MangleUnicode 0x1FBBD] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : difference + glyph-proc : include : refer-glyph : MangleName : NameUni 0x2588 + glyph-proc : include : refer-glyph : MangleName : NameUni 0x2573 + + create-glyph [MangleName : NameUni 0x1FBBE] [MangleUnicode 0x1FBBE] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : difference + glyph-proc : include : refer-glyph : MangleName : NameUni 0x2588 + glyph-proc : include : refer-glyph : MangleName : NameUni 0x1FBA3 + + create-glyph [MangleName : NameUni 0x1FBBF] [MangleUnicode 0x1FBBF] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : difference + glyph-proc : include : refer-glyph : MangleName : NameUni 0x2588 + glyph-proc : include : refer-glyph : MangleName : NameUni 0x1FBAE diff --git a/packages/font-glyphs/src/symbol/mosaic/large-type.ptl b/packages/font-glyphs/src/symbol/mosaic/large-type.ptl new file mode 100644 index 0000000000..db86adab7f --- /dev/null +++ b/packages/font-glyphs/src/symbol/mosaic/large-type.ptl @@ -0,0 +1,111 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" + +glyph-module + +glyph-block Symbol-Mosaic-Large-Type : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + + for-width-kinds WideWidth4 + + define top fontMetrics.os2.sTypoAscender + define bottom fontMetrics.os2.sTypoDescender + define left 0 + define right MosaicWidth + + local stemleft : mix left right (1 / 3) + local stemright : mix left right (2 / 3) + local stemmid : mix left right 0.5 + define [yPart n] : return : mix top bottom (n / 5) + + define [Stem start end] : spiro-outline + corner stemleft [yPart start] + corner stemright [yPart start] + corner stemright [yPart (end + 1)] + corner stemleft [yPart (end + 1)] + + define [TopBit] : spiro-outline + corner stemleft top + corner stemright top + corner stemmid [mix top bottom 0.1] + + define [BottomBit] : spiro-outline + corner stemmid [mix top bottom 0.9] + corner stemleft bottom + corner stemright bottom + + define [Arm yStart yEnd left right] : spiro-outline + corner left [yPart yStart] + corner right [yPart yEnd] + corner right [yPart (yEnd + 1)] + corner left [yPart (yStart + 1)] + + define [Arc yHori yVert fRight] : spiro-outline + corner [if fRight right left] [yPart [if fRight yHori (yHori + 1)]] + corner [if fRight right left] [yPart [if fRight (yHori + 1) yHori]] + corner [if (yHori < yVert) stemright stemleft] [yPart [if (yHori < yVert) (yVert + 1) yVert]] + corner [if (yHori < yVert) stemleft stemright] [yPart [if (yHori < yVert) (yVert + 1) yVert]] + + define [MakePiece unicode shape] : begin + create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include shape + + MakePiece 0x1CE1A : union [Stem 4 4] [Arc 2 3 1] + MakePiece 0x1CE1B : union [Stem 2 4] [Arm 2 2 stemright right] + MakePiece 0x1CE1C : union [Stem 2 4] + MakePiece 0x1CE1D : union [Stem 2 4] [Arm 2 3 stemright right] + MakePiece 0x1CE1E : union [Arm 2 2 stemleft right] + MakePiece 0x1CE1F : union [Arm 2 2 left right] + MakePiece 0x1CE20 : union [Stem 2 4] [Arm 2 2 left right] + MakePiece 0x1CE21 : union [Arc 3 4 0] [Arc 3 4 1] + MakePiece 0x1CE22 : union [Arc 3 4 0] + MakePiece 0x1CE23 : union [Stem 4 4] + MakePiece 0x1CE24 : union [Stem 4 4] [Arc 2 3 0] + MakePiece 0x1CE25 : union [Arm 2 2 0 stemright] + MakePiece 0x1CE26 : union [Stem 2 4] [Arm 3 2 left stemleft] + MakePiece 0x1CE27 : union [Stem 2 4] [Arm 2 2 left stemleft] + MakePiece 0x1CE28 : union [Stem 0 4] [Arm 2 2 stemright right] + MakePiece 0x1CE29 : union [Stem 0 4] + MakePiece 0x1CE2A : union [Arc 1 0 1] [Arc 3 4 1] + MakePiece 0x1CE2B : union [Arc 1 0 1] + MakePiece 0x1CE2C : union [Arc 3 4 1] + MakePiece 0x1CE2D : union [Stem 0 0] + MakePiece 0x1CE2E : union [Stem 0 0] [Stem 4 4] [Arc 2 1 1] [Arc 2 3 1] + MakePiece 0x1CE2F : union [Arm 2 2 left stemmid] [Arm 2 1 stemmid right] [Arm 2 3 stemmid right] + MakePiece 0x1CE30 : union [TopBit] + MakePiece 0x1CE31 : union [BottomBit] + MakePiece 0x1CE32 : union [Arm 1 3 left right] [Arm 3 1 left right] + MakePiece 0x1CE33 : union [Stem 3 4] [Arc 1 2 0] [Arc 1 2 1] + MakePiece 0x1CE34 : union [Arm 2 2 left right] [Arm 3 1 left right] + MakePiece 0x1CE35 : union [Stem 3 4] [Arc 1 2 1] + MakePiece 0x1CE36 : union [Stem 0 4] [Arm 2 2 left stemleft] + MakePiece 0x1CE37 : union [Stem 0 0] [Stem 4 4] [Arc 2 1 0] [Arc 2 3 0] + MakePiece 0x1CE38 : union [Arc 1 0 0] [Arc 3 4 0] + MakePiece 0x1CE39 : union [Stem 0 4] [Arm 1 2 left stemleft] + MakePiece 0x1CE3A : union [Stem 0 4] [Arm 2 2 left right] + MakePiece 0x1CE3B : union [Arc 1 0 0] + MakePiece 0x1CE3C : union [Stem 0 2] + MakePiece 0x1CE3D : union [Stem 0 2] [Arm 2 2 stemright right] + MakePiece 0x1CE3E : union [Stem 0 0] [Arc 2 1 1] + MakePiece 0x1CE3F : union [Stem 0 2] [Arm 2 1 stemright right] + MakePiece 0x1CE40 : union [Stem 0 2] [Arm 2 2 0 right] + MakePiece 0x1CE41 : union [Arm 1 2.5 left stemmid] [Arm 2.5 1 stemmid right] + MakePiece 0x1CE42 : union [Arc 1 0 0] [Arc 1 0 1] + MakePiece 0x1CE43 : union [Stem 0 0] [Arc 2 1 0] + MakePiece 0x1CE44 : union [Stem 0 2] [Arm 2 2 left stemleft] + MakePiece 0x1CE45 : union [Stem 0 0] [Arc 2 1 0] [Arm 0 2 left stemright] + MakePiece 0x1CE46 : union [Stem 0 2] [Arm 1 2 left stemleft] + MakePiece 0x1CE47 : union [Stem 3 4] + MakePiece 0x1CE48 : union [Stem 1 4] + MakePiece 0x1CE49 : union [Stem 3 3] + MakePiece 0x1CE4A : union [Stem 2 3] + MakePiece 0x1CE4B : union [Stem 1 3] + MakePiece 0x1CE4C : union [Stem 0 3] + MakePiece 0x1CE4D : union [Stem 2 2] + MakePiece 0x1CE4E : union [Stem 1 2] + MakePiece 0x1CE4F : union [Stem 1 1] + MakePiece 0x1CE50 : union [Stem 0 1] diff --git a/packages/font-glyphs/src/symbol/mosaic/notdef.ptl b/packages/font-glyphs/src/symbol/mosaic/notdef.ptl new file mode 100644 index 0000000000..810e787ac1 --- /dev/null +++ b/packages/font-glyphs/src/symbol/mosaic/notdef.ptl @@ -0,0 +1,20 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" + +glyph-module + +glyph-block Symbol-Mosaic-NotDef : begin + glyph-block-import CommonShapes : Rect + glyph-block-import Common-Derivatives : refer-glyph + + create-glyph '.notdef' : glyph-proc + define sw : AdviceStroke 8 + include : union + intersection + glyph-proc : include : refer-glyph "uni2592.NWID" + Rect CAP 0 SB RightSB + difference + Rect CAP 0 SB RightSB + Rect (CAP - sw) (0 + sw) (SB + sw) (RightSB - sw) + set currentGlyph.glyphRank (9999) diff --git a/packages/font-glyphs/src/symbol/mosaic/powerline.ptl b/packages/font-glyphs/src/symbol/mosaic/powerline.ptl new file mode 100644 index 0000000000..5b2563a085 --- /dev/null +++ b/packages/font-glyphs/src/symbol/mosaic/powerline.ptl @@ -0,0 +1,146 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import as Gr from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Symbol-Mosaic-Powerline : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives : refer-glyph + + define MosaicTop fontMetrics.os2.sTypoAscender + define MosaicBottom fontMetrics.os2.sTypoDescender + + for-width-kinds WideWidth4 + local pwlMidOrig : (MosaicTop + MosaicBottom) / 2 + local pwlTop : (MosaicTop - pwlMidOrig) * para.powerlineScaleY + para.powerlineShiftY + pwlMidOrig + local pwlBot : (MosaicBottom - pwlMidOrig) * para.powerlineScaleY + para.powerlineShiftY + pwlMidOrig + local pwlMid : mix pwlBot pwlTop (1 / 2) + local pwlNear : 0 * para.powerlineScaleX + para.powerlineShiftX + local pwlFar : MosaicWidth * para.powerlineScaleX + para.powerlineShiftX + + define [RotatedPowerline gidNew unicodeNew gidSource] : begin + create-glyph [MangleName gidNew] [MangleUnicode unicodeNew] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph [MangleName gidSource] + include : FlipAround (MosaicWidth / 2) pwlMid + + create-glyph [MangleName 'powerline/triangleRight'] [MangleUnicode 0xE0B0] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : spiro-outline + corner (pwlNear + O) pwlTop + corner pwlNear pwlTop + corner pwlFar pwlMid + corner pwlNear pwlBot + corner (pwlNear + O) pwlBot + + create-glyph [MangleName 'powerline/angleRight'] [MangleUnicode 0xE0B1] : glyph-proc + set-width MosaicWidth + include : ForceUpright + local fine : AdviceStroke 4 + include : intersection + spiro-outline + corner (pwlNear - MosaicWidth) pwlTop + corner pwlNear pwlTop + corner pwlFar pwlMid + corner pwlNear pwlBot + corner (pwlNear - MosaicWidth) pwlBot + union + dispiro + widths.rhs fine + flat pwlNear pwlTop + curl pwlFar pwlMid + dispiro + widths.rhs fine + flat pwlFar pwlMid + curl pwlNear pwlBot + + RotatedPowerline 'powerline/triangleLeft' 0xE0B2 'powerline/triangleRight' + RotatedPowerline 'powerline/angleLeft' 0xE0B3 'powerline/angleRight' + + create-glyph [MangleName 'powerline/hemiCircleRight'] [MangleUnicode 0xE0B4] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : spiro-outline + corner (pwlNear + O) pwlTop + g4 pwlNear pwlTop + g4.down.mid pwlFar pwlMid + g4 pwlNear pwlBot + corner (pwlNear + O) pwlBot + + create-glyph [MangleName 'powerline/arcRight'] [MangleUnicode 0xE0B5] : glyph-proc + set-width MosaicWidth + include : ForceUpright + local fine : AdviceStroke 4 + include : dispiro + widths.rhs fine + corner (pwlNear + O) pwlTop [heading Rightward] + g4 pwlNear pwlTop [heading Rightward] + g4.down.mid pwlFar pwlMid [heading Downward] + g4 pwlNear pwlBot [heading Leftward] + corner (pwlNear + O) pwlBot [heading Leftward] + + RotatedPowerline 'powerline/hemiCircleLeft' 0xE0B6 'powerline/hemiCircleRight' + RotatedPowerline 'powerline/arcLeft' 0xE0B7 'powerline/arcRight' + + create-glyph [MangleName 'powerline/underline'] [MangleUnicode 0xE0AE] : glyph-proc + set-width MosaicWidth + include : ForceUpright + local fine : AdviceStroke 4 + include : HBar.b 0 MosaicWidth pwlBot + + create-glyph [MangleName 'powerline/overline'] [MangleUnicode 0xE0AF] : glyph-proc + set-width MosaicWidth + include : ForceUpright + local fine : AdviceStroke 4 + include : HBar.t 0 MosaicWidth pwlTop + + create-glyph [MangleName 'powerline/cornerBottomLeft'] [MangleUnicode 0xE0B8] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : spiro-outline + corner (pwlNear + O) pwlTop + corner pwlNear pwlTop + corner pwlFar pwlBot + corner (pwlNear + O) pwlBot + + create-glyph [MangleName 'powerline/slashBottomLeft'] [MangleUnicode 0xE0B9] : glyph-proc + set-width MosaicWidth + include : ForceUpright + local fine : AdviceStroke 4 + include : dispiro + widths.rhs fine + flat pwlNear pwlTop + curl pwlFar pwlBot + + create-glyph [MangleName 'powerline/cornerTopLeft'] [MangleUnicode 0xE0BC] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : spiro-outline + corner (pwlNear + O) pwlTop + corner pwlNear pwlTop + corner pwlFar pwlTop + corner (pwlNear + O) pwlBot + + create-glyph [MangleName 'powerline/slashTopLeft'] [MangleUnicode 0xE0BD] : glyph-proc + set-width MosaicWidth + include : ForceUpright + local fine : AdviceStroke 4 + include : dispiro + widths.rhs fine + flat pwlNear pwlBot + curl pwlFar pwlTop + + RotatedPowerline 'powerline/cornerBottomRight' 0xE0BA 'powerline/cornerTopLeft' + RotatedPowerline 'powerline/slashBottomRight' 0xE0BB 'powerline/slashTopLeft' + RotatedPowerline 'powerline/cornerTopRight' 0xE0BE 'powerline/cornerBottomLeft' + RotatedPowerline 'powerline/slashTopRight' 0xE0BF 'powerline/slashBottomLeft' + + + Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleRB'] [MangleName 'powerline/cornerBottomRight'] Gr.MosaicForm + Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleLB'] [MangleName 'powerline/cornerBottomLeft'] Gr.MosaicForm + Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleLT'] [MangleName 'powerline/cornerTopLeft'] Gr.MosaicForm + Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleRT'] [MangleName 'powerline/cornerTopRight'] Gr.MosaicForm diff --git a/packages/font-glyphs/src/symbol/mosaic/smooth.ptl b/packages/font-glyphs/src/symbol/mosaic/smooth.ptl new file mode 100644 index 0000000000..f0af85c3e5 --- /dev/null +++ b/packages/font-glyphs/src/symbol/mosaic/smooth.ptl @@ -0,0 +1,120 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" + +glyph-module + +glyph-block Symbol-Mosaic-Smooth : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + + for-width-kinds WideWidth4 + + define top fontMetrics.os2.sTypoAscender + define bottom fontMetrics.os2.sTypoDescender + define left 0 + define right MosaicWidth + + # Corner numbers + # 1 2 3 + # 4 5 + # 6 7 + # 8 9 0 + define [PatternCorner23 bit] : match bit + 1 : corner [mix left right (0 / 2)] [mix top bottom (0 / 3)] + 2 : corner [mix left right (1 / 2)] [mix top bottom (0 / 3)] + 3 : corner [mix left right (2 / 2)] [mix top bottom (0 / 3)] + 4 : corner [mix left right (0 / 2)] [mix top bottom (1 / 3)] + 5 : corner [mix left right (2 / 2)] [mix top bottom (1 / 3)] + 6 : corner [mix left right (0 / 2)] [mix top bottom (2 / 3)] + 7 : corner [mix left right (2 / 2)] [mix top bottom (2 / 3)] + 8 : corner [mix left right (0 / 2)] [mix top bottom (3 / 3)] + 9 : corner [mix left right (1 / 2)] [mix top bottom (3 / 3)] + 0 : corner [mix left right (2 / 2)] [mix top bottom (3 / 3)] + + # Corner numbers + # 1 2 3 + # 4 5 6 + # 7 8 9 + define [PatternCorner22 bit] : match bit + 1 : corner [mix left right (0 / 2)] [mix top bottom (0 / 2)] + 2 : corner [mix left right (1 / 2)] [mix top bottom (0 / 2)] + 3 : corner [mix left right (2 / 2)] [mix top bottom (0 / 2)] + 4 : corner [mix left right (0 / 2)] [mix top bottom (1 / 2)] + 5 : corner [mix left right (1 / 2)] [mix top bottom (1 / 2)] + 6 : corner [mix left right (2 / 2)] [mix top bottom (1 / 2)] + 7 : corner [mix left right (0 / 2)] [mix top bottom (2 / 2)] + 8 : corner [mix left right (1 / 2)] [mix top bottom (2 / 2)] + 9 : corner [mix left right (2 / 2)] [mix top bottom (2 / 2)] + + define [PatternPolygon22 bits] : spiro-outline : bits.map : x => [PatternCorner22 (x - 0)] + + define [SmoothMosaic23 unicode pattern] : begin + create-glyph [MangleName ('blockMosaicSmooth23/' + pattern)] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + define corners : [pattern.split ''].map : x => [PatternCorner23 (x - 0)] + include : spiro-outline corners + + SmoothMosaic23 0x1FB3C '689' + SmoothMosaic23 0x1FB3D '680' + SmoothMosaic23 0x1FB3E '489' + SmoothMosaic23 0x1FB3F '480' + SmoothMosaic23 0x1FB40 '189' + SmoothMosaic23 0x1FB41 '42308' + SmoothMosaic23 0x1FB42 '4308' + SmoothMosaic23 0x1FB43 '62308' + SmoothMosaic23 0x1FB44 '6308' + SmoothMosaic23 0x1FB45 '2308' + SmoothMosaic23 0x1FB46 '6508' + SmoothMosaic23 0x1FB47 '970' + SmoothMosaic23 0x1FB48 '870' + SmoothMosaic23 0x1FB49 '950' + SmoothMosaic23 0x1FB4A '850' + SmoothMosaic23 0x1FB4B '930' + SmoothMosaic23 0x1FB4C '25081' + SmoothMosaic23 0x1FB4D '5081' + SmoothMosaic23 0x1FB4E '27081' + SmoothMosaic23 0x1FB4F '7081' + SmoothMosaic23 0x1FB50 '2081' + SmoothMosaic23 0x1FB51 '7084' + SmoothMosaic23 0x1FB52 '69031' + SmoothMosaic23 0x1FB53 '6031' + SmoothMosaic23 0x1FB54 '49031' + SmoothMosaic23 0x1FB55 '4031' + SmoothMosaic23 0x1FB56 '9031' + SmoothMosaic23 0x1FB57 '142' + SmoothMosaic23 0x1FB58 '143' + SmoothMosaic23 0x1FB59 '162' + SmoothMosaic23 0x1FB5A '163' + SmoothMosaic23 0x1FB5B '182' + SmoothMosaic23 0x1FB5C '1653' + SmoothMosaic23 0x1FB5D '18973' + SmoothMosaic23 0x1FB5E '1873' + SmoothMosaic23 0x1FB5F '18953' + SmoothMosaic23 0x1FB60 '1853' + SmoothMosaic23 0x1FB61 '1893' + SmoothMosaic23 0x1FB62 '235' + SmoothMosaic23 0x1FB63 '135' + SmoothMosaic23 0x1FB64 '237' + SmoothMosaic23 0x1FB65 '137' + SmoothMosaic23 0x1FB66 '230' + SmoothMosaic23 0x1FB67 '1473' + + define [SmoothMosaic22 unicode pattern] : begin + create-glyph [MangleName ('blockMosaicSmooth22/' + pattern)] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + define corners : [pattern.split ''].map : x => [PatternCorner22 (x - 0)] + include : spiro-outline corners + + SmoothMosaic22 0x1FB68 '15793' + SmoothMosaic22 0x1FB69 '17935' + SmoothMosaic22 0x1FB6A '17953' + SmoothMosaic22 0x1FB6B '17593' + SmoothMosaic22 0x1FB6C '175' + SmoothMosaic22 0x1FB6D '315' + SmoothMosaic22 0x1FB6E '359' + SmoothMosaic22 0x1FB6F '579' + SmoothMosaic22 0x1FB9A '1379' + SmoothMosaic22 0x1FB9B '1739' diff --git a/packages/font-glyphs/src/symbol/mosaic/teletext.ptl b/packages/font-glyphs/src/symbol/mosaic/teletext.ptl new file mode 100644 index 0000000000..47ef3441fc --- /dev/null +++ b/packages/font-glyphs/src/symbol/mosaic/teletext.ptl @@ -0,0 +1,359 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [maskBit] from "@iosevka/util/mask-bit" + +glyph-module + +glyph-block Symbol-Mosaic-Teletext : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + + for-width-kinds WideWidth4 + + define top fontMetrics.os2.sTypoAscender + define bottom fontMetrics.os2.sTypoDescender + define left 0 + define right MosaicWidth + + define gap : 0.05 * (top - bottom) + + define [BlockMosaicTile w h id kgap] : glyph-proc + local column : id % w + local row : Math.floor (id / w) + define cw : (right - left) / w + define ch : (top - bottom) / h + include : spiro-outline + corner (column * cw + kgap * gap) (top - row * ch - kgap * gap) + corner ((column + 1) * cw - kgap * gap) (top - row * ch - kgap * gap) + corner ((column + 1) * cw - kgap * gap) (top - (row + 1) * ch + kgap * gap) + corner (column * cw + kgap * gap) (top - (row + 1) * ch + kgap * gap) + + define [BlockMosaicPattern w h bits] : glyph-proc + if (bits.length > 0) : include : union + BlockMosaicTile w h bits.0 0 + BlockMosaicPattern w h : bits.slice 1 + + define [BlockMosaic23 unicode pattern] : begin + create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : BlockMosaicPattern 2 3 : [pattern.split ''].map : x => x - 1 + + define [BlockMosaic24 unicode pattern] : begin + create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : BlockMosaicPattern 2 4 : [pattern.split ''].map : x => x - 1 + + define [BlockMosaic unicode w h kgap pattern] : begin + create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : BlockMosaicPattern w h kgap pattern + + define [MakeGappedBlockMosaic w h su] : foreach [offset : range 1 [Math.pow 2 (w * h)]] : begin + create-glyph [MangleName : NameUni (su + offset)] [MangleUnicode (su + offset)] : glyph-proc + set-width MosaicWidth + include : ForceUpright + foreach [bit : range 0 (w * h)] : if [maskBit offset bit] + include : BlockMosaicTile w h bit 1 + + MakeGappedBlockMosaic 2 2 0x1CC20 + MakeGappedBlockMosaic 2 3 0x1CE50 + + BlockMosaic23 0x1FB00 '1' + BlockMosaic23 0x1FB01 '2' + BlockMosaic23 0x1FB02 '12' + BlockMosaic23 0x1FB03 '3' + BlockMosaic23 0x1FB04 '13' + BlockMosaic23 0x1FB05 '23' + BlockMosaic23 0x1FB06 '123' + BlockMosaic23 0x1FB07 '4' + BlockMosaic23 0x1FB08 '14' + BlockMosaic23 0x1FB09 '24' + BlockMosaic23 0x1FB0A '124' + BlockMosaic23 0x1FB0B '34' + BlockMosaic23 0x1FB0C '134' + BlockMosaic23 0x1FB0D '234' + BlockMosaic23 0x1FB0E '1234' + BlockMosaic23 0x1FB0F '5' + BlockMosaic23 0x1FB10 '15' + BlockMosaic23 0x1FB11 '25' + BlockMosaic23 0x1FB12 '125' + BlockMosaic23 0x1FB13 '35' + BlockMosaic23 0x1FB14 '235' + BlockMosaic23 0x1FB15 '1235' + BlockMosaic23 0x1FB16 '45' + BlockMosaic23 0x1FB17 '145' + BlockMosaic23 0x1FB18 '245' + BlockMosaic23 0x1FB19 '1245' + BlockMosaic23 0x1FB1A '345' + BlockMosaic23 0x1FB1B '1345' + BlockMosaic23 0x1FB1C '2345' + BlockMosaic23 0x1FB1D '12345' + BlockMosaic23 0x1FB1E '6' + BlockMosaic23 0x1FB1F '16' + BlockMosaic23 0x1FB20 '26' + BlockMosaic23 0x1FB21 '126' + BlockMosaic23 0x1FB22 '36' + BlockMosaic23 0x1FB23 '136' + BlockMosaic23 0x1FB24 '236' + BlockMosaic23 0x1FB25 '1236' + BlockMosaic23 0x1FB26 '46' + BlockMosaic23 0x1FB27 '146' + BlockMosaic23 0x1FB28 '1246' + BlockMosaic23 0x1FB29 '346' + BlockMosaic23 0x1FB2A '1346' + BlockMosaic23 0x1FB2B '2346' + BlockMosaic23 0x1FB2C '12346' + BlockMosaic23 0x1FB2D '56' + BlockMosaic23 0x1FB2E '156' + BlockMosaic23 0x1FB2F '256' + BlockMosaic23 0x1FB30 '1256' + BlockMosaic23 0x1FB31 '356' + BlockMosaic23 0x1FB32 '1356' + BlockMosaic23 0x1FB33 '2356' + BlockMosaic23 0x1FB34 '12356' + BlockMosaic23 0x1FB35 '456' + BlockMosaic23 0x1FB36 '1456' + BlockMosaic23 0x1FB37 '2456' + BlockMosaic23 0x1FB38 '12456' + BlockMosaic23 0x1FB39 '3456' + BlockMosaic23 0x1FB3A '13456' + BlockMosaic23 0x1FB3B '23456' + + BlockMosaic24 0x1CD00 '3' + BlockMosaic24 0x1CD01 '23' + BlockMosaic24 0x1CD02 '123' + BlockMosaic24 0x1CD03 '4' + BlockMosaic24 0x1CD04 '14' + BlockMosaic24 0x1CD05 '124' + BlockMosaic24 0x1CD06 '34' + BlockMosaic24 0x1CD07 '134' + BlockMosaic24 0x1CD08 '234' + BlockMosaic24 0x1CD09 '5' + BlockMosaic24 0x1CD0A '15' + BlockMosaic24 0x1CD0B '25' + BlockMosaic24 0x1CD0C '125' + BlockMosaic24 0x1CD0D '135' + BlockMosaic24 0x1CD0E '235' + BlockMosaic24 0x1CD0F '1235' + BlockMosaic24 0x1CD10 '45' + BlockMosaic24 0x1CD11 '145' + BlockMosaic24 0x1CD12 '245' + BlockMosaic24 0x1CD13 '1245' + BlockMosaic24 0x1CD14 '345' + BlockMosaic24 0x1CD15 '1345' + BlockMosaic24 0x1CD16 '2345' + BlockMosaic24 0x1CD17 '12345' + BlockMosaic24 0x1CD18 '6' + BlockMosaic24 0x1CD19 '16' + BlockMosaic24 0x1CD1A '26' + BlockMosaic24 0x1CD1B '126' + BlockMosaic24 0x1CD1C '36' + BlockMosaic24 0x1CD1D '136' + BlockMosaic24 0x1CD1E '236' + BlockMosaic24 0x1CD1F '1236' + BlockMosaic24 0x1CD20 '146' + BlockMosaic24 0x1CD21 '246' + BlockMosaic24 0x1CD22 '1246' + BlockMosaic24 0x1CD23 '346' + BlockMosaic24 0x1CD24 '1346' + BlockMosaic24 0x1CD25 '2346' + BlockMosaic24 0x1CD26 '12346' + BlockMosaic24 0x1CD27 '56' + BlockMosaic24 0x1CD28 '156' + BlockMosaic24 0x1CD29 '256' + BlockMosaic24 0x1CD2A '1256' + BlockMosaic24 0x1CD2B '356' + BlockMosaic24 0x1CD2C '1356' + BlockMosaic24 0x1CD2D '2356' + BlockMosaic24 0x1CD2E '12356' + BlockMosaic24 0x1CD2F '456' + BlockMosaic24 0x1CD30 '1456' + BlockMosaic24 0x1CD31 '2456' + BlockMosaic24 0x1CD32 '12456' + BlockMosaic24 0x1CD33 '3456' + BlockMosaic24 0x1CD34 '13456' + BlockMosaic24 0x1CD35 '23456' + BlockMosaic24 0x1CD36 '17' + BlockMosaic24 0x1CD37 '27' + BlockMosaic24 0x1CD38 '127' + BlockMosaic24 0x1CD39 '37' + BlockMosaic24 0x1CD3A '137' + BlockMosaic24 0x1CD3B '237' + BlockMosaic24 0x1CD3C '1237' + BlockMosaic24 0x1CD3D '47' + BlockMosaic24 0x1CD3E '147' + BlockMosaic24 0x1CD3F '247' + BlockMosaic24 0x1CD40 '1247' + BlockMosaic24 0x1CD41 '347' + BlockMosaic24 0x1CD42 '1347' + BlockMosaic24 0x1CD43 '2347' + BlockMosaic24 0x1CD44 '12347' + BlockMosaic24 0x1CD45 '157' + BlockMosaic24 0x1CD46 '257' + BlockMosaic24 0x1CD47 '1257' + BlockMosaic24 0x1CD48 '357' + BlockMosaic24 0x1CD49 '2357' + BlockMosaic24 0x1CD4A '12357' + BlockMosaic24 0x1CD4B '457' + BlockMosaic24 0x1CD4C '1457' + BlockMosaic24 0x1CD4D '12457' + BlockMosaic24 0x1CD4E '3457' + BlockMosaic24 0x1CD4F '13457' + BlockMosaic24 0x1CD50 '23457' + BlockMosaic24 0x1CD51 '67' + BlockMosaic24 0x1CD52 '167' + BlockMosaic24 0x1CD53 '267' + BlockMosaic24 0x1CD54 '1267' + BlockMosaic24 0x1CD55 '367' + BlockMosaic24 0x1CD56 '1367' + BlockMosaic24 0x1CD57 '2367' + BlockMosaic24 0x1CD58 '12367' + BlockMosaic24 0x1CD59 '467' + BlockMosaic24 0x1CD5A '1467' + BlockMosaic24 0x1CD5B '2467' + BlockMosaic24 0x1CD5C '12467' + BlockMosaic24 0x1CD5D '3467' + BlockMosaic24 0x1CD5E '13467' + BlockMosaic24 0x1CD5F '23467' + BlockMosaic24 0x1CD60 '123467' + BlockMosaic24 0x1CD61 '567' + BlockMosaic24 0x1CD62 '1567' + BlockMosaic24 0x1CD63 '2567' + BlockMosaic24 0x1CD64 '12567' + BlockMosaic24 0x1CD65 '3567' + BlockMosaic24 0x1CD66 '13567' + BlockMosaic24 0x1CD67 '23567' + BlockMosaic24 0x1CD68 '123567' + BlockMosaic24 0x1CD69 '4567' + BlockMosaic24 0x1CD6A '14567' + BlockMosaic24 0x1CD6B '24567' + BlockMosaic24 0x1CD6C '124567' + BlockMosaic24 0x1CD6D '34567' + BlockMosaic24 0x1CD6E '134567' + BlockMosaic24 0x1CD6F '234567' + BlockMosaic24 0x1CD70 '1234567' + BlockMosaic24 0x1CD71 '18' + BlockMosaic24 0x1CD72 '28' + BlockMosaic24 0x1CD73 '128' + BlockMosaic24 0x1CD74 '38' + BlockMosaic24 0x1CD75 '138' + BlockMosaic24 0x1CD76 '238' + BlockMosaic24 0x1CD77 '1238' + BlockMosaic24 0x1CD78 '48' + BlockMosaic24 0x1CD79 '148' + BlockMosaic24 0x1CD7A '248' + BlockMosaic24 0x1CD7B '1248' + BlockMosaic24 0x1CD7C '348' + BlockMosaic24 0x1CD7D '1348' + BlockMosaic24 0x1CD7E '2348' + BlockMosaic24 0x1CD7F '12348' + BlockMosaic24 0x1CD80 '58' + BlockMosaic24 0x1CD81 '158' + BlockMosaic24 0x1CD82 '258' + BlockMosaic24 0x1CD83 '1258' + BlockMosaic24 0x1CD84 '358' + BlockMosaic24 0x1CD85 '1358' + BlockMosaic24 0x1CD86 '2358' + BlockMosaic24 0x1CD87 '12358' + BlockMosaic24 0x1CD88 '458' + BlockMosaic24 0x1CD89 '1458' + BlockMosaic24 0x1CD8A '2458' + BlockMosaic24 0x1CD8B '12458' + BlockMosaic24 0x1CD8C '3458' + BlockMosaic24 0x1CD8D '13458' + BlockMosaic24 0x1CD8E '23458' + BlockMosaic24 0x1CD8F '123458' + BlockMosaic24 0x1CD90 '168' + BlockMosaic24 0x1CD91 '268' + BlockMosaic24 0x1CD92 '1268' + BlockMosaic24 0x1CD93 '368' + BlockMosaic24 0x1CD94 '2368' + BlockMosaic24 0x1CD95 '12368' + BlockMosaic24 0x1CD96 '468' + BlockMosaic24 0x1CD97 '1468' + BlockMosaic24 0x1CD98 '12468' + BlockMosaic24 0x1CD99 '3468' + BlockMosaic24 0x1CD9A '13468' + BlockMosaic24 0x1CD9B '23468' + BlockMosaic24 0x1CD9C '568' + BlockMosaic24 0x1CD9D '1568' + BlockMosaic24 0x1CD9E '2568' + BlockMosaic24 0x1CD9F '12568' + BlockMosaic24 0x1CDA0 '3568' + BlockMosaic24 0x1CDA1 '13568' + BlockMosaic24 0x1CDA2 '23568' + BlockMosaic24 0x1CDA3 '123568' + BlockMosaic24 0x1CDA4 '4568' + BlockMosaic24 0x1CDA5 '14568' + BlockMosaic24 0x1CDA6 '24568' + BlockMosaic24 0x1CDA7 '124568' + BlockMosaic24 0x1CDA8 '34568' + BlockMosaic24 0x1CDA9 '134568' + BlockMosaic24 0x1CDAA '234568' + BlockMosaic24 0x1CDAB '1234568' + BlockMosaic24 0x1CDAC '178' + BlockMosaic24 0x1CDAD '278' + BlockMosaic24 0x1CDAE '1278' + BlockMosaic24 0x1CDAF '378' + BlockMosaic24 0x1CDB0 '1378' + BlockMosaic24 0x1CDB1 '2378' + BlockMosaic24 0x1CDB2 '12378' + BlockMosaic24 0x1CDB3 '478' + BlockMosaic24 0x1CDB4 '1478' + BlockMosaic24 0x1CDB5 '2478' + BlockMosaic24 0x1CDB6 '12478' + BlockMosaic24 0x1CDB7 '3478' + BlockMosaic24 0x1CDB8 '13478' + BlockMosaic24 0x1CDB9 '23478' + BlockMosaic24 0x1CDBA '123478' + BlockMosaic24 0x1CDBB '578' + BlockMosaic24 0x1CDBC '1578' + BlockMosaic24 0x1CDBD '2578' + BlockMosaic24 0x1CDBE '12578' + BlockMosaic24 0x1CDBF '3578' + BlockMosaic24 0x1CDC0 '13578' + BlockMosaic24 0x1CDC1 '23578' + BlockMosaic24 0x1CDC2 '123578' + BlockMosaic24 0x1CDC3 '4578' + BlockMosaic24 0x1CDC4 '14578' + BlockMosaic24 0x1CDC5 '24578' + BlockMosaic24 0x1CDC6 '124578' + BlockMosaic24 0x1CDC7 '34578' + BlockMosaic24 0x1CDC8 '134578' + BlockMosaic24 0x1CDC9 '234578' + BlockMosaic24 0x1CDCA '1234578' + BlockMosaic24 0x1CDCB '678' + BlockMosaic24 0x1CDCC '1678' + BlockMosaic24 0x1CDCD '2678' + BlockMosaic24 0x1CDCE '12678' + BlockMosaic24 0x1CDCF '3678' + BlockMosaic24 0x1CDD0 '13678' + BlockMosaic24 0x1CDD1 '23678' + BlockMosaic24 0x1CDD2 '123678' + BlockMosaic24 0x1CDD3 '4678' + BlockMosaic24 0x1CDD4 '14678' + BlockMosaic24 0x1CDD5 '24678' + BlockMosaic24 0x1CDD6 '124678' + BlockMosaic24 0x1CDD7 '34678' + BlockMosaic24 0x1CDD8 '134678' + BlockMosaic24 0x1CDD9 '234678' + BlockMosaic24 0x1CDDA '1234678' + BlockMosaic24 0x1CDDB '15678' + BlockMosaic24 0x1CDDC '25678' + BlockMosaic24 0x1CDDD '125678' + BlockMosaic24 0x1CDDE '35678' + BlockMosaic24 0x1CDDF '235678' + BlockMosaic24 0x1CDE0 '1235678' + BlockMosaic24 0x1CDE1 '45678' + BlockMosaic24 0x1CDE2 '145678' + BlockMosaic24 0x1CDE3 '1245678' + BlockMosaic24 0x1CDE4 '1345678' + BlockMosaic24 0x1CDE5 '2345678' + + BlockMosaic 0x1FB95 4 4 0 {0 2 5 7 8 10 13 15} + BlockMosaic 0x1FB96 4 4 0 {1 3 4 6 9 11 12 14} + BlockMosaic 0x1FB97 4 4 0 {4 5 6 7 12 13 14 15} diff --git a/packages/font-glyphs/src/symbol/pictograph/faces.ptl b/packages/font-glyphs/src/symbol/pictograph/faces.ptl index 2fd9dacb8f..b60425d4a0 100644 --- a/packages/font-glyphs/src/symbol/pictograph/faces.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/faces.ptl @@ -62,6 +62,12 @@ glyph-block Symbol-Pictograph-Faces : begin FaceRing OShape SmileFace 0 : 0.6 * (faceWidth - faceStroke * 2) + create-glyph [MangleName 'blackNeutralFace'] [MangleUnicode 0x1CC6F] : glyph-proc + set-width MosaicWidth + include : difference + FaceRing OShapeOutline + SmileFace 0 : 0.6 * (faceWidth - faceStroke * 2) + create-glyph [MangleName 'mouthlessFace'] [MangleUnicode 0x1F636] : glyph-proc set-width MosaicWidth include : union 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 7f020facfa..175d37f891 100644 --- a/packages/font-glyphs/src/symbol/pictograph/powerline-and-gui.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/powerline-and-gui.ptl @@ -153,8 +153,8 @@ glyph-block Symbol-Pictograph-Powerline-And-GUI : begin MosaicWidthMask RunningManBody (-MosaicWidth) - define [FolderBody xOffset] : begin - local Kit : StickFigureKit [BoxN 2] [Translate xOffset 0] [AdviceStroke 4] + define [FolderBody xOffset box] : begin + local Kit : StickFigureKit box [Translate xOffset 0] [AdviceStroke 4] return : union Kit.RoundSeg (0 / 16) (1 / 8) (0 / 16) (11 / 16) Kit.RoundSeg (0 / 16) (11 / 16) (3 / 16) (7 / 8) 1 1 @@ -168,13 +168,22 @@ glyph-block Symbol-Pictograph-Powerline-And-GUI : begin set-width MosaicWidth include : intersection MosaicWidthMask - FolderBody 0 + FolderBody 0 [BoxN 2] create-glyph [MangleName 'folderRight'] [MangleUnicode 0x1FBBA] : glyph-proc set-width MosaicWidth include : intersection MosaicWidthMask - FolderBody (-MosaicWidth) + FolderBody (-MosaicWidth) [BoxN 2] + + create-glyph [MangleName 'folder'] [MangleUnicode 0x1F5C0] : glyph-proc + set-width MosaicWidth + local hbox : new Box + mix SymbolMid uiFigTop (0.5 * MosaicWidthScalar) + mix SymbolMid uiFigBot (0.5 * MosaicWidthScalar) + SB * (0.5 * MosaicWidthScalar) + MosaicWidth - SB * (0.5 * MosaicWidthScalar) + include : FolderBody 0 hbox define [PointingHandBody xOffset] : begin return : PointingHandShape [BoxN 3] [Translate xOffset 0] [AdviceStroke 4] @@ -202,6 +211,7 @@ glyph-block Symbol-Pictograph-Powerline-And-GUI : begin set scaffold.top uiFigTop set scaffold.bot uiFigBot set scaffold.xMiddle : MosaicWidth / 2 + set scaffold.yMiddle : mix uiFigBot uiFigTop 0.5 set scaffold.headSize : (uiFigTop - uiFigBot) / 2.5 set scaffold.legSize : (Middle - SB) * 2 set scaffold.armSize : (Middle - SB / 2) * 2 @@ -356,6 +366,7 @@ glyph-block Symbol-Pictograph-Powerline-And-GUI : begin set scaffold.width : (Middle - SB) * 2 * [Math.pow (MosaicWidth / Width) 0.5] set scaffold.left : (MosaicWidth / 2) - scaffold.width / 2 + scaffold.stroke / 2 set scaffold.right : (MosaicWidth / 2) + scaffold.width / 2 - scaffold.stroke / 2 + define [StrokeV x yt yb] : spiro-outline corner x (yt - scaffold.gap) corner (x + scaffold.stroke) (yt - scaffold.gap - scaffold.stroke) diff --git a/packages/font-kits/package.json b/packages/font-kits/package.json index b7d2313873..e02720f69d 100644 --- a/packages/font-kits/package.json +++ b/packages/font-kits/package.json @@ -1,14 +1,14 @@ { "name": "@iosevka/font-kits", - "version": "28.1.0", + "version": "29.0.0-beta.1", "private": true, "exports": { "./boole-kit": "./src/boole-kit.mjs", "./spiro-kit": "./src/spiro-kit.mjs" }, "dependencies": { - "@iosevka/geometry": "28.1.0", - "@iosevka/glyph": "28.1.0", - "@iosevka/util": "28.1.0" + "@iosevka/geometry": "29.0.0-beta.1", + "@iosevka/glyph": "29.0.0-beta.1", + "@iosevka/util": "29.0.0-beta.1" } } diff --git a/packages/font-kits/src/spiro-kit.mjs b/packages/font-kits/src/spiro-kit.mjs index ff6dcb04b6..241f1fe225 100644 --- a/packages/font-kits/src/spiro-kit.mjs +++ b/packages/font-kits/src/spiro-kit.mjs @@ -1,7 +1,7 @@ import { DiSpiroGeometry, SpiroGeometry } from "@iosevka/geometry"; import { BiKnotCollector, - ControlKnot, + UserControlKnot, Interpolator, TerminateInstruction } from "@iosevka/geometry/spiro-control"; @@ -44,7 +44,11 @@ class SpiroOutlineImpl extends SpiroImplBase { applyToGlyph(glyph) { const { gizmo, collector } = this.createCollector(glyph); return glyph.includeGeometry( - new SpiroGeometry(gizmo, collector.closed, collector.controls) + new SpiroGeometry( + gizmo, + collector.closed, + collector.controls.map(k => k.toMono()) + ) ); } } @@ -75,7 +79,7 @@ export function SetupBuilders(bindings) { return (x, y, f) => { if (!isFinite(x)) throw new TypeError("NaN detected for X"); if (!isFinite(y)) throw new TypeError("NaN detected for Y"); - return new ControlKnot(type, x, y, f); + return new UserControlKnot(type, x, y, f); }; } const g4 = KnotType("g4"); @@ -233,8 +237,8 @@ export function SetupBuilders(bindings) { args.raf && args.raf.blend && rt !== void 0 ? args.raf.blend(rt) : args.raf - ? args.raf - : unimportant + ? args.raf + : unimportant ) ); } @@ -250,8 +254,8 @@ export function SetupBuilders(bindings) { args.raf && args.raf.blend && rt !== void 0 ? args.raf.blend(rt) : args.raf - ? args.raf - : unimportant + ? args.raf + : unimportant ) ); } diff --git a/packages/font-otl/package.json b/packages/font-otl/package.json index 329d304fc3..5a84e9db34 100644 --- a/packages/font-otl/package.json +++ b/packages/font-otl/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/font-otl", - "version": "28.1.0", + "version": "29.0.0-beta.1", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/font-glyphs": "28.1.0", - "@iosevka/glyph": "28.1.0", + "@iosevka/font-glyphs": "29.0.0-beta.1", + "@iosevka/glyph": "29.0.0-beta.1", "toposort": "^2.0.2" } } diff --git a/packages/font-otl/src/gsub-frac.ptl b/packages/font-otl/src/gsub-frac.ptl index 9e5c899bcb..77b46dc3a8 100644 --- a/packages/font-otl/src/gsub-frac.ptl +++ b/packages/font-otl/src/gsub-frac.ptl @@ -9,10 +9,6 @@ export : define [buildFrac gsub glyphStore] : begin define frac : gsub.addCommonFeature : gsub.createFeature 'frac' define { chain-rule reverse-rule } : gsub.ChainRuleBuilder - define subSolidus : gsub.createLookup : object - .type 'gsub_single' - .substitutions : object ['solidus' 'fractionBar'] ['slash' 'fractionBar'] - define digitSet { } define numSet { } define denSet { } @@ -25,6 +21,11 @@ export : define [buildFrac gsub glyphStore] : begin numSet.push numForm denSet.push denForm + define subSolidus : gsub.createLookup : object + .type 'gsub_chaining' + .rules : list + chain-rule digitSet ({'solidus' 'slash'} ~> {'fractionBar' 'fractionBar'}) digitSet + define subDen : gsub.createLookup : object .type 'gsub_chaining' .rules : list diff --git a/packages/font-otl/src/index.ptl b/packages/font-otl/src/index.ptl index 1304406691..ce8f6c833e 100644 --- a/packages/font-otl/src/index.ptl +++ b/packages/font-otl/src/index.ptl @@ -32,6 +32,9 @@ define [buildGSUB para glyphStore markGlyphs] : begin buildGrFeature gsub glyphStore Gr.Lnum buildGrFeature gsub glyphStore Gr.Onum + # Mosaic form + buildGrFeature gsub glyphStore Gr.MosaicForm + # zero is handled inside the CV/SS feature builder # As it is a cv/ss "cherry picking". diff --git a/packages/font/package.json b/packages/font/package.json index cf0b46f620..d334fb427d 100644 --- a/packages/font/package.json +++ b/packages/font/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font", - "version": "28.1.0", + "version": "29.0.0-beta.1", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,13 +10,13 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/font-glyphs": "28.1.0", - "@iosevka/font-otl": "28.1.0", - "@iosevka/geometry": "28.1.0", - "@iosevka/geometry-cache": "28.1.0", - "@iosevka/glyph": "28.1.0", - "@iosevka/param": "28.1.0", - "@iosevka/util": "28.1.0", + "@iosevka/font-glyphs": "29.0.0-beta.1", + "@iosevka/font-otl": "29.0.0-beta.1", + "@iosevka/geometry": "29.0.0-beta.1", + "@iosevka/geometry-cache": "29.0.0-beta.1", + "@iosevka/glyph": "29.0.0-beta.1", + "@iosevka/param": "29.0.0-beta.1", + "@iosevka/util": "29.0.0-beta.1", "harfbuzzjs": "^0.3.4", "ot-builder": "^1.7.3", "semver": "^7.5.4" diff --git a/packages/font/src/finalize/index.mjs b/packages/font/src/finalize/index.mjs index dc68812aed..e360bc949f 100644 --- a/packages/font/src/finalize/index.mjs +++ b/packages/font/src/finalize/index.mjs @@ -3,6 +3,15 @@ import { Nwid, Wwid } from "@iosevka/glyph/relation"; import { gcFont } from "./gc.mjs"; import { finalizeGlyphs } from "./glyphs.mjs"; +export function finalizeFont(cache, para, glyphStore, excludedCodePoints, restFont) { + assignGrAndCodeRank(glyphStore, Wwid, Nwid); + assignSubRank(glyphStore); + glyphStore = gcFont(glyphStore, excludedCodePoints, restFont); + glyphStore = finalizeGlyphs(cache, para, glyphStore); + validateMonospace(para, glyphStore); + return glyphStore; +} + function assignGrAndCodeRank(glyphStore, ...flatteners) { for (const g of glyphStore.glyphs()) { g.codeRank = 0xffffffff; @@ -32,11 +41,3 @@ function validateMonospace(para, glyphStore) { throw new Error("Unreachable! Building monospace with more than 2 character widths"); } } -export function finalizeFont(cache, para, glyphStore, excludedCodePoints, restFont) { - assignGrAndCodeRank(glyphStore, Nwid, Wwid); - assignSubRank(glyphStore); - glyphStore = gcFont(glyphStore, excludedCodePoints, restFont); - glyphStore = finalizeGlyphs(cache, para, glyphStore); - validateMonospace(para, glyphStore); - return glyphStore; -} diff --git a/packages/font/src/otd-conv/glyphs.mjs b/packages/font/src/otd-conv/glyphs.mjs index 6b16c97fe0..d2950e15d0 100644 --- a/packages/font/src/otd-conv/glyphs.mjs +++ b/packages/font/src/otd-conv/glyphs.mjs @@ -5,14 +5,36 @@ import { Ot } from "ot-builder"; import * as GlyphName from "./glyph-name.mjs"; -function byRank([gna, a], [gnb, b]) { - return ( - b.glyphRank - a.glyphRank || - a.grRank - b.grRank || - a.codeRank - b.codeRank || - a.subRank - b.subRank - ); +export function convertGlyphs(gsOrig) { + const sortedEntries = Array.from(gsOrig.namedEntries(Gr.Nwid, Gr.Wwid)).sort(byRank); + const gs = new MappedGlyphStore(); + const cmap = new Ot.Cmap.Table(); + + // initialize + for (const [name, gSrc] of sortedEntries) { + gs.declare(name, gSrc); + const us = gsOrig.queryUnicodeOf(gSrc); + if (us) { + for (const u of us) { + if (!(isFinite(u - 0) && u)) continue; + cmap.unicode.set(u, gs.queryBySourceGlyph(gSrc)); + gs.setPrimaryUnicode(gSrc, u); + } + } + } + + // fill geometry + for (const [name, gSrc] of sortedEntries) gs.fill(name, gSrc); + + // fill VS + addVsLinks(gsOrig, gs, cmap, Gr.VS01, 0xfe00); + + // fill glyph names + gs.fillOtGlyphNames(); + + return { glyphs: gs, cmap }; } + class MappedGlyphStore { constructor() { this.m_nameMapping = new Map(); @@ -150,36 +172,6 @@ class MappedGlyphStore { } } -export function convertGlyphs(gsOrig) { - const sortedEntries = Array.from(gsOrig.namedEntries(Gr.Nwid, Gr.Wwid)).sort(byRank); - const gs = new MappedGlyphStore(); - const cmap = new Ot.Cmap.Table(); - - // initialize - for (const [name, gSrc] of sortedEntries) { - gs.declare(name, gSrc); - const us = gsOrig.queryUnicodeOf(gSrc); - if (us) { - for (const u of us) { - if (!(isFinite(u - 0) && u)) continue; - cmap.unicode.set(u, gs.queryBySourceGlyph(gSrc)); - gs.setPrimaryUnicode(gSrc, u); - } - } - } - - // fill geometry - for (const [name, gSrc] of sortedEntries) gs.fill(name, gSrc); - - // fill VS - addVsLinks(gsOrig, gs, cmap, Gr.VS01, 0xfe00); - - // fill glyph names - gs.fillOtGlyphNames(); - - return { glyphs: gs, cmap }; -} - function addVsLinks(gsOrig, gs, cmap, gr, vs) { for (const gSrc of gsOrig.glyphs()) { const us = gsOrig.queryUnicodeOf(gSrc); @@ -200,3 +192,12 @@ function addVsLinks(gsOrig, gs, cmap, gr, vs) { } } } + +function byRank([gna, a], [gnb, b]) { + return ( + b.glyphRank - a.glyphRank || + a.grRank - b.grRank || + a.codeRank - b.codeRank || + a.subRank - b.subRank + ); +} diff --git a/packages/geometry-cache/package.json b/packages/geometry-cache/package.json index 96a4df326b..c88c4b7e81 100644 --- a/packages/geometry-cache/package.json +++ b/packages/geometry-cache/package.json @@ -1,12 +1,12 @@ { "name": "@iosevka/geometry-cache", - "version": "28.1.0", + "version": "29.0.0-beta.1", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/geometry": "28.1.0", + "@iosevka/geometry": "29.0.0-beta.1", "@msgpack/msgpack": "^2.8.0" } } diff --git a/packages/geometry-cache/src/index.mjs b/packages/geometry-cache/src/index.mjs index b0885a0d44..dbf5dd859b 100644 --- a/packages/geometry-cache/src/index.mjs +++ b/packages/geometry-cache/src/index.mjs @@ -4,7 +4,7 @@ import zlib from "zlib"; import * as CurveUtil from "@iosevka/geometry/curve-util"; import { encode, decode } from "@msgpack/msgpack"; -const Edition = 33; +const Edition = 35; const MAX_AGE = 16; class GfEntry { constructor(age, value) { diff --git a/packages/geometry/package.json b/packages/geometry/package.json index acae86ac59..664d2e9873 100644 --- a/packages/geometry/package.json +++ b/packages/geometry/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/geometry", - "version": "28.1.0", + "version": "29.0.0-beta.1", "private": true, "exports": { ".": "./src/index.mjs", @@ -13,7 +13,7 @@ "./spiro-control": "./src/spiro-control.mjs" }, "dependencies": { - "@iosevka/util": "28.1.0", + "@iosevka/util": "29.0.0-beta.1", "spiro": "^3.0.0", "typo-geom": "^0.14.0" } diff --git a/packages/geometry/src/index.mjs b/packages/geometry/src/index.mjs index 405da88504..95832a6e40 100644 --- a/packages/geometry/src/index.mjs +++ b/packages/geometry/src/index.mjs @@ -8,8 +8,8 @@ import * as CurveUtil from "./curve-util.mjs"; import { Point } from "./point.mjs"; import { QuadifySink } from "./quadify.mjs"; import { SpiroExpander } from "./spiro-expand.mjs"; -import { Transform } from "./transform.mjs"; import { strokeArcs } from "./stroke.mjs"; +import { Transform } from "./transform.mjs"; export const CPLX_NON_EMPTY = 0x01; // A geometry tree that is not empty export const CPLX_NON_SIMPLE = 0x02; // A geometry tree that contains non-simple contours @@ -79,10 +79,7 @@ export class ContourSetGeometry extends GeometryBase { export class SpiroGeometry extends GeometryBase { constructor(gizmo, closed, knots) { super(); - this.m_knots = []; - for (const k of knots) { - this.m_knots.push({ type: k.type, x: k.x, y: k.y }); - } + this.m_knots = knots; this.m_closed = closed; this.m_gizmo = gizmo; this.m_cachedContours = null; @@ -120,7 +117,7 @@ export class SpiroGeometry extends GeometryBase { "SpiroGeometry", Format.gizmo(this.m_gizmo), this.m_closed, - Format.list(this.m_knots.map(Format.typedPoint)) + Format.list(this.m_knots.map(k => k.toShapeString())) ); } } @@ -140,17 +137,20 @@ export class DiSpiroGeometry extends GeometryBase { const expandResult = this.expand(); const lhs = [...expandResult.lhsUntransformed]; const rhs = [...expandResult.rhsUntransformed]; + // Reverse the RHS + for (const k of rhs) k.reverseType(); + rhs.reverse(); let rawGeometry; if (this.m_closed) { rawGeometry = new CombineGeometry([ new SpiroGeometry(this.m_gizmo, true, lhs), - new SpiroGeometry(this.m_gizmo, true, rhs.reverse()) + new SpiroGeometry(this.m_gizmo, true, rhs) ]); } else { lhs[0].type = lhs[lhs.length - 1].type = "corner"; rhs[0].type = rhs[rhs.length - 1].type = "corner"; - const allKnots = lhs.concat(rhs.reverse()); + const allKnots = lhs.concat(rhs); rawGeometry = new SpiroGeometry(this.m_gizmo, true, allKnots); } this.m_cachedContours = rawGeometry.asContours(); @@ -217,7 +217,12 @@ export class ReferenceGeometry extends GeometryBase { return this.unwrap().asContours(); } asReferences() { - return [{ glyph: this.m_glyph, x: this.m_x, y: this.m_y }]; + if (this.m_glyph.geometry.measureComplexity() & CPLX_NON_EMPTY) { + return [{ glyph: this.m_glyph, x: this.m_x, y: this.m_y }]; + } else { + // A reference to a space is meaningless, thus return nothing + return []; + } } getDependencies() { return [this.m_glyph]; diff --git a/packages/geometry/src/spiro-control.mjs b/packages/geometry/src/spiro-control.mjs index 24df788ab5..1aaca9f017 100644 --- a/packages/geometry/src/spiro-control.mjs +++ b/packages/geometry/src/spiro-control.mjs @@ -20,7 +20,7 @@ export class BiKnotCollector { c.call(this); } else if (Array.isArray(c)) { for (const item of c) this.add(item); - } else if (c instanceof ControlKnot) { + } else if (c instanceof UserControlKnot) { this.afterPreFunction = true; this.pushKnot(c); } else if (c instanceof TerminateInstruction) { @@ -102,6 +102,33 @@ export class BiKnotCollector { } } +/////////////////////////////////////////////////////////////////////////////////////////////////// + +export class MonoKnot { + constructor(type, unimportant, x, y) { + this.type = type; + this.x = x; + this.y = y; + this.unimportant = unimportant; + } + clone() { + const k1 = new MonoKnot(this.type, this.x, this.y, this.unimportant); + return k1; + } + toShapeString() { + return Format.tuple(this.type, this.unimportant, Format.n(this.x), Format.n(this.y)); + } + reverseType() { + if (this.type === "left") { + this.type = "right"; + } else if (this.type === "right") { + this.type = "left"; + } + } +} + +/////////////////////////////////////////////////////////////////////////////////////////////////// + class BiKnot { constructor(type, x, y, d1, d2) { this.type = type; @@ -144,6 +171,9 @@ class BiKnot { : "" ); } + toMono() { + return new MonoKnot(this.type, this.unimportant, this.x, this.y); + } } function nCyclic(p, n) { @@ -152,7 +182,7 @@ function nCyclic(p, n) { /////////////////////////////////////////////////////////////////////////////////////////////////// -export class ControlKnot { +export class UserControlKnot { constructor(type, x, y, af) { this.type = type; this.x = x; @@ -185,10 +215,3 @@ export function Interpolator(blender, restParameters) { for (const prop in restParameters) interpolator[prop] = restParameters[prop]; return interpolator; } - -export class ImportanceControlKnot extends ControlKnot { - constructor(type, x, y, unimportant) { - super(type, x, y, null); - this.unimportant = unimportant; - } -} diff --git a/packages/geometry/src/spiro-expand.mjs b/packages/geometry/src/spiro-expand.mjs index 7a41988829..0cc0ce7f98 100644 --- a/packages/geometry/src/spiro-expand.mjs +++ b/packages/geometry/src/spiro-expand.mjs @@ -2,7 +2,7 @@ import { linreg, mix } from "@iosevka/util"; import * as SpiroJs from "spiro"; import { Vec2 } from "./point.mjs"; -import { ControlKnot } from "./spiro-control.mjs"; +import { MonoKnot } from "./spiro-control.mjs"; /////////////////////////////////////////////////////////////////////////////////////////////////// @@ -30,8 +30,9 @@ export class SpiroExpander { for (let j = 0; j < this.m_biKnotsT.length; j++) { const lhs = expanded.lhs[j]; const rhs = expanded.rhs[j]; - middles[j] = new ControlKnot( + middles[j] = new MonoKnot( this.m_biKnotsT[j].type, + this.m_biKnotsT[j].unimportant, mix(lhs.x, rhs.x, 0.5), mix(lhs.y, rhs.y, 0.5) ); @@ -39,17 +40,17 @@ export class SpiroExpander { return middles; } expand() { - const lhs = [], - rhs = [], - lhsUntransformed = [], - rhsUntransformed = []; + const lhsT = [], // transformed LHS + rhsT = [], // transformed RHS + lhsU = [], // untransformed LHS + rhsU = []; // untransformed RHS for (let j = 0; j < this.m_biKnotsT.length; j++) { - const knot = this.m_biKnotsT[j]; - lhs[j] = new ControlKnot(knot.type, 0, 0); - rhs[j] = new ControlKnot(reverseKnotType(knot.type), 0, 0); - lhsUntransformed[j] = new ControlKnot(knot.type, 0, 0); - rhsUntransformed[j] = new ControlKnot(reverseKnotType(knot.type), 0, 0); + const bk = this.m_biKnotsT[j]; + lhsT[j] = new MonoKnot(bk.type, bk.unimportant, 0, 0); + rhsT[j] = new MonoKnot(bk.type, bk.unimportant, 0, 0); + lhsU[j] = new MonoKnot(bk.type, bk.unimportant, 0, 0); + rhsU[j] = new MonoKnot(bk.type, bk.unimportant, 0, 0); } for (let j = 0; j < this.m_biKnotsT.length; j++) { @@ -63,17 +64,17 @@ export class SpiroExpander { dx = normalX(knotT.origTangent, this.m_contrast); dy = normalY(knotT.origTangent, this.m_contrast); } - lhs[j].x = knotT.x + knotT.d1 * dx; - lhs[j].y = knotT.y + knotT.d1 * dy; - rhs[j].x = knotT.x - knotT.d2 * dx; - rhs[j].y = knotT.y - knotT.d2 * dy; + lhsT[j].x = knotT.x + knotT.d1 * dx; + lhsT[j].y = knotT.y + knotT.d1 * dy; + rhsT[j].x = knotT.x - knotT.d2 * dx; + rhsT[j].y = knotT.y - knotT.d2 * dy; - this.m_gizmo.unapplyToSink(lhs[j], lhsUntransformed[j]); - this.m_gizmo.unapplyToSink(rhs[j], rhsUntransformed[j]); + this.m_gizmo.unapplyToSink(lhsT[j], lhsU[j]); + this.m_gizmo.unapplyToSink(rhsT[j], rhsU[j]); } - this.interpolateUnimportantKnots(lhs, rhs, lhsUntransformed, rhsUntransformed); - return { lhs, rhs, lhsUntransformed, rhsUntransformed }; + this.interpolateUnimportantKnots(lhsT, rhsT, lhsU, rhsU); + return { lhs: lhsT, rhs: rhsT, lhsUntransformed: lhsU, rhsUntransformed: rhsU }; } interpolateUnimportantKnots(lhsT, rhsT, lhsU, rhsU) { for (let j = 0; j < this.m_biKnotsU.length; j++) { @@ -143,9 +144,6 @@ function normalY(tangent) { return tangent.x / Math.hypot(tangent.x, tangent.y); } -function reverseKnotType(ty) { - return ty === "left" ? "right" : ty === "right" ? "left" : ty; -} function cyNth(a, j) { return a[j % a.length]; } diff --git a/packages/glyph/package.json b/packages/glyph/package.json index 2303cfa787..c08cd1195b 100644 --- a/packages/glyph/package.json +++ b/packages/glyph/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/glyph", - "version": "28.1.0", + "version": "29.0.0-beta.1", "private": true, "exports": { ".": "./src/glyph.mjs", @@ -9,6 +9,6 @@ "./relation": "./src/relation.mjs" }, "dependencies": { - "@iosevka/geometry": "28.1.0" + "@iosevka/geometry": "29.0.0-beta.1" } } diff --git a/packages/glyph/src/relation.mjs b/packages/glyph/src/relation.mjs index 64070ebee1..47315e0486 100644 --- a/packages/glyph/src/relation.mjs +++ b/packages/glyph/src/relation.mjs @@ -67,6 +67,7 @@ export const Wwid = OtlTaggedProp("Wwid", "WWID", "Narrow cell"); export const Lnum = OtlTaggedProp("Lnum", "lnum", "Lining number"); export const Onum = OtlTaggedProp("Onum", "onum", "Old-style number"); export const Zero = OtlTaggedProp("Zero", "zero", "Slashed zero"); +export const MosaicForm = OtlTaggedProp("MosaicForm", "MOSC", "Mosaic form"); export const AplForm = OtlTaggedProp("AplForm", "APLF", "APL form"); export const NumeratorForm = OtlTaggedProp("Numerator", "numr"); export const DenominatorForm = OtlTaggedProp("Denominator", "dnom"); @@ -330,6 +331,7 @@ export function createGrDisplaySheet(glyphStore, gn) { displayQueryPairFeatures(glyph, "Width", Nwid, Wwid, typographicFeatures); displayQueryPairFeatures(glyph, "Number Form", Lnum, Onum, typographicFeatures); displayQuerySingleFeature(glyph, AplForm, typographicFeatures); + displayQuerySingleFeature(glyph, MosaicForm, typographicFeatures); for (const gr of CvCherryPickingGrs) displayQuerySingleFeature(glyph, gr, typographicFeatures); // Query selected character variants @@ -447,6 +449,14 @@ export function linkSuffixPairGr(gs, tagCis, tagTrans, grCis, grTrans) { } } +export function linkSingleGlyphPairGr(gs, fromName, toName, gr) { + const gFrom = gs.queryByName(fromName); + if (!gFrom) return; + const gTo = gs.queryByName(toName); + if (!gTo) return; + gr.set(gFrom, toName); +} + /////////////////////////////////////////////////////////////////////////////////////////////////// export function hashCv(g) { diff --git a/packages/param/package.json b/packages/param/package.json index 39d1f1896a..fc98677159 100644 --- a/packages/param/package.json +++ b/packages/param/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/param", - "version": "28.1.0", + "version": "29.0.0-beta.1", "private": true, "exports": { ".": "./src/index.mjs", @@ -9,6 +9,6 @@ "./metric-override": "./src/metric-override.mjs" }, "dependencies": { - "@iosevka/util": "28.1.0" + "@iosevka/util": "29.0.0-beta.1" } } diff --git a/packages/util/package.json b/packages/util/package.json index 92c2dbac62..9ecf140111 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/util", - "version": "28.1.0", + "version": "29.0.0-beta.1", "private": true, "exports": { ".": "./src/index.mjs", diff --git a/params/parameters.toml b/params/parameters.toml index 93c2b44112..cc4debe4ed 100644 --- a/params/parameters.toml +++ b/params/parameters.toml @@ -125,15 +125,15 @@ forceMonospace = true [spacing-quasi-proportional] spacing = 3 isQuasiProportional = true -diversityM = 1.25 -diversityF = 0.75 -diversityI = 0.75 -diversityII = 0.50 +diversityM = 1.3333333333333 # 4/3 +diversityF = 0.8333333333333 # 5/6 +diversityI = 0.6666666666666 # 2/3 +diversityII = 0.5 # 1/2 [spacing-quasi-proportional-extension-only] spacing = 3 isQuasiProportional = true -diversityM = 1.25 +diversityM = 1.3333333333333 # 4/3 diversityF = 1.00 diversityI = 1.00 diversityII = 1.00 diff --git a/params/variants.toml b/params/variants.toml index f1ccf42a19..f67aab7050 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -440,16 +440,16 @@ selector."cyrl/Nje/leftHalf/reduced" = "serifedExceptBottomRight" sampler = "I" tagKind = "letter" -[prime.capital-i.variants.serifed] +[prime.capital-i.variants.serifless] rank = 1 -description = "I with standard (long) serifs" -selector.I = "serifed" +description = "I without serifs, like a straight bar" +selector.I = "serifless" selector."I/sansSerif" = "serifless" -[prime.capital-i.variants.serifless] +[prime.capital-i.variants.serifed] rank = 2 -description = "I without serifs, like a straight bar" -selector.I = "serifless" +description = "I with standard (long) serifs" +selector.I = "serifed" selector."I/sansSerif" = "serifless" [prime.capital-i.variants.short-serifed] @@ -1108,22 +1108,22 @@ selectorAffix.U = "serifless" selectorAffix."U/noTopLeftSerif" = "serifless" selectorAffix."U/sansSerif" = "serifless" -[prime.capital-u.variants-buildup.stages.serifs.motion-serifed] -rank = 2 -disableIf = [{ body = "toothless-corner" }, { body = "toothless-rounded" }] -descriptionAffix = "motion serifs at top-left and bottom-right" -selectorAffix.U = "unilateralMotionSerifed" -selectorAffix."U/noTopLeftSerif" = "serifless" -selectorAffix."U/sansSerif" = "serifless" - [prime.capital-u.variants-buildup.stages.serifs.bottom-right-serifed] -rank = 3 +rank = 2 disableIf = [{ body = "NOT toothed" }] descriptionAffix = "serif at bottom-right" selectorAffix.U = "bottomRightSerifed" selectorAffix."U/noTopLeftSerif" = "bottomRightSerifed" selectorAffix."U/sansSerif" = "serifless" +[prime.capital-u.variants-buildup.stages.serifs.motion-serifed] +rank = 3 +disableIf = [{ body = "toothless-corner" }, { body = "toothless-rounded" }] +descriptionAffix = "motion serifs at top-left and bottom-right" +selectorAffix.U = "unilateralMotionSerifed" +selectorAffix."U/noTopLeftSerif" = "serifless" +selectorAffix."U/sansSerif" = "serifless" + [prime.capital-u.variants-buildup.stages.serifs.unilateral-motion-serifed] rank = 4 disableIf = [{ body = "toothed" }, { body = "tailed" }] @@ -1457,16 +1457,16 @@ selectorAffix.ZDesc = "serifless" selectorAffix."ZDesc/reduced" = "serifless" selectorAffix.Ezh = "serifless" -[prime.capital-z.variants-buildup.stages.serifs.serifed] +[prime.capital-z.variants-buildup.stages.serifs.top-serifed] rank = 2 -descriptionAffix = "serifs" -selectorAffix.Z = "serifed" +descriptionAffix = "serifs at top" +selectorAffix.Z = "topSerifed" selectorAffix."Z/sansSerif" = "serifless" -selectorAffix."Z/reduced" = "serifed" +selectorAffix."Z/reduced" = "topSerifed" selectorAffix."Z/reduced/sansSerif" = "serifless" selectorAffix.ZDesc = "topSerifed" selectorAffix."ZDesc/reduced" = "topSerifed" -selectorAffix.Ezh = "serifed" +selectorAffix.Ezh = "topSerifed" [prime.capital-z.variants-buildup.stages.serifs.bottom-serifed] rank = 3 @@ -1479,16 +1479,16 @@ selectorAffix.ZDesc = "serifless" selectorAffix."ZDesc/reduced" = "serifless" selectorAffix.Ezh = "serifless" -[prime.capital-z.variants-buildup.stages.serifs.top-serifed] +[prime.capital-z.variants-buildup.stages.serifs.serifed] rank = 4 -descriptionAffix = "serifs at top" -selectorAffix.Z = "topSerifed" +descriptionAffix = "serifs" +selectorAffix.Z = "serifed" selectorAffix."Z/sansSerif" = "serifless" -selectorAffix."Z/reduced" = "topSerifed" +selectorAffix."Z/reduced" = "serifed" selectorAffix."Z/reduced/sansSerif" = "serifless" selectorAffix.ZDesc = "topSerifed" selectorAffix."ZDesc/reduced" = "topSerifed" -selectorAffix.Ezh = "serifed" +selectorAffix.Ezh = "topSerifed" [prime.capital-z.variants-buildup.stages.overlay.no-overlay] rank = 1 @@ -2325,17 +2325,8 @@ selectorAffix.heng = "serifed" sampler = "i" tagKind = "letter" -[prime.i.variants.serifed] -rank = 1 -groupRank = 1 -description = "Serifed `i`" -selector.dotlessi = "serifed" -selector."dotlessi/sansSerif" = "serifless" -selector."dotlessi/compLigRight" = "serifed" -selector."dotlessi/tailed" = "serifedFlatTailed" - [prime.i.variants.serifless] -rank = 2 +rank = 1 groupRank = 1 description = "`i` like a straight line" selector.dotlessi = "serifless" @@ -2344,7 +2335,7 @@ selector."dotlessi/compLigRight" = "hooky" selector."dotlessi/tailed" = "flatTailed" [prime.i.variants.hooky] -rank = 3 +rank = 2 groupRank = 1 description = "Hooky `i`" selector.dotlessi = "hooky" @@ -2353,7 +2344,7 @@ selector."dotlessi/compLigRight" = "hooky" selector."dotlessi/tailed" = "serifedFlatTailed" [prime.i.variants.hooky-bottom] -rank = 4 +rank = 3 groupRank = 1 description = "`i` with a sharp-turning horizontal tail" selector.dotlessi = "hookyBottom" @@ -2362,7 +2353,7 @@ selector."dotlessi/compLigRight" = "zshaped" selector."dotlessi/tailed" = "flatTailed" [prime.i.variants.zshaped] -rank = 5 +rank = 4 groupRank = 1 description = "Z-shaped `i`" selector.dotlessi = "zshaped" @@ -2370,6 +2361,15 @@ selector."dotlessi/sansSerif" = "serifless" selector."dotlessi/compLigRight" = "zshaped" selector."dotlessi/tailed" = "serifedFlatTailed" +[prime.i.variants.serifed] +rank = 5 +groupRank = 1 +description = "Serifed `i`" +selector.dotlessi = "serifed" +selector."dotlessi/sansSerif" = "serifless" +selector."dotlessi/compLigRight" = "serifed" +selector."dotlessi/tailed" = "serifedFlatTailed" + [prime.i.variants.serifed-asymmetric] rank = 6 groupRank = 1 @@ -2657,22 +2657,8 @@ selectorAffix."grek/kappa/sansSerif" = "serifless" sampler = "l" tagKind = "letter" -[prime.l.variants.serifed] -rank = 1 -groupRank = 1 -description = "Serifed `l`" -selector.l = "serifed" -selector."l/sansSerif" = "serifless" -selector."l/compLigRight" = "serifed" -selector."l/reduced/decompress" = "serifed" -selector."l/reduced/rtail" = "hookyRTail" -selector."l/reduced/rtailDec" = "hookyRTailDec" -selector."l/phoneticLeft" = "hookyPL" -selector.lCurlyTail = "hooky" -selector.lyogh = "hooky" - [prime.l.variants.serifless] -rank = 2 +rank = 1 groupRank = 1 description = "`l` like a straight line" selector.l = "serifless" @@ -2686,7 +2672,7 @@ selector.lCurlyTail = "serifless" selector.lyogh = "serifless" [prime.l.variants.hooky] -rank = 3 +rank = 2 groupRank = 1 description = "Hooky `l`" selector.l = "hooky" @@ -2700,7 +2686,7 @@ selector.lCurlyTail = "hooky" selector.lyogh = "hooky" [prime.l.variants.hooky-bottom] -rank = 4 +rank = 3 groupRank = 1 description = "`l` with a straight sharp-turning horizontal tail" selector.l = "hookyBottom" @@ -2714,7 +2700,7 @@ selector.lCurlyTail = "serifless" selector.lyogh = "serifless" [prime.l.variants.zshaped] -rank = 5 +rank = 4 groupRank = 1 description = "Z-shaped `l`" selector.l = "zshaped" @@ -2727,6 +2713,20 @@ selector."l/phoneticLeft" = "hookyPL" selector.lCurlyTail = "hooky" selector.lyogh = "hooky" +[prime.l.variants.serifed] +rank = 5 +groupRank = 1 +description = "Serifed `l`" +selector.l = "serifed" +selector."l/sansSerif" = "serifless" +selector."l/compLigRight" = "serifed" +selector."l/reduced/decompress" = "serifed" +selector."l/reduced/rtail" = "hookyRTail" +selector."l/reduced/rtailDec" = "hookyRTailDec" +selector."l/phoneticLeft" = "hookyPL" +selector.lCurlyTail = "hooky" +selector.lyogh = "hooky" + [prime.l.variants.serifed-asymmetric] rank = 6 groupRank = 1 @@ -3833,29 +3833,8 @@ selectorAffix."cyrl/tse.italic" = "serifless" selectorAffix."ue/u" = "serifless" selectorAffix."au/u" = "serifless" -[prime.u.variants-buildup.stages.serifs.motion-serifed] -rank = 2 -descriptionAffix = "motion serifs at top-left and bottom-right" -selectorAffix.u = "motionSerifed" -selectorAffix."u/sansSerif" = "serifless" -selectorAffix."u/uRTailBase" = "motionSerifed" -selectorAffix.uHookLeft = {if = [{body = "toothed"}], then = "bottomRightSerifed", else = "serifless"} -selectorAffix.turnh = "motionSerifed" -selectorAffix.turnhHookLeft = "bottomRightSerifed" -selectorAffix.turnhHookLeftRTail = "serifless" -selectorAffix.turnm = "motionSerifed" -selectorAffix.turnmLeg = "motionSerifed" -selectorAffix."cyrl/i.italic" = "motionSerifed" -selectorAffix."cyrl/i.italic/descBase" = "motionSerifed" -selectorAffix."cyrl/sha.italic" = "motionSerifed" -selectorAffix."cyrl/shcha.italic" = "motionSerifed" -selectorAffix."cyrl/dzhe.italic" = "motionSerifed" -selectorAffix."cyrl/tse.italic" = "motionSerifed" -selectorAffix."ue/u" = "serifed" -selectorAffix."au/u" = {if = [{body = "toothed"}], then = "bottomRightSerifed", else = "serifless"} - [prime.u.variants-buildup.stages.serifs.bottom-right-serifed] -rank = 3 +rank = 2 disableIf = [{ body = "NOT toothed" }] descriptionAffix = "serif at bottom-right" selectorAffix.u = "bottomRightSerifed" @@ -3874,6 +3853,27 @@ selectorAffix."cyrl/shcha.italic" = "serifless" selectorAffix."cyrl/dzhe.italic" = "bottomRightSerifed" selectorAffix."cyrl/tse.italic" = "serifless" selectorAffix."ue/u" = "serifless" +selectorAffix."au/u" = "bottomRightSerifed" + +[prime.u.variants-buildup.stages.serifs.motion-serifed] +rank = 3 +descriptionAffix = "motion serifs at top-left and bottom-right" +selectorAffix.u = "motionSerifed" +selectorAffix."u/sansSerif" = "serifless" +selectorAffix."u/uRTailBase" = "motionSerifed" +selectorAffix.uHookLeft = {if = [{body = "toothed"}], then = "bottomRightSerifed", else = "serifless"} +selectorAffix.turnh = "motionSerifed" +selectorAffix.turnhHookLeft = "bottomRightSerifed" +selectorAffix.turnhHookLeftRTail = "serifless" +selectorAffix.turnm = "motionSerifed" +selectorAffix.turnmLeg = "motionSerifed" +selectorAffix."cyrl/i.italic" = "motionSerifed" +selectorAffix."cyrl/i.italic/descBase" = "motionSerifed" +selectorAffix."cyrl/sha.italic" = "motionSerifed" +selectorAffix."cyrl/shcha.italic" = "motionSerifed" +selectorAffix."cyrl/dzhe.italic" = "motionSerifed" +selectorAffix."cyrl/tse.italic" = "motionSerifed" +selectorAffix."ue/u" = "serifed" selectorAffix."au/u" = {if = [{body = "toothed"}], then = "bottomRightSerifed", else = "serifless"} [prime.u.variants-buildup.stages.serifs.serifed] @@ -4263,7 +4263,6 @@ next = "serifs" [prime.z.variants-buildup.stages.body.straight] rank = 1 -groupRank = 10 descriptionAffix = "straight body shape" selectorAffix.z = "straight" selectorAffix."z/sansSerif" = "straight" @@ -4274,7 +4273,6 @@ selectorAffix.ezh = "straight" [prime.z.variants-buildup.stages.body.curly] rank = 2 -groupRank = 20 descriptionAffix = "curly body shape" selectorAffix.z = "curly" selectorAffix."z/sansSerif" = "curly" @@ -4285,7 +4283,6 @@ selectorAffix.ezh = "straight" [prime.z.variants-buildup.stages.body.cursive] rank = 3 -groupRank = 30 next = "overlay" descriptionAffix = "cursive body shape" selectorAffix.z = "cursive" @@ -4300,7 +4297,6 @@ next = "overlay" [prime.z.variants-buildup.stages.serifs.serifless] rank = 1 -groupRank = 1 descriptionAffix = "serifs" descriptionJoiner = "without" selectorAffix.z = "serifless" @@ -4310,20 +4306,18 @@ selectorAffix.zDesc = "serifless" selectorAffix."zDesc/reduced" = "serifless" selectorAffix.ezh = "serifless" -[prime.z.variants-buildup.stages.serifs.serifed] +[prime.z.variants-buildup.stages.serifs.top-serifed] rank = 2 -groupRank = 1 -descriptionAffix = "serifs" -selectorAffix.z = "serifed" +descriptionAffix = "serifs at top" +selectorAffix.z = "topSerifed" selectorAffix."z/sansSerif" = "serifless" -selectorAffix."z/reduced" = "serifed" +selectorAffix."z/reduced" = "topSerifed" selectorAffix.zDesc = "topSerifed" selectorAffix."zDesc/reduced" = "topSerifed" -selectorAffix.ezh = "serifed" +selectorAffix.ezh = "topSerifed" [prime.z.variants-buildup.stages.serifs.bottom-serifed] rank = 3 -groupRank = 2 descriptionAffix = "serifs at bottom" selectorAffix.z = "bottomSerifed" selectorAffix."z/sansSerif" = "serifless" @@ -4332,16 +4326,15 @@ selectorAffix.zDesc = "serifless" selectorAffix."zDesc/reduced" = "serifless" selectorAffix.ezh = "serifless" -[prime.z.variants-buildup.stages.serifs.top-serifed] +[prime.z.variants-buildup.stages.serifs.serifed] rank = 4 -groupRank = 2 -descriptionAffix = "serifs at top" -selectorAffix.z = "topSerifed" +descriptionAffix = "serifs" +selectorAffix.z = "serifed" selectorAffix."z/sansSerif" = "serifless" -selectorAffix."z/reduced" = "topSerifed" +selectorAffix."z/reduced" = "serifed" selectorAffix.zDesc = "topSerifed" selectorAffix."zDesc/reduced" = "topSerifed" -selectorAffix.ezh = "serifed" +selectorAffix.ezh = "topSerifed" [prime.z.variants-buildup.stages.overlay.no-overlay] rank = 1 @@ -5017,19 +5010,19 @@ descriptionJoiner = "without" selectorAffix."grek/mu" = "serifless" selectorAffix."grek/mu/sansSerif" = "serifless" -[prime.lower-mu.variants-buildup.stages.serifs.motion-serifed] -rank = 2 -descriptionAffix = "motion serifs at top-left and bottom-right" -selectorAffix."grek/mu" = "motionSerifed" -selectorAffix."grek/mu/sansSerif" = "serifless" - [prime.lower-mu.variants-buildup.stages.serifs.bottom-right-serifed] -rank = 3 +rank = 2 disableIf = [{ body = "NOT toothed" }] descriptionAffix = "serif at bottom-right" selectorAffix."grek/mu" = "bottomRightSerifed" selectorAffix."grek/mu/sansSerif" = "serifless" +[prime.lower-mu.variants-buildup.stages.serifs.motion-serifed] +rank = 3 +descriptionAffix = "motion serifs at top-left and bottom-right" +selectorAffix."grek/mu" = "motionSerifed" +selectorAffix."grek/mu/sansSerif" = "serifless" + [prime.lower-mu.variants-buildup.stages.serifs.serifed] rank = 4 descriptionAffix = "serifs" @@ -6467,15 +6460,37 @@ selector."one/sansSerif" = "noBaseTopCut" sampler = "2" tagKind = "digit" -[prime.two.variants.straight-neck] +[prime.two.variants-buildup] +entry = "body" +descriptionLeader = "`2`" + +[prime.two.variants-buildup.stages.body."*"] +next = "serifs" + +[prime.two.variants-buildup.stages.body.straight-neck] +rank = 1 +descriptionAffix = "straight neck" +selectorAffix.two = "straightNeck" +selectorAffix."two/sansSerif" = "straightNeck" + +[prime.two.variants-buildup.stages.body.curly-neck] +rank = 2 +descriptionAffix = "curly neck" +selectorAffix.two = "curlyNeck" +selectorAffix."two/sansSerif" = "curlyNeck" + +[prime.two.variants-buildup.stages.serifs.serifless] rank = 1 -description = "`2` with straight neck" -selector.two = "straightNeck" +descriptionJoiner = "without" +descriptionAffix = "serifs" +selectorAffix.two = "serifless" +selectorAffix."two/sansSerif" = "serifless" -[prime.two.variants.curly-neck] +[prime.two.variants-buildup.stages.serifs.serifed] rank = 2 -description = "`2` with curly neck" -selector.two = "curlyNeck" +descriptionAffix = "serifs" +selectorAffix.two = "serifed" +selectorAffix."two/sansSerif" = "serifless" @@ -6483,15 +6498,38 @@ selector.two = "curlyNeck" sampler = "3" tagKind = "digit" -[prime.three.variants.flat-top] +[prime.three.variants-buildup] +entry = "body" +descriptionLeader = "`3`" + +[prime.three.variants-buildup.stages.body."*"] +next = "serifs" + +[prime.three.variants-buildup.stages.body.flat-top] rank = 1 -description = "Flat top `3` (Like Museo Sans / Montserrat)" -selector.three = "flatTop" +descriptionAffix = "flat top (Like Museo Sans / Montserrat)" +selectorAffix.three = "flatTop" +selectorAffix."three/sansSerif" = "flatTop" -[prime.three.variants.two-arcs] +[prime.three.variants-buildup.stages.body.two-arcs] rank = 2 -description = "Arched top `3`" -selector.three = "twoArcs" +next = "END" +descriptionAffix = "arched top" +selectorAffix.three = "twoArcs" +selectorAffix."three/sansSerif" = "twoArcs" + +[prime.three.variants-buildup.stages.serifs.serifless] +rank = 1 +descriptionJoiner = "without" +descriptionAffix = "serifs" +selectorAffix.three = "serifless" +selectorAffix."three/sansSerif" = "serifless" + +[prime.three.variants-buildup.stages.serifs.serifed] +rank = 2 +descriptionAffix = "serifs" +selectorAffix.three = "serifed" +selectorAffix."three/sansSerif" = "serifless" @@ -6499,35 +6537,58 @@ selector.three = "twoArcs" sampler = "4" tagKind = "digit" -[prime.four.variants.closed] +[prime.four.variants-buildup] +entry = "openness" +descriptionLeader = "`4`" + +[prime.four.variants-buildup.stages.openness."*"] +next = "horizontal-bar" + +[prime.four.variants-buildup.stages.openness.closed] rank = 1 -description = "`4` with closed contour" -selector.four = "closed" +descriptionAffix = "closed contour" +selectorAffix.four = "closed" +selectorAffix."four/sansSerif" = "closed" -[prime.four.variants.closed-non-crossing] +[prime.four.variants-buildup.stages.openness.semi-open] rank = 2 -description = "`4` with closed contour but the horizontal bar does not overflow the vertical bar" -selector.four = "closedNonCrossing" +descriptionAffix = "semi-open contour" +selectorAffix.four = "semiOpen" +selectorAffix."four/sansSerif" = "semiOpen" -[prime.four.variants.semi-open] +[prime.four.variants-buildup.stages.openness.open] rank = 3 -description = "`4` with semi-open contour" -selector.four = "semiOpen" +descriptionAffix = "open contour" +selectorAffix.four = "open" +selectorAffix."four/sansSerif" = "open" -[prime.four.variants.semi-open-non-crossing] -rank = 4 -description = "`4` with semi-open contour but the horizontal bar does not overflow the vertical bar" -selector.four = "semiOpenNonCrossing" +[prime.four.variants-buildup.stages.horizontal-bar."*"] +next = "serifs" -[prime.four.variants.open] -rank = 5 -description = "`4` with open contour" -selector.four = "open" +[prime.four.variants-buildup.stages.horizontal-bar.crossing] +rank = 1 +keyAffix = "" +selectorAffix.four = "crossing" +selectorAffix."four/sansSerif" = "crossing" -[prime.four.variants.open-non-crossing] -rank = 6 -description = "`4` with open contour but the horizontal bar does not overflow the vertical bar" -selector.four = "openNonCrossing" +[prime.four.variants-buildup.stages.horizontal-bar.non-crossing] +rank = 2 +descriptionAffix = "horizontal bar that does not overflow the vertical bar" +selectorAffix.four = "nonCrossing" +selectorAffix."four/sansSerif" = "nonCrossing" + +[prime.four.variants-buildup.stages.serifs.serifless] +rank = 1 +descriptionJoiner = "without" +descriptionAffix = "serifs" +selectorAffix.four = "serifless" +selectorAffix."four/sansSerif" = "serifless" + +[prime.four.variants-buildup.stages.serifs.serifed] +rank = 2 +descriptionAffix = "serifs" +selectorAffix.four = "serifed" +selectorAffix."four/sansSerif" = "serifless" @@ -6546,26 +6607,48 @@ next = "middle" rank = 1 descriptionAffix = "upright upper-left bar" selectorAffix.five = "upright" +selectorAffix."five/sansSerif" = "upright" selectorAffix.zhuangToneFive = "upright" [prime.five.variants-buildup.stages.upper-left-bar.oblique] rank = 2 description = "oblique upper-left bar" selectorAffix.five = "oblique" +selectorAffix."five/sansSerif" = "oblique" selectorAffix.zhuangToneFive = "upright" +[prime.five.variants-buildup.stages.middle."*"] +next = "serifs" + [prime.five.variants-buildup.stages.middle.arched] rank = 1 descriptionAffix = "arched middle part" selectorAffix.five = "arched" +selectorAffix."five/sansSerif" = "arched" selectorAffix.zhuangToneFive = "arched" [prime.five.variants-buildup.stages.middle.flat] rank = 2 descriptionAffix = "flat middle part" selectorAffix.five = "flat" +selectorAffix."five/sansSerif" = "flat" selectorAffix.zhuangToneFive = "flat" +[prime.five.variants-buildup.stages.serifs.serifless] +rank = 1 +descriptionJoiner = "without" +descriptionAffix = "serifs" +selectorAffix.five = "serifless" +selectorAffix."five/sansSerif" = "serifless" +selectorAffix.zhuangToneFive = "serifless" + +[prime.five.variants-buildup.stages.serifs.serifed] +rank = 2 +descriptionAffix = "serifs" +selectorAffix.five = "serifed" +selectorAffix."five/sansSerif" = "serifless" +selectorAffix.zhuangToneFive = "serifed" + [prime.six] @@ -7334,17 +7417,17 @@ descriptionAffix = "serifs" descriptionJoiner = "without" selectorAffix."micro" = "serifless" -[prime.micro-sign.variants-buildup.stages.serifs.motion-serifed] -rank = 2 -descriptionAffix = "motion serifs at top-left and bottom-right" -selectorAffix."micro" = "motionSerifed" - [prime.micro-sign.variants-buildup.stages.serifs.bottom-right-serifed] -rank = 3 +rank = 2 disableIf = [{ body = "NOT toothed" }] descriptionAffix = "serif at bottom-right" selectorAffix."micro" = "bottomRightSerifed" +[prime.micro-sign.variants-buildup.stages.serifs.motion-serifed] +rank = 3 +descriptionAffix = "motion serifs at top-left and bottom-right" +selectorAffix."micro" = "motionSerifed" + [prime.micro-sign.variants-buildup.stages.serifs.serifed] rank = 4 descriptionAffix = "serifs" @@ -7454,7 +7537,6 @@ selector."lig-hyphen" = "withoutNotch" sampler = "++ " samplerExplain = "Plus ligations" tagKind = "ligature" -nonBreakingTagForNewVariantSelector = "VXAA" [prime.lig-plus-chain.variants.with-notch] rank = 1 @@ -7631,10 +7713,10 @@ cyrl-ya = "straight-serifless" # Digits zero = "slashed" one = "no-base" -two = "curly-neck" +two = "curly-neck-serifless" three = "two-arcs" -four = "semi-open" -five = "upright-arched" +four = "semi-open-serifless" +five = "upright-arched-serifless" six = "straight-bar" seven = "straight-serifless" eight = "crossing" @@ -7764,6 +7846,9 @@ cyrl-ef = "serifed" cyrl-capital-ya = "straight-serifed" cyrl-ya = "straight-serifed" one = "base" +two = "curly-neck-serifed" +four = "semi-open-serifed" +five = "upright-arched-serifed" seven = "straight-serifed" micro-sign = "toothed-serifed" @@ -7842,8 +7927,8 @@ cyrl-yeri = "corner" cyrl-yery = "corner" zero = "dotted" one = "base" -two = "straight-neck" -four = "closed" +two = "straight-neck-serifless" +four = "closed-serifless" six = "closed-contour" nine = "closed-contour" asterisk = "hex-mid" @@ -7890,6 +7975,8 @@ cyrl-em = "flat-bottom-serifed" cyrl-capital-u = "straight-turn-serifed" cyrl-u = "straight-turn-serifed" cyrl-ef = "split-serifed" +two = "straight-neck-serifed" +four = "closed-serifed" micro-sign = "toothed-serifed" @@ -7940,8 +8027,8 @@ cyrl-ef = "split-serifless" cyrl-yeri = "corner" cyrl-yery = "corner" one = "base" -two = "straight-neck" -four = "closed" +two = "straight-neck-serifed" +four = "closed-serifed" six = "closed-contour" seven = "bend-serifed" eight = "two-circles" @@ -8017,8 +8104,8 @@ cyrl-capital-u = "straight-turn-serifless" cyrl-u = "straight-turn-serifless" cyrl-ef = "serifless" one = "base" -two = "straight-neck" -four = "closed" +two = "straight-neck-serifless" +four = "closed-serifless" six = "closed-contour" nine = "closed-contour" asterisk = "hex-mid" @@ -8066,6 +8153,8 @@ cyrl-em = "slanted-sides-hanging-serifed" cyrl-capital-u = "straight-turn-serifed" cyrl-u = "straight-turn-serifed" cyrl-ef = "serifed" +two = "straight-neck-serifed" +four = "closed-serifed" micro-sign = "tailed-serifed" [composite.ss03.slab-override.italic] @@ -8120,8 +8209,8 @@ cyrl-ef = "serifless" cyrl-yeri = "corner" cyrl-yery = "corner" one = "base" -two = "straight-neck" -four = "closed" +two = "straight-neck-serifless" +four = "closed-serifless" six = "closed-contour" eight = "two-circles" nine = "closed-contour" @@ -8168,6 +8257,8 @@ cyrl-ka = "straight-serifed" cyrl-capital-u = "straight-turn-serifed" cyrl-u = "straight-turn-serifed" cyrl-ef = "serifed" +two = "straight-neck-serifed" +four = "closed-serifed" micro-sign = "tailed-serifed" @@ -8207,7 +8298,7 @@ cyrl-yeri = "corner" cyrl-yery = "corner" zero = "oval-dotted" one = "base" -two = "straight-neck" +two = "straight-neck-serifless" six = "closed-contour" eight = "crossing-asymmetric" nine = "open-contour" @@ -8256,6 +8347,7 @@ cyrl-em = "slanted-sides-hanging-serifed" cyrl-capital-u = "straight-turn-serifed" cyrl-u = "straight-turn-serifed" cyrl-ef = "split-serifed" +two = "straight-neck-serifed" micro-sign = "toothed-serifed" @@ -8292,8 +8384,8 @@ cyrl-yeri = "corner" cyrl-yery = "corner" zero = "dotted" one = "base" -four = "closed" -five = "oblique-arched" +four = "closed-serifless" +five = "oblique-arched-serifless" six = "closed-contour" seven = "bend-serifless" eight = "two-circles" @@ -8341,6 +8433,8 @@ cyrl-em = "flat-bottom-serifed" cyrl-capital-u = "straight-turn-serifed" cyrl-u = "straight-turn-serifed" cyrl-ef = "serifed" +four = "closed-serifed" +five = "oblique-arched-serifed" seven = "bend-serifed" micro-sign = "toothed-serifed" @@ -8381,7 +8475,7 @@ cyrl-ef = "serifless" cyrl-yeri = "corner" cyrl-yery = "corner" one = "base" -four = "closed" +four = "closed-serifless" six = "closed-contour" seven = "curly-serifless" nine = "closed-contour" @@ -8426,6 +8520,7 @@ cyrl-ka = "symmetric-connected-serifed" cyrl-capital-u = "straight-turn-serifed" cyrl-u = "straight-turn-serifed" cyrl-ef = "serifed" +four = "closed-serifed" seven = "curly-serifed" micro-sign = "toothed-serifed" @@ -8482,8 +8577,8 @@ cyrl-ef = "serifless" cyrl-capital-ya = "curly-serifless" cyrl-ya = "curly-serifless" zero = "diamond-reverse-slashed-split" -four = "closed" -five = "upright-flat" +four = "closed-serifless" +five = "upright-flat-serifless" six = "closed-contour" seven = "curly-serifless" nine = "closed-contour" @@ -8540,6 +8635,8 @@ cyrl-u = "curly-serifed" cyrl-ef = "serifed" cyrl-capital-ya = "curly-serifed" cyrl-ya = "curly-serifed" +four = "closed-serifed" +five = "upright-flat-serifed" seven = "bend-serifed" micro-sign = "toothed-serifed" @@ -8588,9 +8685,9 @@ cyrl-yeri = "corner" cyrl-yery = "corner" zero = "oval-dotted" one = "base-flat-top-serif" -two = "straight-neck" -four = "closed" -five = "oblique-arched" +two = "straight-neck-serifless" +four = "closed-serifless" +five = "oblique-arched-serifless" six = "closed-contour" seven = "bend-serifless" eight = "crossing-asymmetric" @@ -8628,6 +8725,9 @@ cyrl-em = "flat-bottom-serifed" cyrl-capital-u = "straight-turn-serifed" cyrl-u = "straight-turn-serifed" cyrl-ef = "split-serifed" +two = "straight-neck-serifed" +four = "closed-serifed" +five = "oblique-arched-serifed" seven = "bend-serifed" micro-sign = "tailed-serifed" @@ -8670,7 +8770,7 @@ lower-iota = "serifed-flat-tailed" lower-lambda = "straight" lower-tau = "flat-tailed" one = "base-flat-top-serif" -four = "closed" +four = "closed-serifless" eight = "two-circles" underscore = "low" guillemet = "straight" @@ -8700,6 +8800,7 @@ long-s = "flat-hook-double-serifed" eszet = "sulzbacher-bottom-serifed" cyrl-capital-u = "straight-serifed" cyrl-u = "straight-serifed" +four = "closed-serifed" micro-sign = "toothless-rounded-serifed" [composite.ss10.slab-override.italic] @@ -8721,9 +8822,9 @@ description = "X Window Style" [composite.ss11.design] zero = "oval-unslashed" one = "base" -two = "straight-neck" -three = "flat-top" -four = "closed" +two = "straight-neck-serifless" +three = "flat-top-serifless" +four = "closed-serifless" six = "closed-contour" eight = "two-circles" nine = "closed-contour" @@ -8736,6 +8837,11 @@ dollar = "through-cap" cent = "through-cap" percent = "rings-continuous-slash" +[composite.ss11.slab-override.design] +two = "straight-neck-serifed" +three = "flat-top-serifed" +four = "closed-serifed" + [composite.ss12] @@ -8780,8 +8886,8 @@ cyrl-yeri = "corner" cyrl-yery = "corner" zero = "oval-dotted" one = "base" -four = "closed" -five = "oblique-arched" +four = "closed-serifless" +five = "oblique-arched-serifless" six = "open-contour" seven = "bend-serifless" eight = "crossing-asymmetric" @@ -8834,6 +8940,8 @@ cyrl-em = "slanted-sides-hanging-serifed" cyrl-capital-u = "straight-turn-serifed" cyrl-u = "straight-turn-serifed" cyrl-ef = "serifed" +four = "closed-serifed" +five = "oblique-arched-serifed" seven = "bend-serifed" micro-sign = "toothless-corner-serifed" @@ -8888,7 +8996,7 @@ cyrl-yeri = "corner" cyrl-yery = "corner" zero = "oval-unslashed" one = "base" -four = "closed" +four = "closed-serifless" six = "closed-contour" seven = "bend-serifless" eight = "crossing-asymmetric" @@ -8937,6 +9045,7 @@ cyrl-em = "flat-bottom-serifed" cyrl-capital-u = "straight-turn-serifed" cyrl-u = "straight-turn-serifed" cyrl-ef = "split-serifed" +four = "closed-serifed" seven = "bend-serifed" micro-sign = "toothed-serifed" @@ -8975,10 +9084,10 @@ cyrl-yeri = "corner" cyrl-yery = "corner" zero = "dotted" one = "base" -two = "straight-neck" -three = "flat-top" -four = "semi-open-non-crossing" -five = "upright-flat" +two = "straight-neck-serifless" +three = "flat-top-serifless" +four = "semi-open-non-crossing-serifless" +five = "upright-flat-serifless" seven = "straight-serifed" eight = "two-circles" asterisk = "penta-low" @@ -9019,6 +9128,10 @@ lower-alpha = "barred-double-serifed" lower-mu = "toothed-serifed" cyrl-capital-u = "straight-serifed" cyrl-u = "straight-serifed" +two = "straight-neck-serifed" +three = "flat-top-serifed" +four = "semi-open-non-crossing-serifed" +five = "upright-flat-serifed" micro-sign = "toothed-serifed" [composite.ss14.slab-override.italic] @@ -9071,9 +9184,9 @@ cyrl-capital-ya = "straight-motion-serifed" cyrl-ya = "straight-motion-serifed" zero = "dotted" one = "base" -two = "straight-neck" -four = "closed" -five = "oblique-arched" +two = "straight-neck-serifless" +four = "closed-serifless" +five = "oblique-arched-serifless" six = "open-contour" seven = "straight-serifed" eight = "two-circles" @@ -9127,6 +9240,9 @@ cyrl-u = "straight-turn-serifed" cyrl-ef = "split-serifed" cyrl-capital-ya = "straight-serifed" cyrl-ya = "straight-serifed" +two = "straight-neck-serifed" +four = "closed-serifed" +five = "oblique-arched-serifed" micro-sign = "toothed-serifed" [composite.ss15.slab-override.italic] @@ -9190,9 +9306,9 @@ cyrl-yeri = "corner" cyrl-yery = "corner" cyrl-ya = "straight-motion-serifed" one = "base" -two = "straight-neck" -three = "flat-top" -four = "closed" +two = "straight-neck-serifless" +three = "flat-top-serifless" +four = "closed-serifless" six = "open-contour" eight = "crossing-asymmetric" nine = "open-contour" @@ -9232,6 +9348,9 @@ cyrl-capital-u = "straight-turn-serifed" cyrl-u = "straight-turn-serifed" cyrl-ef = "split-serifed" cyrl-ya = "straight-serifed" +two = "straight-neck-serifed" +three = "flat-top-serifed" +four = "closed-serifed" micro-sign = "toothed-serifed" @@ -9276,8 +9395,7 @@ cyrl-capital-u = "straight-turn-serifless" cyrl-u = "straight-turn-serifless" cyrl-capital-ya = "straight-motion-serifed" one = "base" -four = "semi-open" -five = "oblique-arched" +five = "oblique-arched-serifless" six = "closed-contour" seven = "straight-serifed" nine = "closed-contour" @@ -9345,6 +9463,7 @@ cyrl-capital-u = "straight-turn-serifed" cyrl-u = "straight-turn-serifed" cyrl-capital-ya = "straight-serifed" cyrl-ya = "straight-serifed" +five = "oblique-arched-serifed" micro-sign = "tailed-serifed" [composite.ss17.slab-override.italic] @@ -9393,8 +9512,8 @@ cyrl-yeri = "corner" cyrl-yery = "corner" zero = "dotted" one = "base" -four = "closed" -five = "upright-flat" +four = "closed-serifless" +five = "upright-flat-serifless" six = "closed-contour" seven = "bend-serifless" eight = "two-circles" @@ -9431,6 +9550,8 @@ lower-alpha = "barred-tailed-serifed" cyrl-capital-u = "straight-turn-serifed" cyrl-u = "straight-turn-serifed" cyrl-ef = "serifed" +four = "closed-serifed" +five = "upright-flat-serifed" seven = "bend-serifed" micro-sign = "tailed-serifed" diff --git a/tools/amend-readme/package.json b/tools/amend-readme/package.json index 8f7528f0be..41d4af1dc5 100644 --- a/tools/amend-readme/package.json +++ b/tools/amend-readme/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/amend-readme", - "version": "28.1.0", + "version": "29.0.0-beta.1", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "28.1.0", + "@iosevka/param": "29.0.0-beta.1", "@unicode/unicode-15.1.0": "^1.5.2" } } diff --git a/tools/data-export/package.json b/tools/data-export/package.json index 97d2366602..0fe73bfeb0 100644 --- a/tools/data-export/package.json +++ b/tools/data-export/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/data-export", - "version": "28.1.0", + "version": "29.0.0-beta.1", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,7 +10,7 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "28.1.0", + "@iosevka/param": "29.0.0-beta.1", "@unicode/unicode-15.1.0": "^1.5.2", "cldr": "^7.5.0" } diff --git a/tools/generate-samples/package.json b/tools/generate-samples/package.json index b5d6f5c73d..04824008f1 100644 --- a/tools/generate-samples/package.json +++ b/tools/generate-samples/package.json @@ -1,11 +1,11 @@ { "name": "@iosevka/generate-samples", - "version": "28.1.0", + "version": "29.0.0-beta.1", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/data-export": "28.1.0" + "@iosevka/data-export": "29.0.0-beta.1" } } diff --git a/tools/misc/package.json b/tools/misc/package.json index ec97719d69..15346040a3 100644 --- a/tools/misc/package.json +++ b/tools/misc/package.json @@ -1,10 +1,10 @@ { "name": "@iosevka/misc", - "version": "28.1.0", + "version": "29.0.0-beta.1", "private": true, "dependencies": { "semver": "^7.5.4", "wawoff2": "^2.0.1", - "@iosevka/util": "28.1.0" + "@iosevka/util": "29.0.0-beta.1" } } diff --git a/tools/misc/src/copy-char-name-to-markdown.mjs b/tools/misc/src/copy-char-name-to-markdown.mjs index a719186e6b..eeb17b8405 100644 --- a/tools/misc/src/copy-char-name-to-markdown.mjs +++ b/tools/misc/src/copy-char-name-to-markdown.mjs @@ -1,3 +1,5 @@ +"use strict"; + import ucdNames from "@unicode/unicode-15.1.0/Names/index.js"; const codes = process.argv diff --git a/tools/misc/src/create-sha-file.mjs b/tools/misc/src/create-sha-file.mjs index e9b1e51c1f..1a33b7b254 100644 --- a/tools/misc/src/create-sha-file.mjs +++ b/tools/misc/src/create-sha-file.mjs @@ -1,10 +1,13 @@ +"use strict"; + import crypto from "crypto"; import fs from "fs"; +import path from "path"; -function hashFile(path) { +function hashFile(filePath) { return new Promise((resolve, reject) => { let sum = crypto.createHash("sha256"); - let fileStream = fs.createReadStream(path); + let fileStream = fs.createReadStream(filePath); fileStream.on("error", err => { return reject(err); }); @@ -22,9 +25,11 @@ function hashFile(path) { } export default (async function (out, archiveFiles) { const filesToAnalyze = Array.from(new Set(archiveFiles.map(f => f.full))).sort(); + let s = ""; - for (const file of filesToAnalyze) { - s += `${await hashFile(file)}\t${path.basename(file.full)}\n`; + for (const filePath of filesToAnalyze) { + s += `${await hashFile(filePath)}\t${path.basename(filePath)}\n`; } + await fs.promises.writeFile(out, s); }); diff --git a/tools/misc/src/generate-ttfa-ranges.mjs b/tools/misc/src/generate-ttfa-ranges.mjs index 69319902a6..eacf330222 100644 --- a/tools/misc/src/generate-ttfa-ranges.mjs +++ b/tools/misc/src/generate-ttfa-ranges.mjs @@ -1,3 +1,5 @@ +"use strict"; + import fs from "fs"; import path from "path"; import url from "url"; diff --git a/tools/misc/src/make-webfont-css.mjs b/tools/misc/src/make-webfont-css.mjs index dd498faf45..2f8b46460a 100644 --- a/tools/misc/src/make-webfont-css.mjs +++ b/tools/misc/src/make-webfont-css.mjs @@ -1,3 +1,5 @@ +"use strict"; + import fs from "fs"; const WebfontFormatMap = new Map([ diff --git a/tools/misc/src/ttf-to-woff2.mjs b/tools/misc/src/ttf-to-woff2.mjs index 6c842916f8..8cabd1ba71 100644 --- a/tools/misc/src/ttf-to-woff2.mjs +++ b/tools/misc/src/ttf-to-woff2.mjs @@ -1,3 +1,5 @@ +"use strict"; + import fs from "fs"; import * as wawoff from "wawoff2"; diff --git a/tools/misc/src/update-package-json-version.mjs b/tools/misc/src/update-package-json-version.mjs index db94b74b14..2a209dd03e 100644 --- a/tools/misc/src/update-package-json-version.mjs +++ b/tools/misc/src/update-package-json-version.mjs @@ -1,3 +1,5 @@ +"use strict"; + import fs from "fs"; import path from "path"; import url from "url";