@evg-b/evg-ui
Version:
EVG-UI library inspired by Material Design.
56 lines (47 loc) • 1.19 kB
JavaScript
import HSLtoRGBAraw from './inrgb/HSLtoRGBAraw.js';
function ColorBright (_ref) {
var r = _ref.r,
g = _ref.g,
b = _ref.b;
_ref.a;
var percent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
if (typeof percent !== 'number') {
percent = 0;
}
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);
var newLightness = l + l * (percent / 100);
newLightness = newLightness > 100 ? 100 : newLightness < 0 ? 0 : newLightness;
var raw = HSLtoRGBAraw("hsl(".concat(h, ",").concat(s, "%,").concat(+newLightness.toFixed(1), "%)"));
return {
r: raw[0],
g: raw[1],
b: raw[2],
a: raw[3]
};
}
export default ColorBright;