@fifteen/design-system-vue
Version:
Vue 3 (Composition API + Typescript) implementation of the Fifteen Design System
33 lines (32 loc) • 590 B
JavaScript
import { unref as i } from "vue";
const u = [
"em",
"ex",
"%",
"px",
"cm",
"mm",
"in",
"pt",
"pc",
"ch",
"rem",
"vh",
"vw",
"vmin",
"vmax",
"rpx"
], a = new RegExp("^(-?[0-9.]+)([a-z%]+)?$", "i");
function f(c, s) {
const e = i(c), r = i(s) ?? 1;
if (!e && e !== 0)
return "";
if (typeof e == "number")
return e * r / 16 + "rem";
const o = a.exec(e), [m, n, t] = o || Array(3);
return n && !isNaN(+n) ? !u.includes(t) || t === "px" ? parseFloat(n) * r / 16 + "rem" : parseFloat(n) * r + t : e;
}
export {
u as cssUnits,
f as genSize
};