in src/utils.ts [134:158]
function toHSL(rgb) {
const [r, g, b] = rgb.map(n => n / 255);
const max = Math.max(r, g, b);
const min = Math.min(r, g, b);
let h;
let s;
let l = (max + min) / 2;
if (max === min) {
h = s = 0; // achromatic
}
else {
const d = max - min;
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
switch (max) {
case r: h = (g - b) / d + (g < b ? 6 : 0); break;
case g: h = (b - r) / d + 2; break;
case b: h = (r - g) / d + 4; break;
}
h /= 6;
}
return [h, s, l];
}