UNPKG

@evg-b/evg-ui

Version:

EVG-UI library inspired by Material Design.

60 lines (53 loc) 1.25 kB
function HSLtoRGBAraw (hsl) { var sep = hsl.includes(",") ? "," : " "; hsl = hsl.substr(4).split(")")[0].split(sep); var h = hsl[0]; var s = hsl[1].substr(0, hsl[1].length - 1) / 100; var l = hsl[2].substr(0, hsl[2].length - 1) / 100; if (h.includes("deg")) { h = h.substr(0, h.length - 3); } else if (h.includes("rad")) { h = Math.round(h.substr(0, h.length - 3) / (2 * Math.PI) * 360); } else if (h.includes("turn")) { h = Math.round(h.substr(0, h.length - 4) * 360); } if (h >= 360) { h %= 360; } var c = (1 - Math.abs(2 * l - 1)) * s; var x = c * (1 - Math.abs(h / 60 % 2 - 1)); var m = l - c / 2; var r = 0; var g = 0; var b = 0; if (0 <= h && h < 60) { r = c; g = x; b = 0; } else if (60 <= h && h < 120) { r = x; g = c; b = 0; } else if (120 <= h && h < 180) { r = 0; g = c; b = x; } else if (180 <= h && h < 240) { r = 0; g = x; b = c; } else if (240 <= h && h < 300) { r = x; g = 0; b = c; } else if (300 <= h && h < 360) { r = c; g = 0; b = x; } r = Math.round((r + m) * 255); g = Math.round((g + m) * 255); b = Math.round((b + m) * 255); return [r, g, b, 1]; } export default HSLtoRGBAraw;