@coreui/utils
Version:
CoreUI Utilities
31 lines (23 loc) • 904 B
text/typescript
/**
* --------------------------------------------------------------------------
* CoreUI Utils (__COREUI_VERSION__): rgbToHex.ts
* Licensed under MIT (https://github.com/coreui/coreui-utils/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
const rgbToHex = (color: string) => {
if (typeof color === 'undefined') {
throw new TypeError('Hex color is not defined')
}
if (color === 'transparent') {
return '#00000000'
}
const rgb = color.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i)
if (!rgb) {
throw new Error(`${color} is not a valid rgb color`)
}
const r = `0${parseInt(rgb[1], 10).toString(16)}`
const g = `0${parseInt(rgb[2], 10).toString(16)}`
const b = `0${parseInt(rgb[3], 10).toString(16)}`
return `#${r.slice(-2)}${g.slice(-2)}${b.slice(-2)}`
}
export default rgbToHex