@actioneer/ads 0.7.0 → 1.0.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/DESIGN.md +597 -0
- package/components/ai-elements/agent-trace.js +1 -1
- package/components/alert.js +3 -3
- package/components/answer.js +2 -2
- package/components/assistant-ui/action-bar.js +1 -1
- package/components/assistant-ui/attachment.js +12 -12
- package/components/assistant-ui/badge.js +18 -18
- package/components/assistant-ui/composer-harness.js +5 -4
- package/components/assistant-ui/composer-trigger-popover.js +9 -9
- package/components/assistant-ui/composer.js +32 -32
- package/components/assistant-ui/directive-text.js +5 -5
- package/components/assistant-ui/image.js +61 -61
- package/components/assistant-ui/markdown-text.js +7 -7
- package/components/assistant-ui/message-timing.js +1 -1
- package/components/assistant-ui/selection-toolbar.js +7 -7
- package/components/assistant-ui/sources.js +1 -1
- package/components/avatar.d.ts +1 -1
- package/components/avatar.js +35 -35
- package/components/body-page-header.d.ts +1 -1
- package/components/body-page-header.js +1 -1
- package/components/chart.js +1 -1
- package/components/chip.js +8 -8
- package/components/divider.js +25 -25
- package/components/drawer.d.ts +2 -14
- package/components/drawer.js +103 -109
- package/components/field.js +9 -9
- package/components/index.d.ts +1 -0
- package/components/index.js +466 -465
- package/components/infinite-canvas.js +1 -1
- package/components/input.js +21 -19
- package/components/modal.js +26 -26
- package/components/page-body.js +6 -6
- package/components/page-header.js +1 -1
- package/components/pagination.js +1 -1
- package/components/pixel-blast-svg.js +71 -73
- package/components/search-disclosure.d.ts +18 -0
- package/components/search-disclosure.js +106 -0
- package/components/sidebar.js +60 -53
- package/components/table.d.ts +1 -1
- package/components/table.js +73 -74
- package/components/tabs.js +68 -59
- package/components/tree.js +17 -17
- package/components/typography.d.ts +1 -1
- package/components/typography.js +1 -1
- package/components/ui/button.d.ts +1 -1
- package/components/ui/button.js +4 -4
- package/components/ui/dialog.js +23 -23
- package/components/viz-charts.js +36 -36
- package/demo/components/add-to-artifact.js +3 -2
- package/lib/cn.js +7 -7
- package/lib/icons.d.ts +4 -0
- package/lib/icons.js +105 -104
- package/llms.txt +52 -49
- package/manifest.json +258 -235
- package/package.json +2 -1
- package/styles.css +171 -153
- package/theme.css +162 -140
package/theme.css
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
/*
|
|
9
9
|
* ============================================================
|
|
10
10
|
* ADS 1.0 — Design Tokens
|
|
11
|
-
* Palette:
|
|
11
|
+
* Palette: warm greys + product green
|
|
12
12
|
* Typeface: Aribau Grotesk
|
|
13
13
|
* ============================================================
|
|
14
14
|
*/
|
|
@@ -26,22 +26,33 @@
|
|
|
26
26
|
--font-mono: "JetBrains Mono Variable", ui-monospace, SFMono-Regular,
|
|
27
27
|
"SF Mono", Menlo, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
28
28
|
|
|
29
|
-
/* ---- Type scale ----
|
|
30
|
-
Root stays 16px so spacing is unaffected. */
|
|
31
|
-
--text-
|
|
32
|
-
--text-
|
|
33
|
-
--text-
|
|
34
|
-
--text-
|
|
35
|
-
--text-
|
|
36
|
-
--text-
|
|
37
|
-
--text-
|
|
38
|
-
--text-
|
|
39
|
-
--text-
|
|
40
|
-
--text-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
--text-
|
|
44
|
-
--text-
|
|
29
|
+
/* ---- Type scale ---- seven canonical steps: XS · S · M · L · XL · 2XL · 3XL.
|
|
30
|
+
Roles follow the agent workflow. Root stays 16px so spacing is unaffected. */
|
|
31
|
+
--text-xs: 0.625rem; /* 10px · compact chips and micro metadata */
|
|
32
|
+
--text-xs--line-height: 0.875rem; /* 14px */
|
|
33
|
+
--text-s: 0.75rem; /* 12px · table headers and uppercase kickers */
|
|
34
|
+
--text-s--line-height: 1rem; /* 16px */
|
|
35
|
+
--text-m: 0.875rem; /* 14px · default body, table cells, record names */
|
|
36
|
+
--text-m--line-height: 1.25rem; /* 20px */
|
|
37
|
+
--text-l: 1rem; /* 16px · tabs, form labels, and section titles */
|
|
38
|
+
--text-l--line-height: 1.375rem; /* 22px */
|
|
39
|
+
--text-xl: 1.125rem; /* 18px · metric values and subtitles */
|
|
40
|
+
--text-xl--line-height: 1.5rem; /* 24px */
|
|
41
|
+
--text-2xl: 1.5rem; /* 24px · page titles */
|
|
42
|
+
--text-2xl--line-height: 2rem; /* 32px */
|
|
43
|
+
--text-3xl: 2rem; /* 32px · large data display */
|
|
44
|
+
--text-3xl--line-height: 2.5rem; /* 40px */
|
|
45
|
+
|
|
46
|
+
/* This is the complete ADS scale. Remove Tailwind's larger default steps so
|
|
47
|
+
Storybook and product code cannot silently introduce an eighth size. */
|
|
48
|
+
--text-4xl: initial;
|
|
49
|
+
--text-5xl: initial;
|
|
50
|
+
--text-6xl: initial;
|
|
51
|
+
--text-7xl: initial;
|
|
52
|
+
--text-8xl: initial;
|
|
53
|
+
--text-9xl: initial;
|
|
54
|
+
|
|
55
|
+
/* Compatibility aliases keep existing ADS consumers on the canonical scale. */
|
|
45
56
|
--text-sm: var(--text-s);
|
|
46
57
|
--text-sm--line-height: var(--text-s--line-height);
|
|
47
58
|
--text-base: var(--text-m);
|
|
@@ -51,10 +62,10 @@
|
|
|
51
62
|
|
|
52
63
|
/* ---- Foundation palette ----
|
|
53
64
|
Canonical primitive names:
|
|
54
|
-
G1…G12 = Green ·
|
|
65
|
+
G1…G12 = Green · WG1…WG12 = Warm Grey.
|
|
55
66
|
Each ramp progresses from light backgrounds and interactive fills through
|
|
56
67
|
supporting tones to solid colors and accessible text. Neutral UI borders
|
|
57
|
-
are intentionally restricted to
|
|
68
|
+
are intentionally restricted to WG3–WG5. ---- */
|
|
58
69
|
--color-g1: #f7f9f7;
|
|
59
70
|
--color-g2: #eef5f0;
|
|
60
71
|
--color-g3: #e2efe5;
|
|
@@ -68,33 +79,33 @@
|
|
|
68
79
|
--color-g11: #1f623b;
|
|
69
80
|
--color-g12: #183c28;
|
|
70
81
|
|
|
71
|
-
--color-
|
|
72
|
-
--color-
|
|
73
|
-
--color-
|
|
74
|
-
--color-
|
|
75
|
-
--color-
|
|
76
|
-
--color-
|
|
77
|
-
--color-
|
|
78
|
-
--color-
|
|
79
|
-
--color-
|
|
80
|
-
--color-
|
|
81
|
-
--color-
|
|
82
|
-
--color-
|
|
83
|
-
|
|
84
|
-
/* Deprecated
|
|
85
|
-
aliases so existing consumer utilities continue to render
|
|
86
|
-
--color-
|
|
87
|
-
--color-
|
|
88
|
-
--color-
|
|
89
|
-
--color-
|
|
90
|
-
--color-
|
|
91
|
-
--color-
|
|
92
|
-
--color-
|
|
93
|
-
--color-
|
|
94
|
-
--color-
|
|
95
|
-
--color-
|
|
96
|
-
--color-
|
|
97
|
-
--color-
|
|
82
|
+
--color-wg1: #f5f5f3;
|
|
83
|
+
--color-wg2: #f1f1ef;
|
|
84
|
+
--color-wg3: #ececea;
|
|
85
|
+
--color-wg4: #e5e5e2;
|
|
86
|
+
--color-wg5: #dcdcd8;
|
|
87
|
+
--color-wg6: #d1d1cc;
|
|
88
|
+
--color-wg7: #c2c2bc;
|
|
89
|
+
--color-wg8: #a6a69f;
|
|
90
|
+
--color-wg9: #777771;
|
|
91
|
+
--color-wg10: #686863;
|
|
92
|
+
--color-wg11: #4b4b47;
|
|
93
|
+
--color-wg12: #20201e;
|
|
94
|
+
|
|
95
|
+
/* Deprecated Neutral Grey names resolve to the canonical Warm Grey ramp.
|
|
96
|
+
Keep these aliases so existing consumer utilities continue to render. */
|
|
97
|
+
--color-ng1: var(--color-wg1);
|
|
98
|
+
--color-ng2: var(--color-wg2);
|
|
99
|
+
--color-ng3: var(--color-wg3);
|
|
100
|
+
--color-ng4: var(--color-wg4);
|
|
101
|
+
--color-ng5: var(--color-wg5);
|
|
102
|
+
--color-ng6: var(--color-wg6);
|
|
103
|
+
--color-ng7: var(--color-wg7);
|
|
104
|
+
--color-ng8: var(--color-wg8);
|
|
105
|
+
--color-ng9: var(--color-wg9);
|
|
106
|
+
--color-ng10: var(--color-wg10);
|
|
107
|
+
--color-ng11: var(--color-wg11);
|
|
108
|
+
--color-ng12: var(--color-wg12);
|
|
98
109
|
|
|
99
110
|
--color-white: #ffffff;
|
|
100
111
|
|
|
@@ -112,31 +123,31 @@
|
|
|
112
123
|
--color-green-900: var(--color-g11);
|
|
113
124
|
--color-green-950: var(--color-g12);
|
|
114
125
|
|
|
115
|
-
--color-grey-50: var(--color-
|
|
116
|
-
--color-grey-100: var(--color-
|
|
117
|
-
--color-grey-200: var(--color-
|
|
118
|
-
--color-grey-300: var(--color-
|
|
119
|
-
--color-grey-400: var(--color-
|
|
120
|
-
--color-grey-500: var(--color-
|
|
121
|
-
--color-grey-600: var(--color-
|
|
122
|
-
--color-grey-700: var(--color-
|
|
123
|
-
--color-grey-800: var(--color-
|
|
124
|
-
--color-grey-850: var(--color-
|
|
125
|
-
--color-grey-900: var(--color-
|
|
126
|
-
--color-grey-950: var(--color-
|
|
127
|
-
|
|
128
|
-
--color-ink-50: var(--color-
|
|
129
|
-
--color-ink-100: var(--color-
|
|
130
|
-
--color-ink-200: var(--color-
|
|
131
|
-
--color-ink-300: var(--color-
|
|
132
|
-
--color-ink-400: var(--color-
|
|
133
|
-
--color-ink-500: var(--color-
|
|
134
|
-
--color-ink-600: var(--color-
|
|
135
|
-
--color-ink-700: var(--color-
|
|
136
|
-
--color-ink-800: var(--color-
|
|
137
|
-
--color-ink-850: var(--color-
|
|
138
|
-
--color-ink-900: var(--color-
|
|
139
|
-
--color-ink-950: var(--color-
|
|
126
|
+
--color-grey-50: var(--color-wg1);
|
|
127
|
+
--color-grey-100: var(--color-wg2);
|
|
128
|
+
--color-grey-200: var(--color-wg3);
|
|
129
|
+
--color-grey-300: var(--color-wg4);
|
|
130
|
+
--color-grey-400: var(--color-wg5);
|
|
131
|
+
--color-grey-500: var(--color-wg6);
|
|
132
|
+
--color-grey-600: var(--color-wg7);
|
|
133
|
+
--color-grey-700: var(--color-wg8);
|
|
134
|
+
--color-grey-800: var(--color-wg9);
|
|
135
|
+
--color-grey-850: var(--color-wg10);
|
|
136
|
+
--color-grey-900: var(--color-wg11);
|
|
137
|
+
--color-grey-950: var(--color-wg12);
|
|
138
|
+
|
|
139
|
+
--color-ink-50: var(--color-wg1);
|
|
140
|
+
--color-ink-100: var(--color-wg2);
|
|
141
|
+
--color-ink-200: var(--color-wg3);
|
|
142
|
+
--color-ink-300: var(--color-wg4);
|
|
143
|
+
--color-ink-400: var(--color-wg5);
|
|
144
|
+
--color-ink-500: var(--color-wg6);
|
|
145
|
+
--color-ink-600: var(--color-wg7);
|
|
146
|
+
--color-ink-700: var(--color-wg8);
|
|
147
|
+
--color-ink-800: var(--color-wg9);
|
|
148
|
+
--color-ink-850: var(--color-wg10);
|
|
149
|
+
--color-ink-900: var(--color-wg11);
|
|
150
|
+
--color-ink-950: var(--color-wg12);
|
|
140
151
|
|
|
141
152
|
/* ---- Semantic accent ramps ---- */
|
|
142
153
|
/* Success uses the lichen lime family and stays status-only. The original
|
|
@@ -187,21 +198,21 @@
|
|
|
187
198
|
/* Demo logo indigo — source for artifact canvas wash. */
|
|
188
199
|
--color-brand-mark: #2e1065;
|
|
189
200
|
|
|
190
|
-
/* ---- Radii ----
|
|
201
|
+
/* ---- Radii ---- four canonical steps: XS · S · M · L.
|
|
191
202
|
M (6px) is the default corner radius. */
|
|
192
203
|
--radius-xs: 0.125rem; /* 2px · micro details */
|
|
193
204
|
--radius-s: 0.25rem; /* 4px · compact controls */
|
|
194
205
|
--radius-m: 0.375rem; /* 6px · default controls and surfaces */
|
|
195
|
-
--radius-l: 0.5rem; /* 8px · menus and
|
|
196
|
-
--radius-xl: 0.75rem; /* 12px · large panels and feature surfaces */
|
|
206
|
+
--radius-l: 0.5rem; /* 8px · menus, cards, and large surfaces */
|
|
197
207
|
|
|
198
208
|
/* Compatibility aliases preserve existing ADS utilities. */
|
|
199
209
|
--radius-sm: var(--radius-s);
|
|
200
210
|
--radius-md: var(--radius-m);
|
|
201
211
|
--radius-lg: var(--radius-l);
|
|
202
|
-
--radius-
|
|
203
|
-
--radius-
|
|
204
|
-
--radius-
|
|
212
|
+
--radius-xl: var(--radius-l);
|
|
213
|
+
--radius-2xl: var(--radius-l);
|
|
214
|
+
--radius-3xl: var(--radius-l);
|
|
215
|
+
--radius-4xl: var(--radius-l);
|
|
205
216
|
/* Shape-only exception for avatars, icon buttons, progress tracks, chips,
|
|
206
217
|
and badges. It is not part of the corner-radius scale. */
|
|
207
218
|
--radius-full: 9999px;
|
|
@@ -211,7 +222,7 @@
|
|
|
211
222
|
convention). */
|
|
212
223
|
--radius-dot: 2px;
|
|
213
224
|
|
|
214
|
-
/* ---- Elevation ---- Shopify-inspired 0–600 ladder, recolored with
|
|
225
|
+
/* ---- Elevation ---- Shopify-inspired 0–600 ladder, recolored with WG12.
|
|
215
226
|
Geometry and opacity increase together; static surfaces remain at 0. */
|
|
216
227
|
--shadow-0: none;
|
|
217
228
|
--shadow-100: 0 1px 0 0 rgb(32 32 32 / 0.07);
|
|
@@ -227,7 +238,7 @@
|
|
|
227
238
|
|
|
228
239
|
/* Pinned-table-column smudges — whisper-soft directional casts shown only
|
|
229
240
|
while content is hidden behind a sticky column (Table is scroll-aware).
|
|
230
|
-
Deep negative spread keeps the edge feathered; the tint is
|
|
241
|
+
Deep negative spread keeps the edge feathered; the tint is warm grey. */
|
|
231
242
|
--shadow-table-smudge-left: 8px 0 24px -14px rgb(32 32 32 / 0.05);
|
|
232
243
|
--shadow-table-smudge-right: -8px 0 24px -14px rgb(32 32 32 / 0.05);
|
|
233
244
|
|
|
@@ -253,8 +264,8 @@
|
|
|
253
264
|
--sidebar-item: 2rem; /* 32px — collapsed rail hit target (square) */
|
|
254
265
|
--sidebar-logo: 1.25rem; /* 20px — brand mark, centered in a --sidebar-item square */
|
|
255
266
|
--sidebar-text-indent: 2.375rem; /* px-3 + icon size-4 + gap-2.5 — history rows align to nav-item text */
|
|
256
|
-
--sidebar-navigation-text-size: var(--text-m); /*
|
|
257
|
-
--sidebar-section-label-size:
|
|
267
|
+
--sidebar-navigation-text-size: var(--text-m); /* 14px — sidebar actions, items, history, and account text */
|
|
268
|
+
--sidebar-section-label-size: var(--text-s); /* 12px — section and history labels */
|
|
258
269
|
--panel-header-height: 2.75rem; /* 44px — Panel / toolbar header */
|
|
259
270
|
--aside-width: 20rem; /* 320px — right-hand panel column */
|
|
260
271
|
|
|
@@ -267,7 +278,7 @@
|
|
|
267
278
|
--thread-max-width: 44rem; /* chat column cap — readable prose measure, all panes */
|
|
268
279
|
--thread-max-width-wide: 64rem; /* rich-content breakout cap (tables/charts/tool cards) on wide panes; prose keeps --thread-max-width */
|
|
269
280
|
--composer-bg: var(--elevated); /* pure white composer surface */
|
|
270
|
-
--composer-radius: var(--radius-
|
|
281
|
+
--composer-radius: var(--radius-l);
|
|
271
282
|
--composer-padding: 0.5rem;
|
|
272
283
|
--composer-placeholder-max-h: calc(var(--text-m--line-height) * 2); /* rotating placeholder clamp — two lines of the input's own rhythm, so it can never overlap the accessory row */
|
|
273
284
|
--chat-texture-opacity: 0.06; /* welcome-state halftone wash */
|
|
@@ -307,6 +318,7 @@
|
|
|
307
318
|
* @theme inline exposes them as utilities (bg-background, text-primary, …).
|
|
308
319
|
*/
|
|
309
320
|
@theme inline {
|
|
321
|
+
/* The shell canvas and its ink: the ground between top-level panels. */
|
|
310
322
|
--color-background: var(--background);
|
|
311
323
|
--color-foreground: var(--foreground);
|
|
312
324
|
|
|
@@ -323,13 +335,16 @@
|
|
|
323
335
|
--color-secondary: var(--text-secondary);
|
|
324
336
|
--color-tertiary: var(--text-tertiary);
|
|
325
337
|
|
|
338
|
+
/* One continuous recess inside a white surface, never a screen-level ground. */
|
|
326
339
|
--color-surface: var(--surface);
|
|
327
340
|
--color-surface-foreground: var(--surface-foreground);
|
|
328
341
|
--color-elevated: var(--elevated);
|
|
329
342
|
|
|
343
|
+
/* The hover and row-state wash: interaction, not a default item background. */
|
|
330
344
|
--color-muted: var(--muted);
|
|
331
345
|
--color-muted-foreground: var(--muted-foreground);
|
|
332
346
|
|
|
347
|
+
/* The white working plane that sits on the canvas, and the specimen hairline. */
|
|
333
348
|
--color-card: var(--card);
|
|
334
349
|
--color-card-foreground: var(--card-foreground);
|
|
335
350
|
--color-specimen-stroke: var(--specimen-stroke);
|
|
@@ -351,12 +366,15 @@
|
|
|
351
366
|
/* Quiet fill — avatars, chips, and disabled controls */
|
|
352
367
|
--color-fill: var(--fill);
|
|
353
368
|
--color-fill-foreground: var(--fill-foreground);
|
|
369
|
+
/* Table surfaces: the white tray, its hairlines, and header ink. */
|
|
354
370
|
--color-table-shell: var(--table-shell);
|
|
355
371
|
--color-table-stroke: var(--table-stroke);
|
|
356
372
|
--color-table-header-foreground: var(--table-header-foreground);
|
|
357
373
|
|
|
374
|
+
/* The artifact sheet: white warmed by a trace of the brand mark. */
|
|
358
375
|
--color-artifact-canvas: var(--artifact-canvas);
|
|
359
376
|
|
|
377
|
+
/* The active and selected wash, one step above hover. */
|
|
360
378
|
--color-accent: var(--accent);
|
|
361
379
|
--color-accent-foreground: var(--accent-foreground);
|
|
362
380
|
|
|
@@ -368,12 +386,14 @@
|
|
|
368
386
|
/* Amber-500 fill kept (it IS the caution signal); dark ink foreground
|
|
369
387
|
instead of white = 6.94:1 (white on amber was 2.35:1, failed even 3:1). */
|
|
370
388
|
--color-warning: var(--color-warning-500);
|
|
371
|
-
--color-warning-foreground: var(--color-
|
|
389
|
+
--color-warning-foreground: var(--color-wg12);
|
|
390
|
+
/* Danger and info: solid semantic fills carrying white foregrounds. */
|
|
372
391
|
--color-danger: var(--color-danger-600);
|
|
373
392
|
--color-danger-foreground: var(--color-white);
|
|
374
393
|
--color-info: var(--color-info-600);
|
|
375
394
|
--color-info-foreground: var(--color-white);
|
|
376
395
|
|
|
396
|
+
/* The neutral stroke ladder: every 1px UI border stays within WG3 to WG5. */
|
|
377
397
|
--color-border-primary: var(--border-primary);
|
|
378
398
|
--color-border-secondary: var(--border-secondary);
|
|
379
399
|
--color-border-tertiary: var(--border-tertiary);
|
|
@@ -383,6 +403,7 @@
|
|
|
383
403
|
--color-menu-stroke: var(--menu-stroke);
|
|
384
404
|
--color-toast-stroke: var(--toast-stroke);
|
|
385
405
|
--color-tree-stroke: var(--tree-stroke);
|
|
406
|
+
/* Focus ring and scrim, both translucent warm ink. */
|
|
386
407
|
--color-ring: var(--ring);
|
|
387
408
|
--color-overlay: var(--overlay);
|
|
388
409
|
|
|
@@ -413,36 +434,37 @@
|
|
|
413
434
|
|
|
414
435
|
/* ---- Theme (light only) ---- */
|
|
415
436
|
:root {
|
|
416
|
-
/* Surfaces and achromatic text/actions point into
|
|
437
|
+
/* Surfaces and achromatic text/actions point into WG; the primary CTA
|
|
417
438
|
points into G. */
|
|
418
|
-
--background: var(--color-
|
|
419
|
-
--foreground: var(--color-
|
|
420
|
-
|
|
421
|
-
/* Both surface contexts point directly into the approved
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
--text-on-white-
|
|
426
|
-
--text-on-white-
|
|
427
|
-
--text-on-
|
|
428
|
-
--text-on-warm-grey-
|
|
429
|
-
--text-on-warm-grey-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
--text-
|
|
435
|
-
--text-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
--surface
|
|
439
|
+
--background: var(--color-wg2); /* step 2 · canvas */
|
|
440
|
+
--foreground: var(--color-wg12); /* step 12 */
|
|
441
|
+
|
|
442
|
+
/* Both surface contexts point directly into the approved WG text steps.
|
|
443
|
+
WG9 is the tertiary/de-emphasis step for nonessential metadata. It clears
|
|
444
|
+
normal-text AA on White; use Secondary when normal text on WG2 must clear
|
|
445
|
+
AA. */
|
|
446
|
+
--text-on-white-primary: var(--color-wg12); /* 16.32:1 · AAA */
|
|
447
|
+
--text-on-white-secondary: var(--color-wg11); /* 8.76:1 · AAA */
|
|
448
|
+
--text-on-white-tertiary: var(--color-wg9); /* 4.50:1 · AA */
|
|
449
|
+
--text-on-warm-grey-primary: var(--color-wg12); /* 14.43:1 on WG2 · AAA */
|
|
450
|
+
--text-on-warm-grey-secondary: var(--color-wg11); /* 7.75:1 on WG2 · AAA */
|
|
451
|
+
--text-on-warm-grey-tertiary: var(--color-wg9); /* 3.98:1 on WG2 · large text AA */
|
|
452
|
+
|
|
453
|
+
/* Existing context-free utilities remain conservative compatibility aliases
|
|
454
|
+
across WG2–WG4 and White until their call sites adopt a surface role. */
|
|
455
|
+
--text-primary: var(--color-wg12); /* 12.93:1 AAA (WG4 min surf) */
|
|
456
|
+
--text-secondary: var(--color-wg11); /* 6.94:1 AA (WG4 min surf) */
|
|
457
|
+
--text-tertiary: color-mix(in srgb, var(--color-wg10) 80%, var(--color-wg11)); /* 4.86:1 AA (WG4) */
|
|
458
|
+
|
|
459
|
+
--surface: var(--color-wg3); /* step 3 · tinted canvas */
|
|
460
|
+
--surface-foreground: var(--color-wg12);
|
|
439
461
|
--elevated: var(--color-white); /* pure white base */
|
|
440
462
|
|
|
441
|
-
--muted: var(--color-
|
|
442
|
-
--muted-foreground: var(--color-
|
|
463
|
+
--muted: var(--color-wg4); /* step 4 */
|
|
464
|
+
--muted-foreground: var(--color-wg11); /* step 11 · readable UI text */
|
|
443
465
|
|
|
444
466
|
--card: var(--color-white); /* pure white base */
|
|
445
|
-
--card-foreground: var(--color-
|
|
467
|
+
--card-foreground: var(--color-wg12);
|
|
446
468
|
|
|
447
469
|
/* Studio green is deliberately isolated to the primary CTA role (roughly
|
|
448
470
|
5–10% of a screen). Selection controls keep using neutral `brand` below,
|
|
@@ -455,36 +477,36 @@
|
|
|
455
477
|
|
|
456
478
|
/* Neutral action role. The `brand` name remains as a compatibility API,
|
|
457
479
|
and shared selection/control states intentionally remain achromatic. */
|
|
458
|
-
--brand: var(--color-
|
|
480
|
+
--brand: var(--color-wg12); /* darkest neutral action */
|
|
459
481
|
--brand-foreground: var(--color-white);
|
|
460
|
-
--brand-hover: var(--color-
|
|
461
|
-
--brand-text: var(--color-
|
|
482
|
+
--brand-hover: var(--color-wg11); /* lighter hover lift */
|
|
483
|
+
--brand-text: var(--color-wg12); /* action text / links */
|
|
462
484
|
|
|
463
|
-
/* Interactive
|
|
464
|
-
--table-row-hover: var(--color-
|
|
465
|
-
--table-row-selected: var(--color-
|
|
485
|
+
/* Interactive row hover/focus uses the WG3 highlight wash. */
|
|
486
|
+
--table-row-hover: var(--color-wg3);
|
|
487
|
+
--table-row-selected: var(--color-wg1);
|
|
466
488
|
|
|
467
|
-
/* Quiet component fill.
|
|
489
|
+
/* Quiet component fill. WG3 is the first interactive-background
|
|
468
490
|
step, so this remains visible on both white cards and the step-2 canvas. */
|
|
469
|
-
--fill: var(--color-
|
|
470
|
-
--fill-foreground: var(--color-
|
|
491
|
+
--fill: var(--color-wg3); /* step 3 · default component fill */
|
|
492
|
+
--fill-foreground: var(--color-wg12);
|
|
471
493
|
|
|
472
|
-
--accent: var(--color-
|
|
473
|
-
--accent-foreground: var(--color-
|
|
494
|
+
--accent: var(--color-wg5); /* step 5 · active / selected wash */
|
|
495
|
+
--accent-foreground: var(--color-wg12);
|
|
474
496
|
|
|
475
|
-
/* Every neutral border stays within the consecutive
|
|
497
|
+
/* Every neutral border stays within the consecutive WG3–WG5 range:
|
|
476
498
|
tertiary is the quietest 1px divider, secondary is the default hairline,
|
|
477
499
|
and primary is the strongest neutral edge. */
|
|
478
|
-
--border-primary: var(--color-
|
|
479
|
-
--border-secondary: var(--color-
|
|
480
|
-
--border-tertiary: var(--color-
|
|
500
|
+
--border-primary: var(--color-wg5); /* step 5 · strongest */
|
|
501
|
+
--border-secondary: var(--color-wg4); /* step 4 · default */
|
|
502
|
+
--border-tertiary: var(--color-wg3); /* step 3 · faintest */
|
|
481
503
|
/* Legacy aliases point into the scale so existing utilities keep resolving. */
|
|
482
504
|
--border: var(--border-secondary); /* default hairline / separator */
|
|
483
505
|
--border-strong: var(--border-primary); /* emphasized / hover / selected */
|
|
484
|
-
--input: var(--color-
|
|
485
|
-
--menu-stroke: var(--color-
|
|
486
|
-
--toast-stroke: var(--color-
|
|
487
|
-
--tree-stroke: var(--color-
|
|
506
|
+
--input: var(--color-wg4); /* form-control edge */
|
|
507
|
+
--menu-stroke: var(--color-wg4); /* dropdown edge + separator */
|
|
508
|
+
--toast-stroke: var(--color-wg4); /* toast card edge */
|
|
509
|
+
--tree-stroke: var(--color-wg4); /* tree connector rail + elbows */
|
|
488
510
|
--field-focus: var(--color-g8); /* subtle green focused-control edge */
|
|
489
511
|
|
|
490
512
|
/* Ripple — the appearance wash that radiates from a floating surface's
|
|
@@ -495,27 +517,27 @@
|
|
|
495
517
|
|
|
496
518
|
/* Stroke width — every standard UI border is exactly 1px. */
|
|
497
519
|
--stroke-width: 1px;
|
|
498
|
-
--ring: color-mix(in srgb, var(--color-
|
|
499
|
-
--overlay: color-mix(in srgb, var(--color-
|
|
520
|
+
--ring: color-mix(in srgb, var(--color-wg12) 50%, transparent); /* WG12 @ 50% */
|
|
521
|
+
--overlay: color-mix(in srgb, var(--color-wg12) 50%, transparent); /* WG12 @ 50% */
|
|
500
522
|
|
|
501
523
|
/* Functional / domain tokens — named for their render role, pointing into
|
|
502
|
-
the canonical
|
|
524
|
+
the canonical WG palette. Components pass these into non-CSS renderers
|
|
503
525
|
(Recharts, React Flow, the Paper/WebGL texture) so no component carries a
|
|
504
526
|
raw primitive value. Same DS pattern as the data-viz palette. */
|
|
505
527
|
--chart-axis: var(--border-tertiary); /* axis lines + de-emphasised marks */
|
|
506
|
-
--chart-grid: var(--color-
|
|
507
|
-
--chart-track: var(--color-
|
|
508
|
-
--chart-context: var(--color-
|
|
528
|
+
--chart-grid: var(--color-wg3); /* quieter than axes, visible on white */
|
|
529
|
+
--chart-track: var(--color-wg3); /* funnel / progress track */
|
|
530
|
+
--chart-context: var(--color-wg6); /* de-emphasised context series */
|
|
509
531
|
--chart-active-bar-opacity: 0.68; /* hover lightens a bar while preserving its series hue */
|
|
510
532
|
--canvas-edge: var(--border-secondary);/* infinite-canvas edges / connectors */
|
|
511
|
-
--texture-ink: var(--color-
|
|
533
|
+
--texture-ink: var(--color-wg12); /* brand-texture / pixel-blast marks */
|
|
512
534
|
--table-shell: var(--color-white); /* simplified single-surface table */
|
|
513
|
-
--table-stroke: var(--color-
|
|
514
|
-
--table-header-foreground: var(--
|
|
515
|
-
--specimen-stroke: var(--color-
|
|
516
|
-
--table-scroll-hint:
|
|
517
|
-
--surface-inverse: var(--color-
|
|
518
|
-
--surface-inverse-soft: var(--color-
|
|
535
|
+
--table-stroke: var(--color-wg3); /* table outline + row separators */
|
|
536
|
+
--table-header-foreground: var(--text-tertiary); /* 12px tertiary table heading text */
|
|
537
|
+
--specimen-stroke: var(--color-wg3); /* showcase preview + variant-group frames */
|
|
538
|
+
--table-scroll-hint: color-mix(in srgb, var(--color-wg12) 4%, transparent); /* right-edge wash */
|
|
539
|
+
--surface-inverse: var(--color-wg12); /* dark hero / inverse surface base */
|
|
540
|
+
--surface-inverse-soft: var(--color-wg11);/* dark hero gradient falloff */
|
|
519
541
|
--artifact-canvas: color-mix(in srgb, var(--color-brand-mark) 7%, var(--color-white));
|
|
520
542
|
|
|
521
543
|
/* shadcn-compat raw surfaces — so a downstream shadcn Sidebar / Popover
|