lib-colors
Version:
Simple node.js library for work with colors
38 lines (37 loc) • 871 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.hslToRgb = hslToRgb;
function hslToRgb(hsl) {
const { h, s, l, a } = { ...hsl };
let r, g, b;
if (s === 0) {
r = g = b = l;
}
else {
const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
const p = 2 * l - q;
const hue = h / 360;
r = hue2rgb(p, q, hue + 1 / 3);
g = hue2rgb(p, q, hue);
b = hue2rgb(p, q, hue - 1 / 3);
}
return {
r: Math.round(r * 255),
g: Math.round(g * 255),
b: Math.round(b * 255),
a,
};
}
function hue2rgb(p, q, t) {
if (t < 0)
t += 1;
if (t > 1)
t -= 1;
if (t < 1 / 6)
return p + (q - p) * 6 * t;
if (t < 1 / 2)
return q;
if (t < 2 / 3)
return p + (q - p) * (2 / 3 - t) * 6;
return p;
}