@asteby/metacore-theme 2.26.0 → 2.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -94,6 +94,24 @@ behaves exactly as before.
94
94
  }
95
95
  ```
96
96
 
97
+ ### Brand backdrop
98
+
99
+ The backdrop is three radial blobs over a base color. A brand changes the hues
100
+ by overriding the variables only — never `background-image` — so pack updates
101
+ keep applying (import after `glass.css`):
102
+
103
+ ```css
104
+ [data-ui-theme='glass'] {
105
+ --glass-gradient-1: radial-gradient(48rem 34rem at 10% -8%, oklch(0.42 0.1 255 / 0.55), transparent 70%);
106
+ --glass-gradient-2: radial-gradient(40rem 30rem at 105% 20%, oklch(0.5 0.09 250 / 0.4), transparent 68%);
107
+ --glass-gradient-3: radial-gradient(38rem 28rem at 60% 115%, oklch(0.6 0.07 235 / 0.35), transparent 70%);
108
+ }
109
+ .dark[data-ui-theme='glass'] { /* same three variables for dark */ }
110
+ ```
111
+
112
+ `--glass-backdrop` sets the base color under the blobs. Set a gradient to
113
+ `none` to drop it.
114
+
97
115
  An inset with no sidebar sibling (chat-like screens) floats on desktop with
98
116
  `<SidebarInset data-glass-float>`.
99
117
 
@@ -124,6 +142,29 @@ The bundled `<ThemeProvider>` (light/dark/system, cookie-persisted) is the
124
142
  recommended entry; consumer apps can drop their local copies and use
125
143
  `useTheme()` for the toggle UI.
126
144
 
145
+ ## Contrast contract
146
+
147
+ Every semantic pair the UI paints is held to WCAG 2.x AA, in light, dark and
148
+ the glass pack (measured on the composited surface, over the brightest and
149
+ darkest point of the backdrop):
150
+
151
+ | Pair | Minimum |
152
+ | --- | --- |
153
+ | `*-foreground` on its surface, `--muted-foreground` on `--card`/`--muted` | 4.5:1 |
154
+ | `--primary`, `--destructive`, `--success`/`--warning`/`--info` as text on `--card` and on their own badge tint | 4.5:1 |
155
+ | `--input` (control boundary), `--ring` at 50% (focus halo), `--chart-1..8`, `--color-widget-*` on `--card` | 3:1 |
156
+
157
+ `src/tokens-contrast.test.ts` measures them and fails CI below the minimum,
158
+ so a token edit (or a brand pack in a fork) cannot silently regress. The same
159
+ math is exported for runtime-derived colors:
160
+
161
+ ```ts
162
+ import { contrastRatio, ensureContrast, composite } from '@asteby/metacore-theme/contrast'
163
+
164
+ contrastRatio('oklch(0.8 0.07 255)', '#14202d') // ≈ 8.6
165
+ ensureContrast('#102E6B', '#14202d', 4.5) // same hue, lifted until it reads
166
+ ```
167
+
127
168
  ## No flash on reload
128
169
 
129
170
  `<ThemeProvider>` stores what `<html>` ends up painting — light/dark, the
@@ -0,0 +1,65 @@
1
+ /**
2
+ * WCAG 2.x contrast helpers for theme tokens.
3
+ *
4
+ * Pure functions, no DOM: they parse the color syntaxes the token files use
5
+ * (`oklch()`, `#hex`, `rgb()`, `white`/`black`/`transparent`), composite
6
+ * translucent colors over their backdrop (the glass pack paints text on
7
+ * `oklch(... / 0.45)` surfaces, so the contrast that matters is against the
8
+ * composited result, not the token) and compute the WCAG contrast ratio.
9
+ *
10
+ * Used by the token contrast test (fails CI below AA) and available to apps
11
+ * that derive colors at runtime (brand accents, chart series):
12
+ *
13
+ * import { contrastRatio, ensureContrast } from '@asteby/metacore-theme/contrast'
14
+ * contrastRatio('oklch(0.8 0.08 255)', 'oklch(0.2 0.03 255)') // ≈ 9.7
15
+ */
16
+ /** sRGB color, channels 0..1 (gamma-encoded), alpha 0..1. */
17
+ export interface Rgba {
18
+ r: number;
19
+ g: number;
20
+ b: number;
21
+ a: number;
22
+ }
23
+ /** WCAG 2.x minimums. */
24
+ export declare const WCAG: {
25
+ /** 1.4.3 AA, normal text (< 18.66px bold / < 24px regular). */
26
+ readonly text: 4.5;
27
+ /** 1.4.3 AA, large text. */
28
+ readonly largeText: 3;
29
+ /** 1.4.11 non-text: control boundaries, focus indicators, chart marks. */
30
+ readonly nonText: 3;
31
+ /** 1.4.6 AAA, normal text. */
32
+ readonly textAAA: 7;
33
+ };
34
+ /** OKLCH → gamma-encoded sRGB, out-of-gamut channels clipped (as browsers paint). */
35
+ export declare function oklchToRgb(l: number, c: number, hDeg: number): [number, number, number];
36
+ /** Gamma-encoded sRGB → OKLCH (`[l, c, h]`). */
37
+ export declare function rgbToOklch(r: number, g: number, b: number): [number, number, number];
38
+ /**
39
+ * Parses a CSS color as used in token files. Returns null for anything it
40
+ * does not understand (`var()`, `color-mix()`, gradients).
41
+ */
42
+ export declare function parseColor(input: string): Rgba | null;
43
+ /** Paints `top` over `bottom` (source-over, in gamma sRGB like browsers). */
44
+ export declare function composite(top: string | Rgba, bottom: string | Rgba): Rgba;
45
+ /** Composites a stack of layers, first = bottom-most (must end opaque). */
46
+ export declare function flatten(...layers: (string | Rgba)[]): Rgba;
47
+ /** WCAG relative luminance of an opaque color. */
48
+ export declare function relativeLuminance(color: string | Rgba): number;
49
+ /**
50
+ * WCAG contrast ratio (1..21). A translucent foreground is composited over
51
+ * the background first; the background must be opaque (flatten it first).
52
+ */
53
+ export declare function contrastRatio(foreground: string | Rgba, background: string | Rgba): number;
54
+ /** `#rrggbb` of an opaque color, for reports. */
55
+ export declare function toHex(color: string | Rgba): string;
56
+ /**
57
+ * Moves the OKLCH lightness of `color` (keeping hue and chroma) away from the
58
+ * background until it reaches `min` contrast against it. Returns the color as
59
+ * an `oklch()` string; when the target is unreachable it returns the closest
60
+ * extreme (L 0 or 1). Use it to derive readable brand accents / chart series.
61
+ */
62
+ export declare function ensureContrast(color: string, background: string, min?: number): string;
63
+ /** Picks whichever of `candidates` contrasts most with `background`. */
64
+ export declare function mostReadable(background: string | Rgba, candidates: string[]): string;
65
+ //# sourceMappingURL=contrast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contrast.d.ts","sourceRoot":"","sources":["../src/contrast.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,6DAA6D;AAC7D,MAAM,WAAW,IAAI;IACnB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,yBAAyB;AACzB,eAAO,MAAM,IAAI;IACf,+DAA+D;;IAE/D,4BAA4B;;IAE5B,0EAA0E;;IAE1E,8BAA8B;;CAEtB,CAAA;AAUV,qFAAqF;AACrF,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAmBvF;AAED,gDAAgD;AAChD,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAepF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CA0BrD;AASD,6EAA6E;AAC7E,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAOzE;AAED,2EAA2E;AAC3E,wBAAgB,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAE1D;AAED,kDAAkD;AAClD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAI9D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAS1F;AAED,iDAAiD;AACjD,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAIlD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAE,MAAkB,GAAG,MAAM,CAYjG;AAED,wEAAwE;AACxE,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAWpF"}
@@ -0,0 +1,196 @@
1
+ /**
2
+ * WCAG 2.x contrast helpers for theme tokens.
3
+ *
4
+ * Pure functions, no DOM: they parse the color syntaxes the token files use
5
+ * (`oklch()`, `#hex`, `rgb()`, `white`/`black`/`transparent`), composite
6
+ * translucent colors over their backdrop (the glass pack paints text on
7
+ * `oklch(... / 0.45)` surfaces, so the contrast that matters is against the
8
+ * composited result, not the token) and compute the WCAG contrast ratio.
9
+ *
10
+ * Used by the token contrast test (fails CI below AA) and available to apps
11
+ * that derive colors at runtime (brand accents, chart series):
12
+ *
13
+ * import { contrastRatio, ensureContrast } from '@asteby/metacore-theme/contrast'
14
+ * contrastRatio('oklch(0.8 0.08 255)', 'oklch(0.2 0.03 255)') // ≈ 9.7
15
+ */
16
+ /** WCAG 2.x minimums. */
17
+ export const WCAG = {
18
+ /** 1.4.3 AA, normal text (< 18.66px bold / < 24px regular). */
19
+ text: 4.5,
20
+ /** 1.4.3 AA, large text. */
21
+ largeText: 3,
22
+ /** 1.4.11 non-text: control boundaries, focus indicators, chart marks. */
23
+ nonText: 3,
24
+ /** 1.4.6 AAA, normal text. */
25
+ textAAA: 7,
26
+ };
27
+ const clamp01 = (n) => Math.min(1, Math.max(0, n));
28
+ function parseNumber(token, percentScale = 1) {
29
+ const t = token.trim();
30
+ if (t.endsWith('%'))
31
+ return (parseFloat(t) / 100) * percentScale;
32
+ return parseFloat(t);
33
+ }
34
+ /** OKLCH → gamma-encoded sRGB, out-of-gamut channels clipped (as browsers paint). */
35
+ export function oklchToRgb(l, c, hDeg) {
36
+ const h = (hDeg * Math.PI) / 180;
37
+ const a = c * Math.cos(h);
38
+ const b = c * Math.sin(h);
39
+ const l_ = l + 0.3963377774 * a + 0.2158037573 * b;
40
+ const m_ = l - 0.1055613458 * a - 0.0638541728 * b;
41
+ const s_ = l - 0.0894841775 * a - 1.291485548 * b;
42
+ const L = l_ ** 3;
43
+ const M = m_ ** 3;
44
+ const S = s_ ** 3;
45
+ const lin = [
46
+ 4.0767416621 * L - 3.3077115913 * M + 0.2309699292 * S,
47
+ -1.2684380046 * L + 2.6097574011 * M - 0.3413193965 * S,
48
+ -0.0041960863 * L - 0.7034186147 * M + 1.707614701 * S,
49
+ ];
50
+ return lin.map((v) => {
51
+ const x = clamp01(v);
52
+ return x <= 0.0031308 ? 12.92 * x : 1.055 * x ** (1 / 2.4) - 0.055;
53
+ });
54
+ }
55
+ /** Gamma-encoded sRGB → OKLCH (`[l, c, h]`). */
56
+ export function rgbToOklch(r, g, b) {
57
+ const lin = (v) => (v <= 0.04045 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4);
58
+ const lr = lin(r);
59
+ const lg = lin(g);
60
+ const lb = lin(b);
61
+ const l = Math.cbrt(0.4122214708 * lr + 0.5363325363 * lg + 0.0514459929 * lb);
62
+ const m = Math.cbrt(0.2119034982 * lr + 0.6806995451 * lg + 0.1073969566 * lb);
63
+ const s = Math.cbrt(0.0883024619 * lr + 0.2817188376 * lg + 0.6299787005 * lb);
64
+ const L = 0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s;
65
+ const A = 1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s;
66
+ const B = 0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s;
67
+ const C = Math.sqrt(A * A + B * B);
68
+ let H = (Math.atan2(B, A) * 180) / Math.PI;
69
+ if (H < 0)
70
+ H += 360;
71
+ return [L, C, H];
72
+ }
73
+ /**
74
+ * Parses a CSS color as used in token files. Returns null for anything it
75
+ * does not understand (`var()`, `color-mix()`, gradients).
76
+ */
77
+ export function parseColor(input) {
78
+ const s = input.trim().toLowerCase();
79
+ if (s === 'transparent')
80
+ return { r: 0, g: 0, b: 0, a: 0 };
81
+ if (s === 'white')
82
+ return { r: 1, g: 1, b: 1, a: 1 };
83
+ if (s === 'black')
84
+ return { r: 0, g: 0, b: 0, a: 1 };
85
+ if (s.startsWith('#')) {
86
+ let hex = s.slice(1);
87
+ if (hex.length === 3 || hex.length === 4)
88
+ hex = [...hex].map((ch) => ch + ch).join('');
89
+ if (!/^[0-9a-f]{6}([0-9a-f]{2})?$/.test(hex))
90
+ return null;
91
+ const n = (i) => parseInt(hex.slice(i, i + 2), 16) / 255;
92
+ return { r: n(0), g: n(2), b: n(4), a: hex.length === 8 ? n(6) : 1 };
93
+ }
94
+ const fn = /^(oklch|rgba?)\((.*)\)$/.exec(s);
95
+ if (!fn)
96
+ return null;
97
+ const [body, alphaPart] = fn[2].split('/');
98
+ const parts = body.replace(/,/g, ' ').trim().split(/\s+/);
99
+ if (parts.length < 3)
100
+ return null;
101
+ let alpha = 1;
102
+ if (alphaPart !== undefined)
103
+ alpha = parseNumber(alphaPart);
104
+ else if (fn[1] !== 'oklch' && parts.length === 4)
105
+ alpha = parseNumber(parts[3]);
106
+ if (fn[1] === 'oklch') {
107
+ const [r, g, b] = oklchToRgb(parseNumber(parts[0]), parseNumber(parts[1], 0.4), parseFloat(parts[2]));
108
+ return { r, g, b, a: clamp01(alpha) };
109
+ }
110
+ const ch = (t) => clamp01(t.endsWith('%') ? parseFloat(t) / 100 : parseFloat(t) / 255);
111
+ return { r: ch(parts[0]), g: ch(parts[1]), b: ch(parts[2]), a: clamp01(alpha) };
112
+ }
113
+ function toRgba(c) {
114
+ if (typeof c !== 'string')
115
+ return c;
116
+ const parsed = parseColor(c);
117
+ if (!parsed)
118
+ throw new Error(`Unsupported color: ${c}`);
119
+ return parsed;
120
+ }
121
+ /** Paints `top` over `bottom` (source-over, in gamma sRGB like browsers). */
122
+ export function composite(top, bottom) {
123
+ const t = toRgba(top);
124
+ const b = toRgba(bottom);
125
+ const a = t.a + b.a * (1 - t.a);
126
+ if (a === 0)
127
+ return { r: 0, g: 0, b: 0, a: 0 };
128
+ const mix = (x, y) => (x * t.a + y * b.a * (1 - t.a)) / a;
129
+ return { r: mix(t.r, b.r), g: mix(t.g, b.g), b: mix(t.b, b.b), a };
130
+ }
131
+ /** Composites a stack of layers, first = bottom-most (must end opaque). */
132
+ export function flatten(...layers) {
133
+ return layers.reduce((acc, layer) => composite(layer, acc), { r: 0, g: 0, b: 0, a: 0 });
134
+ }
135
+ /** WCAG relative luminance of an opaque color. */
136
+ export function relativeLuminance(color) {
137
+ const c = toRgba(color);
138
+ const lin = (v) => (v <= 0.04045 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4);
139
+ return 0.2126 * lin(c.r) + 0.7152 * lin(c.g) + 0.0722 * lin(c.b);
140
+ }
141
+ /**
142
+ * WCAG contrast ratio (1..21). A translucent foreground is composited over
143
+ * the background first; the background must be opaque (flatten it first).
144
+ */
145
+ export function contrastRatio(foreground, background) {
146
+ const bg = toRgba(background);
147
+ if (bg.a < 1)
148
+ throw new Error('contrastRatio: background must be opaque; flatten() it over its backdrop first');
149
+ const fg = composite(foreground, bg);
150
+ const l1 = relativeLuminance(fg);
151
+ const l2 = relativeLuminance(bg);
152
+ const hi = Math.max(l1, l2);
153
+ const lo = Math.min(l1, l2);
154
+ return (hi + 0.05) / (lo + 0.05);
155
+ }
156
+ /** `#rrggbb` of an opaque color, for reports. */
157
+ export function toHex(color) {
158
+ const c = toRgba(color);
159
+ const h = (v) => Math.round(clamp01(v) * 255).toString(16).padStart(2, '0');
160
+ return `#${h(c.r)}${h(c.g)}${h(c.b)}`;
161
+ }
162
+ /**
163
+ * Moves the OKLCH lightness of `color` (keeping hue and chroma) away from the
164
+ * background until it reaches `min` contrast against it. Returns the color as
165
+ * an `oklch()` string; when the target is unreachable it returns the closest
166
+ * extreme (L 0 or 1). Use it to derive readable brand accents / chart series.
167
+ */
168
+ export function ensureContrast(color, background, min = WCAG.text) {
169
+ const c = toRgba(color);
170
+ const bg = toRgba(background);
171
+ const [l0, ch, hue] = rgbToOklch(c.r, c.g, c.b);
172
+ const fmt = (l) => `oklch(${l.toFixed(4)} ${ch.toFixed(4)} ${hue.toFixed(2)})`;
173
+ if (contrastRatio(fmt(l0), bg) >= min)
174
+ return fmt(l0);
175
+ const lighten = relativeLuminance(bg) < 0.18;
176
+ for (let i = 1; i <= 100; i++) {
177
+ const l = lighten ? Math.min(1, l0 + i * 0.01) : Math.max(0, l0 - i * 0.01);
178
+ if (contrastRatio(fmt(l), bg) >= min || l === 0 || l === 1)
179
+ return fmt(l);
180
+ }
181
+ return fmt(lighten ? 1 : 0);
182
+ }
183
+ /** Picks whichever of `candidates` contrasts most with `background`. */
184
+ export function mostReadable(background, candidates) {
185
+ let best = candidates[0];
186
+ let bestRatio = -1;
187
+ for (const c of candidates) {
188
+ const r = contrastRatio(c, background);
189
+ if (r > bestRatio) {
190
+ best = c;
191
+ bestRatio = r;
192
+ }
193
+ }
194
+ return best;
195
+ }
196
+ //# sourceMappingURL=contrast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contrast.js","sourceRoot":"","sources":["../src/contrast.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,yBAAyB;AACzB,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,+DAA+D;IAC/D,IAAI,EAAE,GAAG;IACT,4BAA4B;IAC5B,SAAS,EAAE,CAAC;IACZ,0EAA0E;IAC1E,OAAO,EAAE,CAAC;IACV,8BAA8B;IAC9B,OAAO,EAAE,CAAC;CACF,CAAA;AAEV,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAE1D,SAAS,WAAW,CAAC,KAAa,EAAE,YAAY,GAAG,CAAC;IAClD,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IACtB,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,YAAY,CAAA;IAChE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAA;AACtB,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,UAAU,CAAC,CAAS,EAAE,CAAS,EAAE,IAAY;IAC3D,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAA;IAChC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACzB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACzB,MAAM,EAAE,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAA;IAClD,MAAM,EAAE,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAA;IAClD,MAAM,EAAE,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,CAAA;IACjD,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACjB,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACjB,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACjB,MAAM,GAAG,GAAG;QACV,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC;QACtD,CAAC,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC;QACvD,CAAC,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC;KACvD,CAAA;IACD,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACnB,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACpB,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAA;IACpE,CAAC,CAA6B,CAAA;AAChC,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,UAAU,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACxD,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAA;IACpF,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IACjB,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IACjB,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IACjB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,YAAY,GAAG,EAAE,GAAG,YAAY,GAAG,EAAE,CAAC,CAAA;IAC9E,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,YAAY,GAAG,EAAE,GAAG,YAAY,GAAG,EAAE,CAAC,CAAA;IAC9E,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,YAAY,GAAG,EAAE,GAAG,YAAY,GAAG,EAAE,CAAC,CAAA;IAC9E,MAAM,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAA;IAC/D,MAAM,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAA;IAC/D,MAAM,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,CAAA;IAC/D,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IAClC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAA;IAC1C,IAAI,CAAC,GAAG,CAAC;QAAE,CAAC,IAAI,GAAG,CAAA;IACnB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACpC,IAAI,CAAC,KAAK,aAAa;QAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IAC1D,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpD,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpD,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,IAAI,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtF,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAA;QACzD,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAA;QAChE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACtE,CAAC;IACD,MAAM,EAAE,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC5C,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAA;IACpB,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAG,IAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC1D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACjC,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,SAAS,KAAK,SAAS;QAAE,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;SACtD,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAA;IAChF,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QACtB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAA;QACxG,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAA;IACvC,CAAC;IACD,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA;IAC9F,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAA;AACpF,CAAC;AAED,SAAS,MAAM,CAAC,CAAgB;IAC9B,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAA;IACnC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;IAC5B,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAA;IACvD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,SAAS,CAAC,GAAkB,EAAE,MAAqB;IACjE,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IACrB,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IACxB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/B,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IAC9C,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACzE,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;AACpE,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,OAAO,CAAC,GAAG,MAAyB;IAClD,OAAO,MAAM,CAAC,MAAM,CAAO,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;AAC/F,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,iBAAiB,CAAC,KAAoB;IACpD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACvB,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAA;IACpF,OAAO,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,UAAyB,EAAE,UAAyB;IAChF,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;IAC7B,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAA;IAC/G,MAAM,EAAE,GAAG,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IACpC,MAAM,EAAE,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAA;IAChC,MAAM,EAAE,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAA;IAChC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC3B,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;AAClC,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,KAAK,CAAC,KAAoB;IACxC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACvB,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACnF,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,UAAkB,EAAE,MAAc,IAAI,CAAC,IAAI;IACvF,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACvB,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;IAC7B,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA;IACtF,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC,EAAE,CAAC,CAAA;IACrD,MAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;QAC3E,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAA;IAC3E,CAAC;IACD,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7B,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,YAAY,CAAC,UAAyB,EAAE,UAAoB;IAC1E,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,CAAE,CAAA;IACzB,IAAI,SAAS,GAAG,CAAC,CAAC,CAAA;IAClB,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;QACtC,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;YAClB,IAAI,GAAG,CAAC,CAAA;YACR,SAAS,GAAG,CAAC,CAAA;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
package/dist/index.d.ts CHANGED
@@ -6,4 +6,6 @@ export { ThemeProvider, useTheme } from './provider.js';
6
6
  export type { ThemeProviderProps, ThemeProviderState } from './provider.js';
