Iosevka/utility/generate-samples/templates/character-variant.js
2022-06-12 21:48:57 -07:00

36 lines
843 B
JavaScript

const themes = require("../themes/index");
module.exports = function (args) {
const theme = themes[args.theme];
const unitWidth = 128;
let frames = [];
for (const ch of args.hotChars) {
const slopeClasses = args.slopeDependent ? ["normal", "italic"] : ["normal"];
for (const slope of slopeClasses) {
frames.push({
left: unitWidth * frames.length,
right: unitWidth * (1 + frames.length),
"horizontal-align": "center",
"vertical-align": "center",
"line-height": 128 / 96,
"baseline-offset": 0.85,
contents: [
{ "font-family": "Iosevka" },
{ "font-size": 96 },
{ "font-style": slope },
{ "font-feature-settings": { ...args.fontFeatures, calt: 1 } },
{ color: theme.body },
ch
]
});
}
}
return {
width: unitWidth * frames.length,
height: 160,
frames
};
};