UNPKG

@mapcss/preset-typography

Version:

Typography preset for MapCSS

33 lines (32 loc) 1.2 kB
import { re$PositiveNumber } from "../../core/utils/regexp.js"; import { parseNumeric } from "../../core/utils/monad.js"; import { transformValue } from "./_utils.js"; import { customProperty, ratio, shortDecimal, } from "../../core/utils/format.js"; import { associateWith } from "../../deps.js"; function handleScale(properties, value, varPrefix) { return parseNumeric(value).map(ratio).map(shortDecimal).match({ some: (v) => ({ ...associateWith(properties.map((property) => customProperty(property, varPrefix)), () => v), transform: transformValue(varPrefix), }), none: undefined, }); } export const scale = [ ["x", [ [ re$PositiveNumber, ([, pNumber], { variablePrefix }) => handleScale(["scale-x"], pNumber, variablePrefix), ], ]], ["y", [ [ re$PositiveNumber, ([, pNumber], { variablePrefix }) => handleScale(["scale-y"], pNumber, variablePrefix), ], ]], [ re$PositiveNumber, ([, pNumber], { variablePrefix }) => handleScale(["scale-x", "scale-y"], pNumber, variablePrefix), ], ];