@mapcss/preset-typography
Version:
Typography preset for MapCSS
67 lines (66 loc) • 2.55 kB
JavaScript
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,
}),
],
],
};