UNPKG

convert-colorcodes

Version:
104 lines (86 loc) 2.48 kB
/* HEX TO _____ Codes */ const hexToHSL = (hex) => { var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); var r = parseInt(result[1], 16); var g = parseInt(result[2], 16); var b = parseInt(result[3], 16); r /= 255; g /= 255; b /= 255; var max = Math.max(r, g, b), min = Math.min(r, g, b); var h, s, l = (max + min) / 2; if (max === min) { h = s = 0; // achromatic } 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; } s = s * 100; s = Math.round(s); l = l * 100; l = Math.round(l); h = Math.round(360 * h); var colorInHSL = 'hsl(' + h + ',' + s + '%,' + l + '%)'; return colorInHSL; }; const hexToRGB = (hex) => { // remove the # in the beginning hex = hex.replace('#', ''); var r = parseInt(hex.substring(0, 2), 16); var g = parseInt(hex.substring(2, 4), 16); var b = parseInt(hex.substring(4, 6), 16); return 'rgb(' + r + ',' + g + ',' + b + ')'; }; const hexToCMYK = (hex) => { var computedC = 0; var computedM = 0; var computedY = 0; var computedK = 0; hex = (hex.charAt(0)=="#") ? hex.substring(1,7) : hex; if (hex.length != 6) { alert ('Invalid length of the input hex value!'); return; } if (/[0-9a-f]{6}/i.test(hex) != true) { alert ('Invalid digits in the input hex value!'); return; } var r = parseInt(hex.substring(0,2),16); var g = parseInt(hex.substring(2,4),16); var b = parseInt(hex.substring(4,6),16); // BLACK if (r==0 && g==0 && b==0) { computedK = 1; return [0,0,0,1]; } computedC = 1 - (r/255); computedM = 1 - (g/255); computedY = 1 - (b/255); var minCMY = Math.min(computedC,Math.min(computedM,computedY)); computedC = (computedC - minCMY) / (1 - minCMY) ; computedM = (computedM - minCMY) / (1 - minCMY) ; computedY = (computedY - minCMY) / (1 - minCMY) ; computedK = minCMY; return `cmyk(${computedC.toFixed(2)},${computedM.toFixed(2)},${computedY.toFixed(2)},${computedK.toFixed(2)})`; } exports.hexToRGB = hexToRGB; exports.hexToHSL = hexToHSL ; exports.hexToCMYK = hexToCMYK ; /* RGB TO _____ Codes */