UNPKG

@alchemyalcove/hsl-to-rgb

Version:
48 lines (41 loc) 733 B
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); }