Spaces:
Running
Running
import { parseColor, formatColor } from './color' | |
export function withAlphaValue(color, alphaValue, defaultValue) { | |
if (typeof color === 'function') { | |
return color({ opacityValue: alphaValue }) | |
} | |
let parsed = parseColor(color, { loose: true }) | |
if (parsed === null) { | |
return defaultValue | |
} | |
return formatColor({ ...parsed, alpha: alphaValue }) | |
} | |
export default function withAlphaVariable({ color, property, variable }) { | |
let properties = [].concat(property) | |
if (typeof color === 'function') { | |
return { | |
[variable]: '1', | |
...Object.fromEntries( | |
properties.map((p) => { | |
return [p, color({ opacityVariable: variable, opacityValue: `var(${variable})` })] | |
}) | |
), | |
} | |
} | |
const parsed = parseColor(color) | |
if (parsed === null) { | |
return Object.fromEntries(properties.map((p) => [p, color])) | |
} | |
if (parsed.alpha !== undefined) { | |
// Has an alpha value, return color as-is | |
return Object.fromEntries(properties.map((p) => [p, color])) | |
} | |
return { | |
[variable]: '1', | |
...Object.fromEntries( | |
properties.map((p) => { | |
return [p, formatColor({ ...parsed, alpha: `var(${variable})` })] | |
}) | |
), | |
} | |
} | |