A separate variant selector, ij-dot, was added to allow users to configure the shape of the dots in i and j separately. (#2310)

This commit is contained in:
Belleve 2024-04-22 16:44:20 -10:00 committed by GitHub
parent 4216bde7da
commit debba0d9fb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
30 changed files with 117 additions and 90 deletions

View file

@ -1,4 +0,0 @@
* Refine shape of CYRILLIC CAPITAL LETTER SHHA (`U+04BA`).
* Fix H bar position of CYRILLIC {CAPITAL|SMALL} LETTER NJE (`U+040A`, `U+045A`).
* Add characters:
- KEYBOARD (`U+2328`).

6
changes/30.0.0.md Normal file
View file

@ -0,0 +1,6 @@
* \[**Breaking**\] A separate variant selector, `ij-dot`, was added to allow users to configure the shape of the dots in `i` and `j` separately.
- As a result, feature tags for `cv95` ... `cv99`, `VSAA` ... `VSAQ` are shifted by one place to `cv96` ... `cv99` `VSAA`, `VSAB` ... `VSAR`.
* Refine shape of CYRILLIC CAPITAL LETTER SHHA (`U+04BA`).
* Fix H bar position of CYRILLIC {CAPITAL|SMALL} LETTER NJE (`U+040A`, `U+045A`).
* Add characters:
- KEYBOARD (`U+2328`).

80
package-lock.json generated
View file

@ -1,12 +1,12 @@
{
"name": "@iosevka/monorepo",
"version": "29.2.1",
"version": "30.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@iosevka/monorepo",
"version": "29.2.1",
"version": "30.0.0",
"workspaces": [
"packages/*",
"tools/*"
@ -4310,16 +4310,16 @@
},
"packages/font": {
"name": "@iosevka/font",
"version": "29.2.1",
"version": "30.0.0",
"dependencies": {
"@iarna/toml": "^2.2.5",
"@iosevka/font-glyphs": "29.2.1",
"@iosevka/font-otl": "29.2.1",
"@iosevka/geometry": "29.2.1",
"@iosevka/geometry-cache": "29.2.1",
"@iosevka/glyph": "29.2.1",
"@iosevka/param": "29.2.1",
"@iosevka/util": "29.2.1",
"@iosevka/font-glyphs": "30.0.0",
"@iosevka/font-otl": "30.0.0",
"@iosevka/geometry": "30.0.0",
"@iosevka/geometry-cache": "30.0.0",
"@iosevka/glyph": "30.0.0",
"@iosevka/param": "30.0.0",
"@iosevka/util": "30.0.0",
"harfbuzzjs": "^0.3.4",
"ot-builder": "^1.7.3",
"semver": "^7.6.0"
@ -4327,100 +4327,100 @@
},
"packages/font-glyphs": {
"name": "@iosevka/font-glyphs",
"version": "29.2.1",
"version": "30.0.0",
"dependencies": {
"@iosevka/font-kits": "29.2.1",
"@iosevka/geometry": "29.2.1",
"@iosevka/geometry-cache": "29.2.1",
"@iosevka/glyph": "29.2.1",
"@iosevka/util": "29.2.1",
"@iosevka/font-kits": "30.0.0",
"@iosevka/geometry": "30.0.0",
"@iosevka/geometry-cache": "30.0.0",
"@iosevka/glyph": "30.0.0",
"@iosevka/util": "30.0.0",
"typo-geom": "^0.15.1"
}
},
"packages/font-kits": {
"name": "@iosevka/font-kits",
"version": "29.2.1",
"version": "30.0.0",
"dependencies": {
"@iosevka/geometry": "29.2.1",
"@iosevka/glyph": "29.2.1",
"@iosevka/util": "29.2.1"
"@iosevka/geometry": "30.0.0",
"@iosevka/glyph": "30.0.0",
"@iosevka/util": "30.0.0"
}
},
"packages/font-otl": {
"name": "@iosevka/font-otl",
"version": "29.2.1",
"version": "30.0.0",
"dependencies": {
"@iosevka/font-glyphs": "29.2.1",
"@iosevka/glyph": "29.2.1",
"@iosevka/font-glyphs": "30.0.0",
"@iosevka/glyph": "30.0.0",
"toposort": "^2.0.2"
}
},
"packages/geometry": {
"name": "@iosevka/geometry",
"version": "29.2.1",
"version": "30.0.0",
"dependencies": {
"@iosevka/util": "29.2.1",
"@iosevka/util": "30.0.0",
"spiro": "^3.0.1",
"typo-geom": "^0.15.1"
}
},
"packages/geometry-cache": {
"name": "@iosevka/geometry-cache",
"version": "29.2.1",
"version": "30.0.0",
"dependencies": {
"@iosevka/geometry": "29.2.1",
"@iosevka/geometry": "30.0.0",
"@msgpack/msgpack": "^2.8.0"
}
},
"packages/glyph": {
"name": "@iosevka/glyph",
"version": "29.2.1",
"version": "30.0.0",
"dependencies": {
"@iosevka/geometry": "29.2.1"
"@iosevka/geometry": "30.0.0"
}
},
"packages/param": {
"name": "@iosevka/param",
"version": "29.2.1",
"version": "30.0.0",
"dependencies": {
"@iosevka/util": "29.2.1"
"@iosevka/util": "30.0.0"
}
},
"packages/util": {
"name": "@iosevka/util",
"version": "29.2.1"
"version": "30.0.0"
},
"tools/amend-readme": {
"name": "@iosevka/amend-readme",
"version": "29.2.1",
"version": "30.0.0",
"dependencies": {
"@iarna/toml": "^2.2.5",
"@iosevka/param": "29.2.1",
"@iosevka/param": "30.0.0",
"@unicode/unicode-15.1.0": "^1.5.2"
}
},
"tools/data-export": {
"name": "@iosevka/data-export",
"version": "29.2.1",
"version": "30.0.0",
"dependencies": {
"@iarna/toml": "^2.2.5",
"@iosevka/param": "29.2.1",
"@iosevka/param": "30.0.0",
"@unicode/unicode-15.1.0": "^1.5.2",
"cldr": "^7.5.0"
}
},
"tools/generate-samples": {
"name": "@iosevka/generate-samples",
"version": "29.2.1",
"version": "30.0.0",
"dependencies": {
"@iosevka/data-export": "29.2.1"
"@iosevka/data-export": "30.0.0"
}
},
"tools/misc": {
"name": "@iosevka/misc",
"version": "29.2.1",
"version": "30.0.0",
"dependencies": {
"@iosevka/util": "29.2.1",
"@iosevka/util": "30.0.0",
"semver": "^7.6.0",
"wawoff2": "^2.0.1"
}

View file

@ -1,6 +1,6 @@
{
"name": "@iosevka/monorepo",
"version": "29.2.1",
"version": "30.0.0",
"workspaces": [
"packages/*",
"tools/*"

View file

@ -1,6 +1,6 @@
{
"name": "@iosevka/font-glyphs",
"version": "29.2.1",
"version": "30.0.0",
"private": true,
"exports": {
".": "./src/index.mjs",
@ -8,11 +8,11 @@
"./unicode-knowledge": "./src/meta/unicode-knowledge.mjs"
},
"dependencies": {
"@iosevka/font-kits": "29.2.1",
"@iosevka/geometry": "29.2.1",
"@iosevka/geometry-cache": "29.2.1",
"@iosevka/glyph": "29.2.1",
"@iosevka/util": "29.2.1",
"@iosevka/font-kits": "30.0.0",
"@iosevka/geometry": "30.0.0",
"@iosevka/geometry-cache": "30.0.0",
"@iosevka/glyph": "30.0.0",
"@iosevka/util": "30.0.0",
"typo-geom": "^0.15.1"
}
}

View file

@ -301,9 +301,9 @@ glyph-block Letter-Latin-Lower-I : begin
select-variant 'dotlessiRetroflexHook' (follow -- 'dotlessi')
CreateOgonekComposition 'iOgonek.dotless' null 'dotlessi'
CreateAccentedComposition 'i' 'i' 'dotlessi' 'dotAbove'
CreateAccentedComposition 'i/sansSerif' null 'dotlessi/sansSerif' 'dotAbove'
CreateAccentedComposition 'i/compLigRight' null 'dotlessi/compLigRight' 'dotAbove'
CreateAccentedComposition 'i' 'i' 'dotlessi' 'dotAboveIJ'
CreateAccentedComposition 'i/sansSerif' null 'dotlessi/sansSerif' 'dotAboveIJ'
CreateAccentedComposition 'i/compLigRight' null 'dotlessi/compLigRight' 'dotAboveIJ'
link-reduced-variant 'i/sansSerif' 'i' MathSansSerif
alias 'cyrl/iUkrainian' 0x456 'i'

View file

@ -118,8 +118,8 @@ glyph-block Letter-Latin-Lower-J : begin
select-variant 'dotlessjBar' 0x25F (follow -- 'dotlessj')
select-variant 'dotlessjBarHookTop' 0x284 (follow -- 'dotlessj/sansSerif')
link-reduced-variant 'dotlessj/sansSerif' 'dotlessj' MathSansSerif
CreateAccentedComposition 'j' 'j' 'dotlessj' 'dotAbove'
CreateAccentedComposition 'j/sansSerif' null 'dotlessj/sansSerif' 'dotAbove'
CreateAccentedComposition 'j' 'j' 'dotlessj' 'dotAboveIJ'
CreateAccentedComposition 'j/sansSerif' null 'dotlessj/sansSerif' 'dotAboveIJ'
CreateAccentedComposition 'grek/yot' 0x3F3 'dotlessj' 'dotAbove'
CreateAccentedComposition 'cyrl/je' 0x458 'dotlessj' 'dotAbove'
link-reduced-variant 'j/sansSerif' 'j' MathSansSerif

View file

@ -108,6 +108,7 @@ glyph-block Mark-Above : begin
select-variant 'tripleDotAbove' 0x1AB4 (follow -- 'diacriticDot')
select-variant 'elipsisAbove' 0x20DB (follow -- 'diacriticDot')
select-variant 'fourDotsAbove' 0x20DC (follow -- 'diacriticDot')
select-variant 'dotAboveIJ' (shapeFrom -- "dotAbove") (follow -- 'ijDot')
glyph-block-export RingDims RingShape
define [RingDims _radiusOut] : begin

View file

@ -1,14 +1,14 @@
{
"name": "@iosevka/font-kits",
"version": "29.2.1",
"version": "30.0.0",
"private": true,
"exports": {
"./boole-kit": "./src/boole-kit.mjs",
"./spiro-kit": "./src/spiro-kit.mjs"
},
"dependencies": {
"@iosevka/geometry": "29.2.1",
"@iosevka/glyph": "29.2.1",
"@iosevka/util": "29.2.1"
"@iosevka/geometry": "30.0.0",
"@iosevka/glyph": "30.0.0",
"@iosevka/util": "30.0.0"
}
}

View file

@ -1,13 +1,13 @@
{
"name": "@iosevka/font-otl",
"version": "29.2.1",
"version": "30.0.0",
"private": true,
"exports": {
".": "./src/index.mjs"
},
"dependencies": {
"@iosevka/font-glyphs": "29.2.1",
"@iosevka/glyph": "29.2.1",
"@iosevka/font-glyphs": "30.0.0",
"@iosevka/glyph": "30.0.0",
"toposort": "^2.0.2"
}
}

View file

@ -1,6 +1,6 @@
{
"name": "@iosevka/font",
"version": "29.2.1",
"version": "30.0.0",
"private": true,
"exports": {
".": "./src/index.mjs",
@ -10,13 +10,13 @@
},
"dependencies": {
"@iarna/toml": "^2.2.5",
"@iosevka/font-glyphs": "29.2.1",
"@iosevka/font-otl": "29.2.1",
"@iosevka/geometry": "29.2.1",
"@iosevka/geometry-cache": "29.2.1",
"@iosevka/glyph": "29.2.1",
"@iosevka/param": "29.2.1",
"@iosevka/util": "29.2.1",
"@iosevka/font-glyphs": "30.0.0",
"@iosevka/font-otl": "30.0.0",
"@iosevka/geometry": "30.0.0",
"@iosevka/geometry-cache": "30.0.0",
"@iosevka/glyph": "30.0.0",
"@iosevka/param": "30.0.0",
"@iosevka/util": "30.0.0",
"harfbuzzjs": "^0.3.4",
"ot-builder": "^1.7.3",
"semver": "^7.6.0"

View file

@ -1,12 +1,12 @@
{
"name": "@iosevka/geometry-cache",
"version": "29.2.1",
"version": "30.0.0",
"private": true,
"exports": {
".": "./src/index.mjs"
},
"dependencies": {
"@iosevka/geometry": "29.2.1",
"@iosevka/geometry": "30.0.0",
"@msgpack/msgpack": "^2.8.0"
}
}

View file

@ -1,6 +1,6 @@
{
"name": "@iosevka/geometry",
"version": "29.2.1",
"version": "30.0.0",
"private": true,
"exports": {
".": "./src/index.mjs",
@ -13,7 +13,7 @@
"./spiro-control": "./src/spiro-control.mjs"
},
"dependencies": {
"@iosevka/util": "29.2.1",
"@iosevka/util": "30.0.0",
"spiro": "^3.0.1",
"typo-geom": "^0.15.1"
}

View file

@ -1,6 +1,6 @@
{
"name": "@iosevka/glyph",
"version": "29.2.1",
"version": "30.0.0",
"private": true,
"exports": {
".": "./src/glyph.mjs",
@ -9,6 +9,6 @@
"./relation": "./src/relation.mjs"
},
"dependencies": {
"@iosevka/geometry": "29.2.1"
"@iosevka/geometry": "30.0.0"
}
}

View file

@ -1,6 +1,6 @@
{
"name": "@iosevka/param",
"version": "29.2.1",
"version": "30.0.0",
"private": true,
"exports": {
".": "./src/index.mjs",
@ -9,6 +9,6 @@
"./metric-override": "./src/metric-override.mjs"
},
"dependencies": {
"@iosevka/util": "29.2.1"
"@iosevka/util": "30.0.0"
}
}

View file

@ -1,6 +1,6 @@
{
"name": "@iosevka/util",
"version": "29.2.1",
"version": "30.0.0",
"private": true,
"exports": {
".": "./src/index.mjs",

View file

@ -6784,9 +6784,27 @@ selector.nine = "straightBar"
[prime.ij-dot]
sampler = "ij "
hotChars = "ij"
samplerExplain = "Dots in letters “i” and “j” in particular (not including dots in other letters, even if they are similar)"
tagKind = "dot"
[prime.ij-dot.variants.round]
rank = 1
description = "Dots and Commas in i/j are round"
selector.ijDot = "round"
[prime.ij-dot.variants.square]
rank = 2
description = "Dots and Commas in i/j are square"
selector.ijDot = "square"
[prime.diacritic-dot]
sampler = "öẋ ij"
hotChars = "ijäöü"
sampler = "öẋ "
hotChars = "äöü"
samplerExplain = "Dot and Comma shape in diacritics"
tagKind = "dot"
@ -7732,6 +7750,7 @@ seven = "straight-serifless"
eight = "crossing"
nine = "straight-bar"
# Dots
ij-dot = "round"
punctuation-dot = "round"
diacritic-dot = "round"
# Symbols
@ -8043,6 +8062,7 @@ six = "closed-contour"
seven = "bend-serifed"
eight = "two-circles"
nine = "closed-contour"
ij-dot = "square"
punctuation-dot = "square"
diacritic-dot = "square"
asterisk = "hex-low"
@ -8229,6 +8249,7 @@ four = "closed-serifless"
six = "closed-contour"
eight = "two-circles"
nine = "closed-contour"
ij-dot = "square"
punctuation-dot = "square"
diacritic-dot = "square"
asterisk = "hex-low"
@ -8406,6 +8427,7 @@ six = "closed-contour"
seven = "bend-serifless"
eight = "two-circles"
nine = "closed-contour"
ij-dot = "square"
punctuation-dot = "square"
diacritic-dot = "square"
brace = "straight"
@ -9017,6 +9039,7 @@ six = "closed-contour"
seven = "bend-serifless"
eight = "crossing-asymmetric"
nine = "closed-contour"
ij-dot = "square"
punctuation-dot = "square"
diacritic-dot = "square"
paren = "large-contour"
@ -9426,6 +9449,7 @@ five = "oblique-arched-serifless"
six = "closed-contour"
seven = "straight-serifed"
nine = "closed-contour"
ij-dot = "square"
punctuation-dot = "square"
diacritic-dot = "square"
asterisk = "hex-low"

View file

@ -1,13 +1,13 @@
{
"name": "@iosevka/amend-readme",
"version": "29.2.1",
"version": "30.0.0",
"private": true,
"exports": {
".": "./src/index.mjs"
},
"dependencies": {
"@iarna/toml": "^2.2.5",
"@iosevka/param": "29.2.1",
"@iosevka/param": "30.0.0",
"@unicode/unicode-15.1.0": "^1.5.2"
}
}

View file

@ -1,6 +1,6 @@
{
"name": "@iosevka/data-export",
"version": "29.2.1",
"version": "30.0.0",
"private": true,
"exports": {
".": "./src/index.mjs",
@ -10,7 +10,7 @@
},
"dependencies": {
"@iarna/toml": "^2.2.5",
"@iosevka/param": "29.2.1",
"@iosevka/param": "30.0.0",
"@unicode/unicode-15.1.0": "^1.5.2",
"cldr": "^7.5.0"
}

View file

@ -1,11 +1,11 @@
{
"name": "@iosevka/generate-samples",
"version": "29.2.1",
"version": "30.0.0",
"private": true,
"exports": {
".": "./src/index.mjs"
},
"dependencies": {
"@iosevka/data-export": "29.2.1"
"@iosevka/data-export": "30.0.0"
}
}

View file

@ -1,10 +1,10 @@
{
"name": "@iosevka/misc",
"version": "29.2.1",
"version": "30.0.0",
"private": true,
"dependencies": {
"semver": "^7.6.0",
"wawoff2": "^2.0.1",
"@iosevka/util": "29.2.1"
"@iosevka/util": "30.0.0"
}
}