@chayns/colors
Version:
JavaScript utility functions for the calculation of colors for chayns
53 lines (45 loc) • 883 B
JavaScript
import { isNumber, isRgb1 } from '../../utils/is';
export default function rgb1ToHsl(rgb) {
if (!isRgb1(rgb)) {
return null;
}
var r = rgb.r,
g = rgb.g,
b = rgb.b;
var max = Math.max(r, g, b);
var min = Math.min(r, g, b);
var h = 0;
if (max === min) {
h = 0;
} else if (max === r) {
h = 60 * ((g - b) / (max - min));
} else if (max === g) {
h = 60 * (2 + (b - r) / (max - min));
} else if (max === b) {
h = 60 * (4 + (r - g) / (max - min));
}
if (h < 0) {
h += 360;
}
var s;
if (max === 0 || min === 1) {
s = 0;
} else {
s = (max - min) / (1 - Math.abs(max + min - 1));
}
var l = (max + min) / 2;
if ('a' in rgb && isNumber(rgb.a)) {
return {
h: h,
s: s,
l: l,
a: rgb.a
};
}
return {
h: h,
s: s,
l: l
};
}
//# sourceMappingURL=rgb1ToHsl.js.map