Iosevka/utility/generate-samples/templates/character-variant.mjs
2022-07-16 20:18:52 -07:00

33 lines
844 B
JavaScript

import * as themes from "../themes/index.mjs";
export default (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
};
});