mirror of
https://github.com/ArthurDanjou/ui.git
synced 2026-01-20 06:51:46 +01:00
33 lines
873 B
TypeScript
33 lines
873 B
TypeScript
import { omit, kebabCase } from './index'
|
|
|
|
export const colorsToExclude = [
|
|
'inherit',
|
|
'transparent',
|
|
'current',
|
|
'white',
|
|
'black',
|
|
'slate',
|
|
'gray',
|
|
'zinc',
|
|
'neutral',
|
|
'stone',
|
|
'cool'
|
|
]
|
|
|
|
export const excludeColors = (colors: object) => Object.keys(omit(colors, colorsToExclude)).map(color => kebabCase(color)) as string[]
|
|
|
|
export const colorsAsRegex = (colors: string[]): string => colors.join('|')
|
|
|
|
export const hexToRgb = (hex) => {
|
|
// Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF")
|
|
const shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i
|
|
hex = hex.replace(shorthandRegex, function (_, r, g, b) {
|
|
return r + r + g + g + b + b
|
|
})
|
|
|
|
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex)
|
|
return result
|
|
? `${parseInt(result[1], 16)} ${parseInt(result[2], 16)} ${parseInt(result[3], 16)}`
|
|
: null
|
|
}
|