@chayns/colors
Version:
JavaScript utility functions for the calculation of colors for chayns
51 lines (50 loc) • 972 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = rgb1ToHsl;
var _is = require("../../utils/is");
function rgb1ToHsl(rgb) {
if (!(0, _is.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 && (0, _is.isNumber)(rgb.a)) {
return {
h: h,
s: s,
l: l,
a: rgb.a
};
}
return {
h: h,
s: s,
l: l
};
}
//# sourceMappingURL=rgb1ToHsl.js.map