UNPKG

float-hsl2rgb

Version:
45 lines (38 loc) 682 B
module.exports = hsl2rgb function hsl2rgb (hsl) { var h = hsl[0], s = hsl[1], l = hsl[2], t1, t2, t3, rgb, val if (s === 0) { val = l return [val, val, val] } if (l < 0.5) { t2 = l * (1 + s) } else { t2 = l + s - l * s } t1 = 2 * l - t2 rgb = [0, 0, 0] for (var i = 0; i < 3; i++) { t3 = h + 1 / 3 * -(i - 1) if (t3 < 0) { t3++ } if (t3 > 1) { t3-- } if (6 * t3 < 1) { val = t1 + (t2 - t1) * 6 * t3 } else if (2 * t3 < 1) { val = t2 } else if (3 * t3 < 2) { val = t1 + (t2 - t1) * (2 / 3 - t3) * 6 } else { val = t1 } rgb[i] = val } return rgb }