UNPKG

@mapcss/preset-typography

Version:

Typography preset for MapCSS

67 lines (66 loc) 2.55 kB
import { re$AllPer$PositiveNumber, re$Numeric, } from "../../core/utils/regexp.js"; import { parseFraction, parseNumeric } from "../../core/utils/monad.js"; import { multiple, quoter, roundN, shortDecimal, unit, } from "../../core/utils/format.js"; import { handleTransform } from "./_utils.js"; export const translate = { x: [ [ 0, (_, { variablePrefix }) => handleTransform(["translate-x"], "0px", variablePrefix), ], [ "px", (_, { variablePrefix }) => handleTransform(["translate-x"], "1px", variablePrefix), ], [ "full", (_, { variablePrefix }) => handleTransform(["translate-x"], "100%", variablePrefix), ], [ re$Numeric, ([, pNumber], { variablePrefix }) => parseNumeric(pNumber).map(quoter).map(shortDecimal).map(unit("rem")) .match({ some: (rem) => handleTransform(["translate-x"], rem, variablePrefix), none: undefined, }), ], [ re$AllPer$PositiveNumber, ([, numerator, denominator], { variablePrefix }) => parseFraction(numerator, denominator).map(multiple(100)).map(roundN(6)) .map(unit("%")).match({ some: (v) => handleTransform(["translate-x"], v, variablePrefix), none: undefined, }), ], ], y: [ [ 0, (_, { variablePrefix }) => handleTransform(["translate-y"], "0px", variablePrefix), ], [ "px", (_, { variablePrefix }) => handleTransform(["translate-y"], "1px", variablePrefix), ], [ "full", (_, { variablePrefix }) => handleTransform(["translate-y"], "100%", variablePrefix), ], [ re$AllPer$PositiveNumber, ([, numerator, denominator], { variablePrefix }) => parseFraction(numerator, denominator).map(multiple(100)).map(roundN(6)) .map(unit("%")).match({ some: (v) => handleTransform(["translate-y"], v, variablePrefix), none: undefined, }), ], [ re$Numeric, ([, pNumber], { variablePrefix }) => parseNumeric(pNumber).map(quoter).map(shortDecimal).map(unit("rem")) .match({ some: (rem) => handleTransform(["translate-y"], rem, variablePrefix), none: undefined, }), ], ], };