color-fns
Version:
Modern JavaScript color utility library.
49 lines • 1.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var parseHsl_1 = require("./parseHsl");
var utils_1 = require("./utils");
function hslToRgb(hsl) {
var value = typeof hsl === 'string' ? parseHsl_1.parseHsl(hsl) : hsl;
if (!value) {
return null;
}
;
var _a = [value.hue / 360, value.sat / 100, value.lum / 100, value.alpha], hue = _a[0], sat = _a[1], lgh = _a[2], alpha = _a[3];
var _b = [0, 0, 0], red = _b[0], green = _b[1], blue = _b[2];
if (sat === 0) {
red = green = blue = utils_1.normalizeDecNum(lgh * 255);
}
if (sat !== 0) {
var temp1_1 = lgh >= 50 ? lgh + sat - lgh * sat : lgh * (1 + sat);
var temp2_1 = 2 * lgh - temp1_1;
var testHue = function (test) {
if (test < 0) {
test += 1;
}
if (test > 1) {
test -= 1;
}
if (test < 1 / 6) {
return temp2_1 + (temp1_1 - temp2_1) * 6 * test;
}
if (test < 1 / 2) {
return temp1_1;
}
if (test < 2 / 3) {
return temp2_1 + (temp1_1 - temp2_1) * (2 / 3 - test) * 6;
}
return temp2_1;
};
red = utils_1.normalizeDecNum(255 * testHue(hue + 1 / 3));
green = utils_1.normalizeDecNum(255 * testHue(hue));
blue = utils_1.normalizeDecNum(255 * testHue(hue - 1 / 3));
}
return {
alpha: alpha,
blue: blue,
green: green,
red: red
};
}
exports.hslToRgb = hslToRgb;
//# sourceMappingURL=hslToRgb.js.map