@hedhog/utils
Version:
<p align="center"> <img src="https://avatars.githubusercontent.com/u/177489127?s=200&v=4" alt="Hedhog Avatar" /> </p>
38 lines • 1.14 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.hexToHSL = void 0;
const hexToHSL = (hex) => {
hex = hex && hex.includes("#") ? hex.replace(/^#/, "") : "#000";
let r = parseInt(hex.substring(0, 2), 16) / 255;
let g = parseInt(hex.substring(2, 4), 16) / 255;
let b = parseInt(hex.substring(4, 6), 16) / 255;
let max = Math.max(r, g, b), min = Math.min(r, g, b);
let h = (max + min) / 2;
let s = (max + min) / 2;
let l = (max + min) / 2;
if (max === min) {
h = s = 0;
}
else {
let 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;
}
h /= 6;
}
h = Math.round(h * 360);
s = Math.round(s * 100);
l = Math.round(l * 100);
return { h, s, l };
};
exports.hexToHSL = hexToHSL;
//# sourceMappingURL=hexToHsl.js.map
;