@alchemyalcove/hsl-to-rgb
Version:
Convert hsl to rgb
48 lines (41 loc) • 733 B
JavaScript
export default function(hsl) {
var h = hsl[0] / 360;
var s = hsl[1] / 100;
var l = hsl[2] / 100;
var t1;
var t2;
var t3;
var rgb;
var val;
if(s === 0) {
val = l * 255;
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 * 255;
}
return(rgb);
}