color-tf
Version:
RGB, HSL, HSV, HWB and more color models convertors
22 lines (17 loc) • 505 B
JavaScript
;
var hsl2rgb = (h, s, l) => {
if (s === 0) return [l, l, l]; // achromatic
const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
const p = 2 * l - q;
return [hue2rgb(p, q, h + 1 / 3), hue2rgb(p, q, h), hue2rgb(p, q, h - 1 / 3)];
};
function hue2rgb(p, q, t) {
// private fn
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;
}
module.exports = hsl2rgb;