* \[**Breaking**\]: Made serifed variants of X, Y, Z, x and z selectable via variant selector (#939).

* \[**Breaking**\]: Rename variants of `A`, `X`, `Y`, `Z`, `x` and `z`.
 * Update SS02 and SS16 to better reflect their source fonts (#939).
 * Remove unnecessary serifs of Slab Italic Small Cyrillic KA (#938).
This commit is contained in:
be5invis 2021-04-07 19:18:18 -07:00
parent 584e7a7fe0
commit 373eafa6a5
12 changed files with 780 additions and 435 deletions

View file

@ -143,14 +143,26 @@ class Composite {
this.upright = cfg.upright || cfg["upright-oblique"];
this.oblique = cfg.oblique || cfg["upright-oblique"];
this.italic = cfg.italic;
const slabOverrideCfg = cfg["slab-override"] || {};
this.slabOverride = {
design: slabOverrideCfg.design,
override: slabOverrideCfg.upright || slabOverrideCfg["upright-oblique"],
oblique: slabOverrideCfg.oblique || slabOverrideCfg["upright-oblique"],
italic: slabOverrideCfg.italic
};
}
decompose(para, selTree) {
const ans = [];
const cfg = Object.assign(
{},
this.design,
para.isItalic ? this.italic : para.isOblique ? this.oblique : this.upright
this.decomposeSlabOverride(this.design, this.slabOverride.design, para),
para.isItalic
? this.decomposeSlabOverride(this.italic, this.slabOverride.italic, para)
: para.isOblique
? this.decomposeSlabOverride(this.oblique, this.slabOverride.oblique, para)
: this.decomposeSlabOverride(this.upright, this.slabOverride.upright, para)
);
for (const [k, v] of Object.entries(cfg)) {
const pv = selTree.get(k, v);
@ -159,6 +171,10 @@ class Composite {
}
return ans;
}
decomposeSlabOverride(d, sd, para) {
if (para.slab) return Object.assign({}, d, sd);
else return d;
}
resolve(para, selTree, catalog, vs) {
if (this.inherits) {
if (!catalog.has(this.inherits)) {