@tolokoban/ui
Version:
React components with theme
40 lines • 2.79 kB
JavaScript
export function cssForColor(name, alpha = 1) {
if (alpha <= 0)
return "transparent";
if (alpha >= 1)
return `var(--theme-color-${name})`;
return `var(--theme-color-${name}-${toOpacity(alpha)})`;
}
export function cssForColorOn(name) {
return `var(--theme-color-on-${name})`;
}
export function cssForGaps(params, unit = "em") {
if (!Array.isArray(params))
return cssForGap(params, unit);
return params.map((item) => cssForGap(item, unit)).join(" ");
}
function cssForGap(item, unit = "em") {
if (typeof item === "number")
return `${item}${unit}`;
switch (item) {
case "XXS":
case "XS":
case "S":
case "M":
case "L":
case "XL":
case "XXL":
return `var(--theme-gap-${item})`;
default:
return item;
}
}
function toOpacity(alpha) {
const opacity = Math.round(alpha * 10);
if (opacity < 1)
return "1";
if (opacity > 9)
return "9";
return `${opacity}`;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RoZW1lL3N0eWxlcy9zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLFdBQVcsQ0FBQyxJQUFxQixFQUFFLEtBQUssR0FBRyxDQUFDO0lBQ3hELElBQUksS0FBSyxJQUFJLENBQUM7UUFBRSxPQUFPLGFBQWEsQ0FBQTtJQUNwQyxJQUFJLEtBQUssSUFBSSxDQUFDO1FBQUUsT0FBTyxxQkFBcUIsSUFBSSxHQUFHLENBQUE7SUFDbkQsT0FBTyxxQkFBcUIsSUFBSSxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFBO0FBQzNELENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLElBQXFCO0lBQy9DLE9BQU8sd0JBQXdCLElBQUksR0FBRyxDQUFBO0FBQzFDLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLE1BQXFCLEVBQUUsSUFBSSxHQUFHLElBQUk7SUFDekQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQUUsT0FBTyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQzFELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUNoRSxDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsSUFBcUIsRUFBRSxJQUFJLEdBQUcsSUFBSTtJQUNqRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFBRSxPQUFPLEdBQUcsSUFBSSxHQUFHLElBQUksRUFBRSxDQUFBO0lBRXJELFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDWCxLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssSUFBSSxDQUFDO1FBQ1YsS0FBSyxHQUFHLENBQUM7UUFDVCxLQUFLLEdBQUcsQ0FBQztRQUNULEtBQUssR0FBRyxDQUFDO1FBQ1QsS0FBSyxJQUFJLENBQUM7UUFDVixLQUFLLEtBQUs7WUFDTixPQUFPLG1CQUFtQixJQUFJLEdBQUcsQ0FBQTtRQUNyQztZQUNJLE9BQU8sSUFBSSxDQUFBO0lBQ25CLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsS0FBYTtJQUM1QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQTtJQUN0QyxJQUFJLE9BQU8sR0FBRyxDQUFDO1FBQUUsT0FBTyxHQUFHLENBQUE7SUFDM0IsSUFBSSxPQUFPLEdBQUcsQ0FBQztRQUFFLE9BQU8sR0FBRyxDQUFBO0lBQzNCLE9BQU8sR0FBRyxPQUFPLEVBQUUsQ0FBQTtBQUN2QixDQUFDIn0=