@macrostrat/column-components
Version:
React rendering primitives for stratigraphic columns
54 lines (53 loc) • 1.95 kB
JavaScript
;
require("../../utils/type.cjs");
const unpack = require("../../utils/unpack.cjs");
const last = require("../../utils/last.cjs");
const hsl2css = require("./hsl2css.cjs");
const rgb2hsl = require("../hsl/rgb2hsl.cjs");
const lab2css = require("./lab2css.cjs");
const rgb2lab = require("../lab/rgb2lab.cjs");
const lch2css = require("./lch2css.cjs");
const rgb2lch = require("../lch/rgb2lch.cjs");
const rgb2oklab = require("../oklab/rgb2oklab.cjs");
const oklab2css = require("./oklab2css.cjs");
const rgb2oklch = require("../oklch/rgb2oklch.cjs");
const oklch2css = require("./oklch2css.cjs");
const labConstants = require("../lab/lab-constants.cjs");
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 = labConstants.getLabWhitePoint();
labConstants.setLabWhitePoint("d50");
const cssColor = lab2css(rgb2lab.default(rgba), mode);
labConstants.setLabWhitePoint(prevWhitePoint);
return cssColor;
}
if (mode.substr(0, 3) === "lch") {
const prevWhitePoint = labConstants.getLabWhitePoint();
labConstants.setLabWhitePoint("d50");
const cssColor = lch2css(rgb2lch(rgba), mode);
labConstants.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(" ")})`;
};
module.exports = rgb2css;
//# sourceMappingURL=rgb2css.cjs.map