7
7
  export { themeBootScript, watchThemeBoot, persistThemeBoot, captureThemeBoot, releaseThemeBoot, THEME_BOOT_STORAGE_KEY, THEME_MODE_COOKIE, THEME_BOOTING_CLASS, THEME_BOOT_TRANSITION_ATTRIBUTE, BRANDING_STYLE_ID, } from './boot.js';
8
8
  export type { ThemeMode, ThemeBootSnapshot, ThemeBootModeSnapshot, ThemeBootScriptOptions, ThemeBootWatchOptions, } from './boot.js';
9
+ export { WCAG, parseColor, oklchToRgb, rgbToOklch, composite, flatten, relativeLuminance, contrastRatio, ensureContrast, mostReadable, toHex, } from './contrast.js';
10
+ export type { Rgba } from './contrast.js';
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAChD,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,WAAW,GACZ,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACvD,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAE3E,OAAO,EACL,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,+BAA+B,EAC/B,iBAAiB,GAClB,MAAM,WAAW,CAAA;AAClB,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAChD,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,WAAW,GACZ,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACvD,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAE3E,OAAO,EACL,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,+BAA+B,EAC/B,iBAAiB,GAClB,MAAM,WAAW,CAAA;AAClB,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,IAAI,EACJ,UAAU,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,OAAO,EACP,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,KAAK,GACN,MAAM,eAAe,CAAA;AACtB,YAAY,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA"}
package/dist/index.js CHANGED
@@ -2,4 +2,5 @@ export { fonts, fontFamilies } from './fonts.js';
2
2
  export { colorTokens, chartTokens, radiusTokens, shadowTokens, fontTokens, trackingTokens, motionTokens, themeConfig, } from './preset.js';
