@macrostrat/column-components
Version:
React rendering primitives for stratigraphic columns
55 lines (54 loc) • 1.8 kB
JavaScript
import "../../utils/type.js";
import unpack from "../../utils/unpack.js";
import last from "../../utils/last.js";
import hsl2css from "./hsl2css.js";
import rgb2hsl from "../hsl/rgb2hsl.js";
import lab2css from "./lab2css.js";
import rgb2lab from "../lab/rgb2lab.js";
import lch2css from "./lch2css.js";
import rgb2lch from "../lch/rgb2lch.js";
import rgb2oklab from "../oklab/rgb2oklab.js";
import oklab2css from "./oklab2css.js";
import rgb2oklch from "../oklch/rgb2oklch.js";
import oklch2css from "./oklch2css.js";
import { setLabWhitePoint, getLabWhitePoint } from "../lab/lab-constants.js";
const { round } = Math;
const rgb2css = (...args) => {
const rgba = unpack(args, "rgba");
let mode = last(args) || "rgb";
if (mode.substr(0, 3) === "hsl") {
return hsl2css(rgb2hsl(rgba), mode);
}
if (mode.substr(0, 3) === "lab") {
const prevWhitePoint = getLabWhitePoint();
setLabWhitePoint("d50");
const cssColor = lab2css(rgb2lab(rgba), mode);
setLabWhitePoint(prevWhitePoint);
return cssColor;
}
if (mode.substr(0, 3) === "lch") {
const prevWhitePoint = getLabWhitePoint();
setLabWhitePoint("d50");
const cssColor = lch2css(rgb2lch(rgba), mode);
setLabWhitePoint(prevWhitePoint);
return cssColor;
}
if (mode.substr(0, 5) === "oklab") {
return oklab2css(rgb2oklab(rgba));
}
if (mode.substr(0, 5) === "oklch") {
return oklch2css(rgb2oklch(rgba));
}
rgba[0] = round(rgba[0]);
rgba[1] = round(rgba[1]);
rgba[2] = round(rgba[2]);
if (mode === "rgba" || rgba.length > 3 && rgba[3] < 1) {
rgba[3] = "/ " + (rgba.length > 3 ? rgba[3] : 1);
mode = "rgba";
}
return `${mode.substr(0, 3)}(${rgba.slice(0, mode === "rgb" ? 3 : 4).join(" ")})`;
};
export {
rgb2css as default
};
//# sourceMappingURL=rgb2css.js.map