@arco-design/web-react
Version:
Arco Design React UI Library.
124 lines (123 loc) • 2.94 kB
JavaScript
;
// Less lighten
Object.defineProperty(exports, "__esModule", { value: true });
exports.hsltorgb = exports.lighten = void 0;
function hexToRgb(hex) {
var rgb = [];
var _hex = hex.substr(1);
// converts #abc to #aabbcc
if (hex.length === 3) {
_hex = hex.replace(/(.)/g, '$1$1');
}
_hex.replace(/../g, function (color) {
rgb.push(parseInt(color, 0x10));
});
return {
r: rgb[0],
g: rgb[1],
b: rgb[2],
rgb: "rgb(" + rgb.join(',') + ")",
};
}
function getRgb(color) {
var rgb = hexToRgb(color);
return { r: rgb.r, g: rgb.g, b: rgb.b };
}
function getHsl(color) {
var rgb = getRgb(color);
var hsl = rgbToHsl(rgb.r, rgb.g, rgb.b);
return { h: hsl.h, s: hsl.s, l: hsl.l };
}
function rgbToHsl(r, g, b) {
var _r = r / 255;
var _g = g / 255;
var _b = b / 255;
var max = Math.max(_r, _g, _b);
var min = Math.min(_r, _g, _b);
var l = (max + min) / 2;
var h;
var s;
if (max === min) {
h = 0;
s = 0;
}
else {
var d = max - min;
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
switch (max) {
case _r:
h = (_g - _b) / d + (_g < _b ? 6 : 0);
break;
case _g:
h = (_b - _r) / d + 2;
break;
case _b:
h = (_r - _g) / d + 4;
break;
default:
break;
}
h /= 6;
}
return {
h: h,
s: s,
l: l,
hsl: "hsl(" + h * 360 + ", " + s * 100 + "%, " + l * 100 + "%)",
};
}
function lighten(color, percent) {
var hsl = getHsl(color);
var h = +hsl.h;
var s = +hsl.s;
var l = +hsl.l * 100 + +percent;
// return `hsl(${h * 360}, ${s * 100}%, ${l}%)`;
var res = hsltorgb([h * 360, s * 100, l]);
return res.join(',');
}
exports.lighten = lighten;
// copy from https://github.com/Qix-/color-convert/blob/master/conversions.js
function hsltorgb(hsl) {
var h = hsl[0] / 360;
var s = hsl[1] / 100;
var l = hsl[2] / 100;
var t2;
var t3;
var val;
if (s === 0) {
val = l * 255;
return [val, val, val];
}
if (l < 0.5) {
t2 = l * (1 + s);
}
else {
t2 = l + s - l * s;
}
var t1 = 2 * l - t2;
var rgb = [0, 0, 0];
for (var i = 0; i < 3; i++) {
t3 = h + (1 / 3) * -(i - 1);
if (t3 < 0) {
t3++;
}
if (t3 > 1) {
t3--;
}
if (6 * t3 < 1) {
val = t1 + (t2 - t1) * 6 * t3;
}
else if (2 * t3 < 1) {
val = t2;
}
else if (3 * t3 < 2) {
val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
}
else {
val = t1;
}
rgb[i] = val * 255;
}
return rgb;
}
exports.hsltorgb = hsltorgb;