3
3
  export { ThemeProvider, useTheme } from './provider.js';
4
4
  export { themeBootScript, watchThemeBoot, persistThemeBoot, captureThemeBoot, releaseThemeBoot, THEME_BOOT_STORAGE_KEY, THEME_MODE_COOKIE, THEME_BOOTING_CLASS, THEME_BOOT_TRANSITION_ATTRIBUTE, BRANDING_STYLE_ID, } from './boot.js';
5
+ export { WCAG, parseColor, oklchToRgb, rgbToOklch, composite, flatten, relativeLuminance, contrastRatio, ensureContrast, mostReadable, toHex, } from './contrast.js';
5
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAGhD,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,WAAW,GACZ,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAGvD,OAAO,EACL,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,+BAA+B,EAC/B,iBAAiB,GAClB,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAGhD,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,WAAW,GACZ,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAGvD,OAAO,EACL,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,+BAA+B,EAC/B,iBAAiB,GAClB,MAAM,WAAW,CAAA;AASlB,OAAO,EACL,IAAI,EACJ,UAAU,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,OAAO,EACP,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,KAAK,GACN,MAAM,eAAe,CAAA"}
package/dist/preset.d.ts CHANGED
@@ -19,19 +19,25 @@ export declare const colorTokens: {
19
19
  readonly cardForeground: "oklch(0 0 0)";
20
20
  readonly popover: "oklch(0.9911 0 0)";
21
21
  readonly popoverForeground: "oklch(0 0 0)";
22
- readonly primary: "oklch(0.55 0.20 131)";
22
+ readonly primary: "oklch(0.51 0.14 175)";
23
23
  readonly primaryForeground: "oklch(1.0000 0 0)";
24
- readonly secondary: "oklch(0.9540 0.0063 131)";
24
+ readonly secondary: "oklch(0.9540 0.0063 175)";
25
25
  readonly secondaryForeground: "oklch(0.1344 0 0)";
26
26
  readonly muted: "oklch(0.9702 0 0)";
27
27
  readonly mutedForeground: "oklch(0.4386 0 0)";
28
- readonly accent: "oklch(0.94 0.03 131)";
29
- readonly accentForeground: "oklch(0.5445 0.1903 131)";
30
- readonly destructive: "oklch(0.6290 0.1902 23.0704)";
28
+ readonly accent: "oklch(0.94 0.03 175)";
29
+ readonly accentForeground: "oklch(0.49 0.11 175)";
30
+ readonly destructive: "oklch(0.52 0.19 23)";
31
31
  readonly destructiveForeground: "oklch(1.0000 0 0)";
32
- readonly border: "oklch(0.9300 0.0094 131)";
33
- readonly input: "oklch(0.9401 0 0)";
32
+ readonly border: "oklch(0.9300 0.0094 175)";
33
+ readonly input: "oklch(0.64 0 0)";
34
34
  readonly ring: "oklch(0 0 0)";
35
+ readonly success: "oklch(0.48 0.13 155)";
36
+ readonly successForeground: "oklch(1 0 0)";
37
+ readonly warning: "oklch(0.5 0.13 60)";
38
+ readonly warningForeground: "oklch(1 0 0)";
39
+ readonly info: "oklch(0.49 0.13 235)";
40
+ readonly infoForeground: "oklch(1 0 0)";
35
41
  };
