MCPcopy Create free account
hub / github.com/adobe/react-spectrum / convertColor

Function convertColor

packages/@react-spectrum/ai/src/tokens.macro.ts:73–92  ·  view source on GitHub ↗
(value: any, opacity?: number)

Source from the content-addressed store, hash-verified

71// An optional opacity (0-100) overrides the color's own alpha. Note: neutral
72// colors are returned untouched, so opacity is ignored for them.
73export function convertColor(value: any, opacity?: number) {
74 if (typeof value !== 'string') {
75 return value;
76 }
77 return value.replace(/rgba?\([^)]+\)/g, value => {
78 let match = value.match(/rgba?\(([^)]+)\)/);
79 if (!match) {
80 return value;
81 }
82 let parts = match[1].split(',').map(x => parseFloat(x.trim()));
83 let [r, g, b] = parts;
84 let alpha = opacity != null ? opacity / 100 : (parts[3] ?? 1);
85 let [L, C, H] = rgbToOklch(r, g, b);
86 if (C < NEUTRAL_CHROMA) {
87 return value;
88 }
89 let offset = Math.round((H - BRAND_REF_HUE) * 10) / 10;
90 return brand(Math.round(L * 1e4) / 1e4, Math.round(C * 1e4) / 1e4, offset, alpha);
91 });
92}
93
94export function token(name: string) {
95 let token = name.split('.').reduce((acc, curr) => {

Callers 3

PromptFieldContainerFunction · 0.90
AIButton.tsxFile · 0.90
tokenFunction · 0.70

Calls 2

rgbToOklchFunction · 0.85
brandFunction · 0.85

Tested by

no test coverage detected