@evg-b/evg-ui
Version:
EVG-UI library inspired by Material Design.
41 lines (35 loc) • 926 B
JavaScript
function RGBArawToHSLA (_ref) {
var r = _ref.r,
g = _ref.g,
b = _ref.b,
a = _ref.a;
var alpha = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
r = r / 255;
g = g / 255;
b = b / 255;
var cmin = Math.min(r, g, b);
var cmax = Math.max(r, g, b);
var delta = cmax - cmin;
var h,
s,
l = 0;
if (delta == 0) {
h = 0;
} else if (cmax == r) {
h = (g - b) / delta % 6;
} else if (cmax == g) {
h = (b - r) / delta + 2;
} else {
h = (r - g) / delta + 4;
}
h = Math.round(h * 60);
if (h < 0) {
h += 360;
}
l = (cmax + cmin) / 2;
s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));
s = +(s * 100).toFixed(1);
l = +(l * 100).toFixed(1);
return alpha ? "hsla(".concat(h, ",").concat(s, "%,").concat(l, "%,").concat(a, ")") : "hsl(".concat(h, ",").concat(s, "%,").concat(l, "%)");
}
export default RGBArawToHSLA;