36
42
  readonly dark: {
37
43
  readonly background: "oklch(0.22 0.01 131)";
@@ -40,35 +46,47 @@ export declare const colorTokens: {
40
46
  readonly cardForeground: "oklch(0.9551 0 0)";
41
47
  readonly popover: "oklch(0.24 0.01 131)";
42
48
  readonly popoverForeground: "oklch(0.9551 0 0)";
43
- readonly primary: "oklch(0.65 0.20 131)";
44
- readonly primaryForeground: "oklch(1.0000 0 0)";
45
- readonly secondary: "oklch(0.29 0.02 131)";
49
+ readonly primary: "oklch(0.65 0.14 175)";
50
+ readonly primaryForeground: "oklch(0.18 0 0)";
51
+ readonly secondary: "oklch(0.29 0.02 175)";
46
52
  readonly secondaryForeground: "oklch(0.9551 0 0)";
47
- readonly muted: "oklch(0.29 0.02 131)";
53
+ readonly muted: "oklch(0.29 0.02 175)";
48
54
  readonly mutedForeground: "oklch(0.7058 0 0)";
49
- readonly accent: "oklch(0.28 0.05 131)";
50
- readonly accentForeground: "oklch(0.80 0.10 131)";
55
+ readonly accent: "oklch(0.28 0.05 175)";
56
+ readonly accentForeground: "oklch(0.80 0.10 175)";
51
57
  readonly destructive: "oklch(0.7106 0.1661 22.2162)";
52
- readonly destructiveForeground: "oklch(1.0000 0 0)";
53
- readonly border: "oklch(0.33 0.02 131)";
54
- readonly input: "oklch(0.33 0.02 131)";
55
- readonly ring: "oklch(0.65 0.20 131)";
58
+ readonly destructiveForeground: "oklch(0.18 0 0)";
59
+ readonly border: "oklch(0.33 0.02 175)";
60
+ readonly input: "oklch(0.55 0.02 175)";
61
+ readonly ring: "oklch(0.8 0.12 175)";
62
+ readonly success: "oklch(0.78 0.14 155)";
63
+ readonly successForeground: "oklch(0.18 0 0)";
64
+ readonly warning: "oklch(0.82 0.14 80)";
65
+ readonly warningForeground: "oklch(0.18 0 0)";
66
+ readonly info: "oklch(0.78 0.11 235)";
67
+ readonly infoForeground: "oklch(0.18 0 0)";
56
68
  };
57
69
  };
