UNPKG

accessible-color-contrast

Version:

CLI tool which checks two colors for a high enough contrast in the context of WCAG 2.2

53 lines (49 loc) 1.44 kB
export const convertHexToRgb = (color) => { const raw = color.replace(/[\s#]/g, '') let hex = [] if (raw.length === 3) { hex = Array.from(raw).map((item) => item.toLowerCase().repeat(2)) } else { let str = '' for (let i = 0; i < raw.length; i++) { str += raw.charAt(i) if (str.length % 2 === 0) { hex.push(str.toLowerCase()) str = '' } } } const rgb = hex.map((item) => { let value = 0 let it = item.toString() for (let i = 0; i < it.length; i++) { let val = 0 switch (it.charAt(i)) { case 'a': val = 10 break case 'b': val = 11 break case 'c': val = 12 break case 'd': val = 13 break case 'e': val = 14 break case 'f': val = 15 break default: val = parseInt(it.charAt(i)) break } value += parseInt(val) * 16 ** (it.length - i - 1) } return value }) return `rgb(${rgb})` }