58
70
  export declare const chartTokens: {
59
71
  readonly light: {
60
- readonly chart1: "oklch(0.7459 0.1483 156.4499)";
61
- readonly chart2: "oklch(0.55 0.20 131)";
62
- readonly chart3: "oklch(0.7336 0.1758 50.5517)";
63
- readonly chart4: "oklch(0.5828 0.1809 131)";
64
- readonly chart5: "oklch(0.5590 0 0)";
72
+ readonly chart1: "oklch(0.62 0.14 156)";
73
+ readonly chart2: "oklch(0.51 0.14 175)";
74
+ readonly chart3: "oklch(0.64 0.16 50)";
75
+ readonly chart4: "oklch(0.55 0.12 250)";
76
+ readonly chart5: "oklch(0.56 0 0)";
77
+ readonly chart6: "oklch(0.58 0.17 25)";
78
+ readonly chart7: "oklch(0.6 0.12 85)";
79
+ readonly chart8: "oklch(0.55 0.1 210)";
65
80
  };
66
81
  readonly dark: {
67
- readonly chart1: "oklch(0.8003 0.1821 151.7110)";
68
- readonly chart2: "oklch(0.65 0.20 131)";
69
- readonly chart3: "oklch(0.8077 0.1035 19.5706)";
70
- readonly chart4: "oklch(0.6691 0.1569 131)";
71
- readonly chart5: "oklch(0.7058 0 0)";
82
+ readonly chart1: "oklch(0.8 0.18 152)";
83
+ readonly chart2: "oklch(0.72 0.14 175)";
84
+ readonly chart3: "oklch(0.81 0.1 20)";
85
+ readonly chart4: "oklch(0.75 0.11 250)";
86
+ readonly chart5: "oklch(0.71 0 0)";
87
+ readonly chart6: "oklch(0.74 0.15 25)";
88
+ readonly chart7: "oklch(0.82 0.12 85)";
89
+ readonly chart8: "oklch(0.78 0.1 210)";
72
90
  };
73
91
  };
74
92
  export declare const radiusTokens: {
@@ -125,19 +143,25 @@ export declare const themeConfig: {
125
143
  readonly cardForeground: "oklch(0 0 0)";
126
144
  readonly popover: "oklch(0.9911 0 0)";
127
145
  readonly popoverForeground: "oklch(0 0 0)";
128
- readonly primary: "oklch(0.55 0.20 131)";
146
+ readonly primary: "oklch(0.51 0.14 175)";
129
147
  readonly primaryForeground: "oklch(1.0000 0 0)";
130
- readonly secondary: "oklch(0.9540 0.0063 131)";
148
+ readonly secondary: "oklch(0.9540 0.0063 175)";
131
149
  readonly secondaryForeground: "oklch(0.1344 0 0)";
132
150
  readonly muted: "oklch(0.9702 0 0)";
133
151
  readonly mutedForeground: "oklch(0.4386 0 0)";
134
- readonly accent: "oklch(0.94 0.03 131)";
135
- readonly accentForeground: "oklch(0.5445 0.1903 131)";
136
- readonly destructive: "oklch(0.6290 0.1902 23.0704)";
152
+ readonly accent: "oklch(0.94 0.03 175)";
153
+ readonly accentForeground: "oklch(0.49 0.11 175)";
154
+ readonly destructive: "oklch(0.52 0.19 23)";
137
155
  readonly destructiveForeground: "oklch(1.0000 0 0)";
138
- readonly border: "oklch(0.9300 0.0094 131)";
139
- readonly input: "oklch(0.9401 0 0)";
156
+ readonly border: "oklch(0.9300 0.0094 175)";
157
+ readonly input: "oklch(0.64 0 0)";
140
158
  readonly ring: "oklch(0 0 0)";
159
+ readonly success: "oklch(0.48 0.13 155)";
160
+ readonly successForeground: "oklch(1 0 0)";
161
+ readonly warning: "oklch(0.5 0.13 60)";
162
+ readonly warningForeground: "oklch(1 0 0)";
163
+ readonly info: "oklch(0.49 0.13 235)";
164
+ readonly infoForeground: "oklch(1 0 0)";
141
165
  };
142
166
  readonly dark: {
143
167
  readonly background: "oklch(0.22 0.01 131)";
@@ -146,35 +170,47 @@ export declare const themeConfig: {
146
170
  readonly cardForeground: "oklch(0.9551 0 0)";
147
171
  readonly popover: "oklch(0.24 0.01 131)";
148
172
  readonly popoverForeground: "oklch(0.9551 0 0)";
149
- readonly primary: "oklch(0.65 0.20 131)";
150
- readonly primaryForeground: "oklch(1.0000 0 0)";
151
- readonly secondary: "oklch(0.29 0.02 131)";
173
+ readonly primary: "oklch(0.65 0.14 175)";
174
+ readonly primaryForeground: "oklch(0.18 0 0)";
175
+ readonly secondary: "oklch(0.29 0.02 175)";
152
176
  readonly secondaryForeground: "oklch(0.9551 0 0)";
153
- readonly muted: "oklch(0.29 0.02 131)";
177
+ readonly muted: "oklch(0.29 0.02 175)";
154
178
  readonly mutedForeground: "oklch(0.7058 0 0)";
155
- readonly accent: "oklch(0.28 0.05 131)";
156
- readonly accentForeground: "oklch(0.80 0.10 131)";
179
+ readonly accent: "oklch(0.28 0.05 175)";
180
+ readonly accentForeground: "oklch(0.80 0.10 175)";
157
181
  readonly destructive: "oklch(0.7106 0.1661 22.2162)";
158
- readonly destructiveForeground: "oklch(1.0000 0 0)";
159
- readonly border: "oklch(0.33 0.02 131)";
160
- readonly input: "oklch(0.33 0.02 131)";
161
- readonly ring: "oklch(0.65 0.20 131)";
182
+ readonly destructiveForeground: "oklch(0.18 0 0)";
183
+ readonly border: "oklch(0.33 0.02 175)";
184
+ readonly input: "oklch(0.55 0.02 175)";
185
+ readonly ring: "oklch(0.8 0.12 175)";
186
+ readonly success: "oklch(0.78 0.14 155)";
187
+ readonly successForeground: "oklch(0.18 0 0)";
188
+ readonly warning: "oklch(0.82 0.14 80)";
189
+ readonly warningForeground: "oklch(0.18 0 0)";
190
+ readonly info: "oklch(0.78 0.11 235)";
191
+ readonly infoForeground: "oklch(0.18 0 0)";
162
192
  };
163
193
  };
164
194
  readonly charts: {
165
195
  readonly light: {
166
- readonly chart1: "oklch(0.7459 0.1483 156.4499)";
167
- readonly chart2: "oklch(0.55 0.20 131)";
168
- readonly chart3: "oklch(0.7336 0.1758 50.5517)";
169
- readonly chart4: "oklch(0.5828 0.1809 131)";
170
- readonly chart5: "oklch(0.5590 0 0)";
196
+ readonly chart1: "oklch(0.62 0.14 156)";
197
+ readonly chart2: "oklch(0.51 0.14 175)";
198
+ readonly chart3: "oklch(0.64 0.16 50)";
199
+ readonly chart4: "oklch(0.55 0.12 250)";
200
+ readonly chart5: "oklch(0.56 0 0)";
201
+ readonly chart6: "oklch(0.58 0.17 25)";
202
+ readonly chart7: "oklch(0.6 0.12 85)";
203
+ readonly chart8: "oklch(0.55 0.1 210)";
171
204
  };
172
205
  readonly dark: {
173
- readonly chart1: "oklch(0.8003 0.1821 151.7110)";
174
- readonly chart2: "oklch(0.65 0.20 131)";
175
- readonly chart3: "oklch(0.8077 0.1035 19.5706)";
176
- readonly chart4: "oklch(0.6691 0.1569 131)";
177
- readonly chart5: "oklch(0.7058 0 0)";
206
+ readonly chart1: "oklch(0.8 0.18 152)";
207
+ readonly chart2: "oklch(0.72 0.14 175)";
208
+ readonly chart3: "oklch(0.81 0.1 20)";
209
+ readonly chart4: "oklch(0.75 0.11 250)";
210
+ readonly chart5: "oklch(0.71 0 0)";
211
+ readonly chart6: "oklch(0.74 0.15 25)";
212
+ readonly chart7: "oklch(0.82 0.12 85)";
213
+ readonly chart8: "oklch(0.78 0.1 210)";
178
214
  };
179
215
  };
180
216
  readonly radius: {
@@ -1 +1 @@
1
- {"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../src/preset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Cd,CAAA;AAEV,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;CAed,CAAA;AAEV,eAAO,MAAM,YAAY;;;;;;CAMf,CAAA;AAEV,eAAO,MAAM,YAAY;;;;;;;;;CASf,CAAA;AAEV,eAAO,MAAM,UAAU;;;;CAIb,CAAA;AAEV,eAAO,MAAM,cAAc;;CAEjB,CAAA;AAEV;;;;;;GAMG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;CAYf,CAAA;AAEV,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQd,CAAA;AAEV,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAA"}
1
+ {"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../src/preset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDd,CAAA;AAEV,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;CAqBd,CAAA;AAEV,eAAO,MAAM,YAAY;;;;;;CAMf,CAAA;AAEV,eAAO,MAAM,YAAY;;;;;;;;;CASf,CAAA;AAEV,eAAO,MAAM,UAAU;;;;CAIb,CAAA;AAEV,eAAO,MAAM,cAAc;;CAEjB,CAAA;AAEV;;;;;;GAMG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;CAYf,CAAA;AAEV,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQd,CAAA;AAEV,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAA"}
package/dist/preset.js CHANGED
@@ -19,19 +19,25 @@ export const colorTokens = {
19
19
  cardForeground: 'oklch(0 0 0)',
20
20
  popover: 'oklch(0.9911 0 0)',
21
21
  popoverForeground: 'oklch(0 0 0)',
22
- primary: 'oklch(0.55 0.20 131)',
22
+ primary: 'oklch(0.51 0.14 175)',
23
23
  primaryForeground: 'oklch(1.0000 0 0)',
24
- secondary: 'oklch(0.9540 0.0063 131)',
24
+ secondary: 'oklch(0.9540 0.0063 175)',
25
25
  secondaryForeground: 'oklch(0.1344 0 0)',
26
26
  muted: 'oklch(0.9702 0 0)',
27
27
  mutedForeground: 'oklch(0.4386 0 0)',
28
- accent: 'oklch(0.94 0.03 131)',
29
- accentForeground: 'oklch(0.5445 0.1903 131)',
30
- destructive: 'oklch(0.6290 0.1902 23.0704)',
28
+ accent: 'oklch(0.94 0.03 175)',
29
+ accentForeground: 'oklch(0.49 0.11 175)',
30
+ destructive: 'oklch(0.52 0.19 23)',
31
31
  destructiveForeground: 'oklch(1.0000 0 0)',
32
- border: 'oklch(0.9300 0.0094 131)',
33
- input: 'oklch(0.9401 0 0)',
32
+ border: 'oklch(0.9300 0.0094 175)',
33
+ input: 'oklch(0.64 0 0)',
34
34
  ring: 'oklch(0 0 0)',
35
+ success: 'oklch(0.48 0.13 155)',
36
+ successForeground: 'oklch(1 0 0)',
37
+ warning: 'oklch(0.5 0.13 60)',
38
+ warningForeground: 'oklch(1 0 0)',
39
+ info: 'oklch(0.49 0.13 235)',
40
+ infoForeground: 'oklch(1 0 0)',
35
41
  },
36
42
  dark: {
37
43
  background: 'oklch(0.22 0.01 131)',
@@ -40,35 +46,47 @@ export const colorTokens = {
40
46
  cardForeground: 'oklch(0.9551 0 0)',
41
47
  popover: 'oklch(0.24 0.01 131)',
42
48
  popoverForeground: 'oklch(0.9551 0 0)',
43
- primary: 'oklch(0.65 0.20 131)',
44
- primaryForeground: 'oklch(1.0000 0 0)',
45
- secondary: 'oklch(0.29 0.02 131)',
49
+ primary: 'oklch(0.65 0.14 175)',
50
+ primaryForeground: 'oklch(0.18 0 0)',
51
+ secondary: 'oklch(0.29 0.02 175)',
46
52
  secondaryForeground: 'oklch(0.9551 0 0)',
47
- muted: 'oklch(0.29 0.02 131)',
53
+ muted: 'oklch(0.29 0.02 175)',
48
54
  mutedForeground: 'oklch(0.7058 0 0)',
49
- accent: 'oklch(0.28 0.05 131)',
50
- accentForeground: 'oklch(0.80 0.10 131)',
55
+ accent: 'oklch(0.28 0.05 175)',
56
+ accentForeground: 'oklch(0.80 0.10 175)',
51
57
  destructive: 'oklch(0.7106 0.1661 22.2162)',
52
- destructiveForeground: 'oklch(1.0000 0 0)',
53
- border: 'oklch(0.33 0.02 131)',
54
- input: 'oklch(0.33 0.02 131)',
55
- ring: 'oklch(0.65 0.20 131)',
58
+ destructiveForeground: 'oklch(0.18 0 0)',
59
+ border: 'oklch(0.33 0.02 175)',
60
+ input: 'oklch(0.55 0.02 175)',
61
+ ring: 'oklch(0.8 0.12 175)',
62
+ success: 'oklch(0.78 0.14 155)',
63
+ successForeground: 'oklch(0.18 0 0)',
64
+ warning: 'oklch(0.82 0.14 80)',
65
+ warningForeground: 'oklch(0.18 0 0)',
66
+ info: 'oklch(0.78 0.11 235)',
67
+ infoForeground: 'oklch(0.18 0 0)',
56
68
  },
57
69
  };
58
70
  export const chartTokens = {
59
71
  light: {
60
- chart1: 'oklch(0.7459 0.1483 156.4499)',
61
- chart2: 'oklch(0.55 0.20 131)',
62
- chart3: 'oklch(0.7336 0.1758 50.5517)',
63
- chart4: 'oklch(0.5828 0.1809 131)',
64
- chart5: 'oklch(0.5590 0 0)',
72
+ chart1: 'oklch(0.62 0.14 156)',
73
+ chart2: 'oklch(0.51 0.14 175)',
74
+ chart3: 'oklch(0.64 0.16 50)',
75
+ chart4: 'oklch(0.55 0.12 250)',
76
+ chart5: 'oklch(0.56 0 0)',
77
+ chart6: 'oklch(0.58 0.17 25)',
78
+ chart7: 'oklch(0.6 0.12 85)',
79
+ chart8: 'oklch(0.55 0.1 210)',
65
80
  },
66
81
  dark: {
67
- chart1: 'oklch(0.8003 0.1821 151.7110)',
68
- chart2: 'oklch(0.65 0.20 131)',
69
- chart3: 'oklch(0.8077 0.1035 19.5706)',
70
- chart4: 'oklch(0.6691 0.1569 131)',
71
- chart5: 'oklch(0.7058 0 0)',
82
+ chart1: 'oklch(0.8 0.18 152)',
83
+ chart2: 'oklch(0.72 0.14 175)',
84
+ chart3: 'oklch(0.81 0.1 20)',
85
+ chart4: 'oklch(0.75 0.11 250)',
86
+ chart5: 'oklch(0.71 0 0)',
87
+ chart6: 'oklch(0.74 0.15 25)',
88
+ chart7: 'oklch(0.82 0.12 85)',
89
+ chart8: 'oklch(0.78 0.1 210)',
72
90
  },
73
91
  };
74
92
  export const radiusTokens = {
@@ -1 +1 @@
1
- {"version":3,"file":"preset.js","sourceRoot":"","sources":["../src/preset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preset.js","sourceRoot":"","sources":["../src/preset.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@asteby/metacore-theme",
3
- "version": "2.26.0",
3
+ "version": "2.28.0",
4
4
  "description": "Metacore design tokens + Tailwind 4 preset (oklch, shadows, fonts, dark mode)",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -35,6 +35,10 @@
35
35
  "./preset": {
36
36
  "types": "./dist/preset.d.ts",
37
37
  "import": "./dist/preset.js"
38
+ },
39
+ "./contrast": {
40
+ "types": "./dist/contrast.d.ts",
41
+ "import": "./dist/contrast.js"
38
42
  }
39
43
  },
40
44
  "peerDependencies": {
package/styles/glass.css CHANGED
@@ -19,7 +19,14 @@
19
19
  * such as `bg-card` or `hover:bg-muted/50` in `@layer utilities`.
20
20
  */
21
21
 
22
- /* ─── Tokens ─── */
22
+ /* ─── Tokens ───
23
+ * Readability floor: text never sits on the bare gradient. Every text
24
+ * surface (--background on the inset, --card, --popover, --sidebar) keeps an
25
+ * alpha high enough that, composited over the BRIGHTEST point of the backdrop
26
+ * (all three gradient peaks stacked, no blur), its foreground still clears
27
+ * WCAG AA — src/tokens-contrast.test.ts measures exactly that and fails CI
28
+ * when a brand pack lowers those alphas or brightens the blobs too far.
29
+ */
23
30
  [data-ui-theme='glass'] {
24
31
  --radius: 1.1rem;
25
32
  --font-sans: Manrope, Inter, sans-serif;
@@ -38,7 +45,8 @@
38
45
  --accent-foreground: oklch(0.24 0.04 250);
39
46
  /* Inner separators: a dark hairline reads on white glass, a white one doesn't. */
40
47
  --border: oklch(0.35 0.03 250 / 0.12);
41
- --input: oklch(0.35 0.03 250 / 0.14);
48
+ /* Control boundary: ≥ 3:1 on the composited card (WCAG 1.4.11). */
49
+ --input: oklch(0.4 0.03 250 / 0.62);
42
50
  --sidebar: oklch(1 0 0 / 0.45);
43
51
  --sidebar-foreground: oklch(0.26 0.03 250);
44
52
  --sidebar-accent: oklch(1 0 0 / 0.6);
@@ -81,11 +89,15 @@
81
89
  --ui-surface-blur: var(--glass-blur);
82
90
  --ui-card-alpha: 0.5;
83
91
 
84
- background-color: oklch(0.93 0.035 270);
85
- background-image:
86
- radial-gradient(48rem 34rem at 10% -8%, oklch(0.8 0.11 250 / 0.9), transparent 70%),
87
- radial-gradient(40rem 30rem at 105% 20%, oklch(0.78 0.12 295 / 0.75), transparent 68%),
88
- radial-gradient(38rem 28rem at 60% 115%, oklch(0.9 0.12 90 / 0.7), transparent 70%);
92
+ /* Backdrop: brand packs override these three blobs (or --glass-backdrop)
93
+ instead of rewriting background-image. */
94
+ --glass-gradient-1: radial-gradient(48rem 34rem at 10% -8%, oklch(0.8 0.11 250 / 0.9), transparent 70%);
95
+ --glass-gradient-2: radial-gradient(40rem 30rem at 105% 20%, oklch(0.78 0.12 295 / 0.75), transparent 68%);
96
+ --glass-gradient-3: radial-gradient(38rem 28rem at 60% 115%, oklch(0.9 0.12 90 / 0.7), transparent 70%);
97
+ --glass-backdrop: oklch(0.93 0.035 270);
98
+
99
+ background-color: var(--glass-backdrop);
100
+ background-image: var(--glass-gradient-1), var(--glass-gradient-2), var(--glass-gradient-3);
89
101
  background-attachment: fixed;
90
102
  }
91
103
 
@@ -103,7 +115,7 @@
103
115
  --accent: oklch(1 0 0 / 0.1);
104
116
  --accent-foreground: oklch(0.97 0.01 250);
105
117
  --border: oklch(1 0 0 / 0.1);
106
- --input: oklch(1 0 0 / 0.12);
118
+ --input: oklch(1 0 0 / 0.36);
107
119
  --sidebar: oklch(0.2 0.03 255 / 0.5);
108
120
  --sidebar-foreground: oklch(0.94 0.01 250);
109
121
  --sidebar-accent: oklch(1 0 0 / 0.1);
@@ -126,11 +138,13 @@
126
138
  --glass-row-hover: oklch(1 0 0 / 0.05);
127
139
  --glass-thead: oklch(0.25 0.03 255 / 0.7);
128
140
 
129
- background-color: oklch(0.16 0.03 260);
130
- background-image:
131
- radial-gradient(42rem 28rem at 8% -8%, oklch(0.45 0.16 250 / 0.7), transparent 70%),
132
- radial-gradient(32rem 24rem at 100% 0%, oklch(0.4 0.12 200 / 0.55), transparent 68%),
133
- radial-gradient(28rem 22rem at 70% 100%, oklch(0.42 0.14 300 / 0.45), transparent 70%);
141
+ --glass-gradient-1: radial-gradient(42rem 28rem at 8% -8%, oklch(0.45 0.16 250 / 0.7), transparent 70%);
142
+ --glass-gradient-2: radial-gradient(32rem 24rem at 100% 0%, oklch(0.4 0.12 200 / 0.55), transparent 68%);
143
+ --glass-gradient-3: radial-gradient(28rem 22rem at 70% 100%, oklch(0.42 0.14 300 / 0.45), transparent 70%);
144
+ --glass-backdrop: oklch(0.16 0.03 260);
145
+
146
+ background-color: var(--glass-backdrop);
147
+ background-image: var(--glass-gradient-1), var(--glass-gradient-2), var(--glass-gradient-3);
134
148
  background-attachment: fixed;
135
149
  }
136
150
 
package/styles/tokens.css CHANGED
@@ -1,8 +1,18 @@
1
1
  :root {
2
- /* Status hues for chips and badges (text-safe on --background). */
3
- --success: oklch(0.56 0.14 155);
4
- --warning: oklch(0.6 0.15 65);
5
- --info: oklch(0.55 0.13 235);
2
+ /*
3
+ * Contrast contract (enforced by src/tokens-contrast.test.ts, WCAG 2.x AA):
4
+ * every *-foreground ≥ 4.5:1 on its surface; --primary, --destructive and
5
+ * the status hues ≥ 4.5:1 as text on --card (and on their own 14% tint,
6
+ * which is how Badge paints soft chips); --input (control boundary),
7
+ * --ring at 50% (focus) and --chart-1..8 ≥ 3:1 on --card.
8
+ */
9
+ /* Status hues for chips and badges (text-safe on --card and on their tint). */
10
+ --success: oklch(0.48 0.13 155);
11
+ --success-foreground: oklch(1 0 0);
12
+ --warning: oklch(0.5 0.13 60);
13
+ --warning-foreground: oklch(1 0 0);
14
+ --info: oklch(0.49 0.13 235);
15
+ --info-foreground: oklch(1 0 0);
6
16
 
7
17
  /*
8
18
  * Semantic surfaces for floating UI outside the metacore-ui primitives
@@ -27,24 +37,37 @@
27
37
  --card-foreground: oklch(0 0 0);
28
38
  --popover: oklch(0.9911 0 0);
29
39
  --popover-foreground: oklch(0 0 0);
30
- --primary: oklch(0.55 0.14 175);
40
+ --primary: oklch(0.51 0.14 175);
31
41
  --primary-foreground: oklch(1.0000 0 0);
32
42
  --secondary: oklch(0.9540 0.0063 175);
33
43
  --secondary-foreground: oklch(0.1344 0 0);
34
44
  --muted: oklch(0.9702 0 0);
35
45
  --muted-foreground: oklch(0.4386 0 0);
36
46
  --accent: oklch(0.94 0.03 175);
37
- --accent-foreground: oklch(0.5445 0.12 175);
38
- --destructive: oklch(0.6290 0.1902 23.0704);
47
+ --accent-foreground: oklch(0.49 0.11 175);
48
+ --destructive: oklch(0.52 0.19 23);
39
49
  --destructive-foreground: oklch(1.0000 0 0);
40
50
  --border: oklch(0.9300 0.0094 175);
41
- --input: oklch(0.9401 0 0);
51
+ /* Control boundary (inputs, selects, checkboxes): 1.4.11 needs 3:1. */
52
+ --input: oklch(0.64 0 0);
42
53
  --ring: oklch(0 0 0);
43
- --chart-1: oklch(0.7459 0.1483 156.4499);
44
- --chart-2: oklch(0.55 0.14 175);
45
- --chart-3: oklch(0.7336 0.1758 50.5517);
46
- --chart-4: oklch(0.5828 0.12 175);
47
- --chart-5: oklch(0.5590 0 0);
54
+ /* Categorical series: distinct hues, each ≥ 3:1 on --card. */
55
+ --chart-1: oklch(0.62 0.14 156);
56
+ --chart-2: oklch(0.51 0.14 175);
57
+ --chart-3: oklch(0.64 0.16 50);
58
+ --chart-4: oklch(0.55 0.12 250);
59
+ --chart-5: oklch(0.56 0 0);
60
+ --chart-6: oklch(0.58 0.17 25);
61
+ --chart-7: oklch(0.6 0.12 85);
62
+ --chart-8: oklch(0.55 0.1 210);
63
+ /* Dashboard widget accents (@asteby/metacore-runtime-react CHART_PALETTE):
64
+ -600 shades, ≥ 3:1 on --card. */
65
+ --color-widget-emerald: #059669;
66
+ --color-widget-sky: #0284c7;
67
+ --color-widget-violet: #7c3aed;
68
+ --color-widget-amber: #d97706;
69
+ --color-widget-rose: #e11d48;
70
+ --color-widget-slate: #475569;
48
71
  --sidebar: oklch(0.9777 0.0051 175);
49
72
  --sidebar-foreground: oklch(0 0 0);
50
73
  --sidebar-primary: oklch(0 0 0);
@@ -91,7 +114,7 @@
91
114
  --popover: oklch(0.24 0.01 131);
92
115
  --popover-foreground: oklch(0.9551 0 0);
93
116
  --primary: oklch(0.65 0.14 175);
94
- --primary-foreground: oklch(1.0000 0 0);
117
+ --primary-foreground: oklch(0.18 0 0);
95
118
  --secondary: oklch(0.29 0.02 175);
96
119
  --secondary-foreground: oklch(0.9551 0 0);
97
120
  --muted: oklch(0.29 0.02 175);
@@ -99,15 +122,26 @@
99
122
  --accent: oklch(0.28 0.05 175);
100
123
  --accent-foreground: oklch(0.80 0.10 175);
101
124
  --destructive: oklch(0.7106 0.1661 22.2162);
102
- --destructive-foreground: oklch(1.0000 0 0);
125
+ --destructive-foreground: oklch(0.18 0 0);
103
126
  --border: oklch(0.33 0.02 175);
104
- --input: oklch(0.33 0.02 175);
105
- --ring: oklch(0.65 0.14 175);
106
- --chart-1: oklch(0.8003 0.1821 151.7110);
107
- --chart-2: oklch(0.65 0.14 175);
108
- --chart-3: oklch(0.8077 0.1035 19.5706);
109
- --chart-4: oklch(0.6691 0.10 175);
110
- --chart-5: oklch(0.7058 0 0);
127
+ --input: oklch(0.55 0.02 175);
128
+ --ring: oklch(0.8 0.12 175);
129
+ /* High lightness on the dark canvas: every series ≥ 3:1 on --card. */
130
+ --chart-1: oklch(0.8 0.18 152);
131
+ --chart-2: oklch(0.72 0.14 175);
132
+ --chart-3: oklch(0.81 0.1 20);
133
+ --chart-4: oklch(0.75 0.11 250);
134
+ --chart-5: oklch(0.71 0 0);
135
+ --chart-6: oklch(0.74 0.15 25);
136
+ --chart-7: oklch(0.82 0.12 85);
137
+ --chart-8: oklch(0.78 0.1 210);
138
+ /* Widget accents: -400 shades, ≥ 3:1 on the dark --card. */
139
+ --color-widget-emerald: #34d399;
140
+ --color-widget-sky: #38bdf8;
141
+ --color-widget-violet: #a78bfa;
142
+ --color-widget-amber: #fbbf24;
143
+ --color-widget-rose: #fb7185;
144
+ --color-widget-slate: #94a3b8;
111
145
  --sidebar: oklch(0.20 0.01 131);
112
146
  --sidebar-foreground: oklch(0.9551 0 0);
113
147
  --sidebar-primary: oklch(0.65 0.14 175);
@@ -115,7 +149,7 @@
115
149
  --sidebar-accent: oklch(0.29 0.02 175);
116
150
  --sidebar-accent-foreground: oklch(0.65 0.14 175);
117
151
  --sidebar-border: oklch(0.33 0.02 175);
118
- --sidebar-ring: oklch(0.65 0.14 175);
152
+ --sidebar-ring: oklch(0.8 0.12 175);
119
153
 
120
154
  --radius: 1.4rem;
121
155
  --shadow-x: 0px;
@@ -133,8 +167,11 @@
133
167
  --shadow-xl: 0px 2px 3px 0px hsl(0 0% 0% / 0.16), 0px 8px 10px -1px hsl(0 0% 0% / 0.16);
134
168
  --shadow-2xl: 0px 2px 3px 0px hsl(0 0% 0% / 0.40);
135
169
  --success: oklch(0.78 0.14 155);
170
+ --success-foreground: oklch(0.18 0 0);
136
171
  --warning: oklch(0.82 0.14 80);
172
+ --warning-foreground: oklch(0.18 0 0);
137
173
  --info: oklch(0.78 0.11 235);
174
+ --info-foreground: oklch(0.18 0 0);
138
175
  }
139
176
 
140
177
  @theme inline {
@@ -162,6 +199,15 @@
162
199
  --color-chart-3: var(--chart-3);
163
200
  --color-chart-4: var(--chart-4);
164
201
  --color-chart-5: var(--chart-5);
202
+ --color-chart-6: var(--chart-6);
203
+ --color-chart-7: var(--chart-7);
204
+ --color-chart-8: var(--chart-8);
205
+ --color-success: var(--success);
206
+ --color-success-foreground: var(--success-foreground);
207
+ --color-warning: var(--warning);
208
+ --color-warning-foreground: var(--warning-foreground);
209
+ --color-info: var(--info);
210
+ --color-info-foreground: var(--info-foreground);
165
211
  --color-sidebar: var(--sidebar);
166
212
  --color-sidebar-foreground: var(--sidebar-foreground);
167
213
  --color-sidebar-primary: var(--sidebar-primary);