@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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@actioneer/ads",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Actioneer Design System 1.0 — React 19 + Tailwind v4 component library.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": [
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"./fonts.css": "./fonts.css",
|
|
25
25
|
"./manifest.json": "./manifest.json",
|
|
26
26
|
"./llms.txt": "./llms.txt",
|
|
27
|
+
"./DESIGN.md": "./DESIGN.md",
|
|
27
28
|
"./package.json": "./package.json"
|
|
28
29
|
},
|
|
29
30
|
"bin": {
|
package/styles.css
CHANGED
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
/*
|
|
40
40
|
* ============================================================
|
|
41
41
|
* ADS 1.0 — Design Tokens
|
|
42
|
-
* Palette:
|
|
42
|
+
* Palette: warm greys + product green
|
|
43
43
|
* Typeface: Aribau Grotesk
|
|
44
44
|
* ============================================================
|
|
45
45
|
*/
|
|
@@ -57,22 +57,33 @@
|
|
|
57
57
|
--font-mono: "JetBrains Mono Variable", ui-monospace, SFMono-Regular,
|
|
58
58
|
"SF Mono", Menlo, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
59
59
|
|
|
60
|
-
/* ---- Type scale ----
|
|
61
|
-
Root stays 16px so spacing is unaffected. */
|
|
62
|
-
--text-
|
|
63
|
-
--text-
|
|
64
|
-
--text-
|
|
65
|
-
--text-
|
|
66
|
-
--text-
|
|
67
|
-
--text-
|
|
68
|
-
--text-
|
|
69
|
-
--text-
|
|
70
|
-
--text-
|
|
71
|
-
--text-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
--text-
|
|
75
|
-
--text-
|
|
60
|
+
/* ---- Type scale ---- seven canonical steps: XS · S · M · L · XL · 2XL · 3XL.
|
|
61
|
+
Roles follow the agent workflow. Root stays 16px so spacing is unaffected. */
|
|
62
|
+
--text-xs: 0.625rem; /* 10px · compact chips and micro metadata */
|
|
63
|
+
--text-xs--line-height: 0.875rem; /* 14px */
|
|
64
|
+
--text-s: 0.75rem; /* 12px · table headers and uppercase kickers */
|
|
65
|
+
--text-s--line-height: 1rem; /* 16px */
|
|
66
|
+
--text-m: 0.875rem; /* 14px · default body, table cells, record names */
|
|
67
|
+
--text-m--line-height: 1.25rem; /* 20px */
|
|
68
|
+
--text-l: 1rem; /* 16px · tabs, form labels, and section titles */
|
|
69
|
+
--text-l--line-height: 1.375rem; /* 22px */
|
|
70
|
+
--text-xl: 1.125rem; /* 18px · metric values and subtitles */
|
|
71
|
+
--text-xl--line-height: 1.5rem; /* 24px */
|
|
72
|
+
--text-2xl: 1.5rem; /* 24px · page titles */
|
|
73
|
+
--text-2xl--line-height: 2rem; /* 32px */
|
|
74
|
+
--text-3xl: 2rem; /* 32px · large data display */
|
|
75
|
+
--text-3xl--line-height: 2.5rem; /* 40px */
|
|
76
|
+
|
|
77
|
+
/* This is the complete ADS scale. Remove Tailwind's larger default steps so
|
|
78
|
+
Storybook and product code cannot silently introduce an eighth size. */
|
|
79
|
+
--text-4xl: initial;
|
|
80
|
+
--text-5xl: initial;
|
|
81
|
+
--text-6xl: initial;
|
|
82
|
+
--text-7xl: initial;
|
|
83
|
+
--text-8xl: initial;
|
|
84
|
+
--text-9xl: initial;
|
|
85
|
+
|
|
86
|
+
/* Compatibility aliases keep existing ADS consumers on the canonical scale. */
|
|
76
87
|
--text-sm: var(--text-s);
|
|
77
88
|
--text-sm--line-height: var(--text-s--line-height);
|
|
78
89
|
--text-base: var(--text-m);
|
|
@@ -82,10 +93,10 @@
|
|
|
82
93
|
|
|
83
94
|
/* ---- Foundation palette ----
|
|
84
95
|
Canonical primitive names:
|
|
85
|
-
G1…G12 = Green ·
|
|
96
|
+
G1…G12 = Green · WG1…WG12 = Warm Grey.
|
|
86
97
|
Each ramp progresses from light backgrounds and interactive fills through
|
|
87
98
|
supporting tones to solid colors and accessible text. Neutral UI borders
|
|
88
|
-
are intentionally restricted to
|
|
99
|
+
are intentionally restricted to WG3–WG5. ---- */
|
|
89
100
|
--color-g1: #f7f9f7;
|
|
90
101
|
--color-g2: #eef5f0;
|
|
91
102
|
--color-g3: #e2efe5;
|
|
@@ -99,33 +110,33 @@
|
|
|
99
110
|
--color-g11: #1f623b;
|
|
100
111
|
--color-g12: #183c28;
|
|
101
112
|
|
|
102
|
-
--color-
|
|
103
|
-
--color-
|
|
104
|
-
--color-
|
|
105
|
-
--color-
|
|
106
|
-
--color-
|
|
107
|
-
--color-
|
|
108
|
-
--color-
|
|
109
|
-
--color-
|
|
110
|
-
--color-
|
|
111
|
-
--color-
|
|
112
|
-
--color-
|
|
113
|
-
--color-
|
|
114
|
-
|
|
115
|
-
/* Deprecated
|
|
116
|
-
aliases so existing consumer utilities continue to render
|
|
117
|
-
--color-
|
|
118
|
-
--color-
|
|
119
|
-
--color-
|
|
120
|
-
--color-
|
|
121
|
-
--color-
|
|
122
|
-
--color-
|
|
123
|
-
--color-
|
|
124
|
-
--color-
|
|
125
|
-
--color-
|
|
126
|
-
--color-
|
|
127
|
-
--color-
|
|
128
|
-
--color-
|
|
113
|
+
--color-wg1: #f5f5f3;
|
|
114
|
+
--color-wg2: #f1f1ef;
|
|
115
|
+
--color-wg3: #ececea;
|
|
116
|
+
--color-wg4: #e5e5e2;
|
|
117
|
+
--color-wg5: #dcdcd8;
|
|
118
|
+
--color-wg6: #d1d1cc;
|
|
119
|
+
--color-wg7: #c2c2bc;
|
|
120
|
+
--color-wg8: #a6a69f;
|
|
121
|
+
--color-wg9: #777771;
|
|
122
|
+
--color-wg10: #686863;
|
|
123
|
+
--color-wg11: #4b4b47;
|
|
124
|
+
--color-wg12: #20201e;
|
|
125
|
+
|
|
126
|
+
/* Deprecated Neutral Grey names resolve to the canonical Warm Grey ramp.
|
|
127
|
+
Keep these aliases so existing consumer utilities continue to render. */
|
|
128
|
+
--color-ng1: var(--color-wg1);
|
|
129
|
+
--color-ng2: var(--color-wg2);
|
|
130
|
+
--color-ng3: var(--color-wg3);
|
|
131
|
+
--color-ng4: var(--color-wg4);
|
|
132
|
+
--color-ng5: var(--color-wg5);
|
|
133
|
+
--color-ng6: var(--color-wg6);
|
|
134
|
+
--color-ng7: var(--color-wg7);
|
|
135
|
+
--color-ng8: var(--color-wg8);
|
|
136
|
+
--color-ng9: var(--color-wg9);
|
|
137
|
+
--color-ng10: var(--color-wg10);
|
|
138
|
+
--color-ng11: var(--color-wg11);
|
|
139
|
+
--color-ng12: var(--color-wg12);
|
|
129
140
|
|
|
130
141
|
--color-white: #ffffff;
|
|
131
142
|
|
|
@@ -143,31 +154,31 @@
|
|
|
143
154
|
--color-green-900: var(--color-g11);
|
|
144
155
|
--color-green-950: var(--color-g12);
|
|
145
156
|
|
|
146
|
-
--color-grey-50: var(--color-
|
|
147
|
-
--color-grey-100: var(--color-
|
|
148
|
-
--color-grey-200: var(--color-
|
|
149
|
-
--color-grey-300: var(--color-
|
|
150
|
-
--color-grey-400: var(--color-
|
|
151
|
-
--color-grey-500: var(--color-
|
|
152
|
-
--color-grey-600: var(--color-
|
|
153
|
-
--color-grey-700: var(--color-
|
|
154
|
-
--color-grey-800: var(--color-
|
|
155
|
-
--color-grey-850: var(--color-
|
|
156
|
-
--color-grey-900: var(--color-
|
|
157
|
-
--color-grey-950: var(--color-
|
|
158
|
-
|
|
159
|
-
--color-ink-50: var(--color-
|
|
160
|
-
--color-ink-100: var(--color-
|
|
161
|
-
--color-ink-200: var(--color-
|
|
162
|
-
--color-ink-300: var(--color-
|
|
163
|
-
--color-ink-400: var(--color-
|
|
164
|
-
--color-ink-500: var(--color-
|
|
165
|
-
--color-ink-600: var(--color-
|
|
166
|
-
--color-ink-700: var(--color-
|
|
167
|
-
--color-ink-800: var(--color-
|
|
168
|
-
--color-ink-850: var(--color-
|
|
169
|
-
--color-ink-900: var(--color-
|
|
170
|
-
--color-ink-950: var(--color-
|
|
157
|
+
--color-grey-50: var(--color-wg1);
|
|
158
|
+
--color-grey-100: var(--color-wg2);
|
|
159
|
+
--color-grey-200: var(--color-wg3);
|
|
160
|
+
--color-grey-300: var(--color-wg4);
|
|
161
|
+
--color-grey-400: var(--color-wg5);
|
|
162
|
+
--color-grey-500: var(--color-wg6);
|
|
163
|
+
--color-grey-600: var(--color-wg7);
|
|
164
|
+
--color-grey-700: var(--color-wg8);
|
|
165
|
+
--color-grey-800: var(--color-wg9);
|
|
166
|
+
--color-grey-850: var(--color-wg10);
|
|
167
|
+
--color-grey-900: var(--color-wg11);
|
|
168
|
+
--color-grey-950: var(--color-wg12);
|
|
169
|
+
|
|
170
|
+
--color-ink-50: var(--color-wg1);
|
|
171
|
+
--color-ink-100: var(--color-wg2);
|
|
172
|
+
--color-ink-200: var(--color-wg3);
|
|
173
|
+
--color-ink-300: var(--color-wg4);
|
|
174
|
+
--color-ink-400: var(--color-wg5);
|
|
175
|
+
--color-ink-500: var(--color-wg6);
|
|
176
|
+
--color-ink-600: var(--color-wg7);
|
|
177
|
+
--color-ink-700: var(--color-wg8);
|
|
178
|
+
--color-ink-800: var(--color-wg9);
|
|
179
|
+
--color-ink-850: var(--color-wg10);
|
|
180
|
+
--color-ink-900: var(--color-wg11);
|
|
181
|
+
--color-ink-950: var(--color-wg12);
|
|
171
182
|
|
|
172
183
|
/* ---- Semantic accent ramps ---- */
|
|
173
184
|
/* Success uses the lichen lime family and stays status-only. The original
|
|
@@ -218,21 +229,21 @@
|
|
|
218
229
|
/* Demo logo indigo — source for artifact canvas wash. */
|
|
219
230
|
--color-brand-mark: #2e1065;
|
|
220
231
|
|
|
221
|
-
/* ---- Radii ----
|
|
232
|
+
/* ---- Radii ---- four canonical steps: XS · S · M · L.
|
|
222
233
|
M (6px) is the default corner radius. */
|
|
223
234
|
--radius-xs: 0.125rem; /* 2px · micro details */
|
|
224
235
|
--radius-s: 0.25rem; /* 4px · compact controls */
|
|
225
236
|
--radius-m: 0.375rem; /* 6px · default controls and surfaces */
|
|
226
|
-
--radius-l: 0.5rem; /* 8px · menus and
|
|
227
|
-
--radius-xl: 0.75rem; /* 12px · large panels and feature surfaces */
|
|
237
|
+
--radius-l: 0.5rem; /* 8px · menus, cards, and large surfaces */
|
|
228
238
|
|
|
229
239
|
/* Compatibility aliases preserve existing ADS utilities. */
|
|
230
240
|
--radius-sm: var(--radius-s);
|
|
231
241
|
--radius-md: var(--radius-m);
|
|
232
242
|
--radius-lg: var(--radius-l);
|
|
233
|
-
--radius-
|
|
234
|
-
--radius-
|
|
235
|
-
--radius-
|
|
243
|
+
--radius-xl: var(--radius-l);
|
|
244
|
+
--radius-2xl: var(--radius-l);
|
|
245
|
+
--radius-3xl: var(--radius-l);
|
|
246
|
+
--radius-4xl: var(--radius-l);
|
|
236
247
|
/* Shape-only exception for avatars, icon buttons, progress tracks, chips,
|
|
237
248
|
and badges. It is not part of the corner-radius scale. */
|
|
238
249
|
--radius-full: 9999px;
|
|
@@ -242,7 +253,7 @@
|
|
|
242
253
|
convention). */
|
|
243
254
|
--radius-dot: 2px;
|
|
244
255
|
|
|
245
|
-
/* ---- Elevation ---- Shopify-inspired 0–600 ladder, recolored with
|
|
256
|
+
/* ---- Elevation ---- Shopify-inspired 0–600 ladder, recolored with WG12.
|
|
246
257
|
Geometry and opacity increase together; static surfaces remain at 0. */
|
|
247
258
|
--shadow-0: none;
|
|
248
259
|
--shadow-100: 0 1px 0 0 rgb(32 32 32 / 0.07);
|
|
@@ -258,7 +269,7 @@
|
|
|
258
269
|
|
|
259
270
|
/* Pinned-table-column smudges — whisper-soft directional casts shown only
|
|
260
271
|
while content is hidden behind a sticky column (Table is scroll-aware).
|
|
261
|
-
Deep negative spread keeps the edge feathered; the tint is
|
|
272
|
+
Deep negative spread keeps the edge feathered; the tint is warm grey. */
|
|
262
273
|
--shadow-table-smudge-left: 8px 0 24px -14px rgb(32 32 32 / 0.05);
|
|
263
274
|
--shadow-table-smudge-right: -8px 0 24px -14px rgb(32 32 32 / 0.05);
|
|
264
275
|
|
|
@@ -284,8 +295,8 @@
|
|
|
284
295
|
--sidebar-item: 2rem; /* 32px — collapsed rail hit target (square) */
|
|
285
296
|
--sidebar-logo: 1.25rem; /* 20px — brand mark, centered in a --sidebar-item square */
|
|
286
297
|
--sidebar-text-indent: 2.375rem; /* px-3 + icon size-4 + gap-2.5 — history rows align to nav-item text */
|
|
287
|
-
--sidebar-navigation-text-size: var(--text-m); /*
|
|
288
|
-
--sidebar-section-label-size:
|
|
298
|
+
--sidebar-navigation-text-size: var(--text-m); /* 14px — sidebar actions, items, history, and account text */
|
|
299
|
+
--sidebar-section-label-size: var(--text-s); /* 12px — section and history labels */
|
|
289
300
|
--panel-header-height: 2.75rem; /* 44px — Panel / toolbar header */
|
|
290
301
|
--aside-width: 20rem; /* 320px — right-hand panel column */
|
|
291
302
|
|
|
@@ -298,7 +309,7 @@
|
|
|
298
309
|
--thread-max-width: 44rem; /* chat column cap — readable prose measure, all panes */
|
|
299
310
|
--thread-max-width-wide: 64rem; /* rich-content breakout cap (tables/charts/tool cards) on wide panes; prose keeps --thread-max-width */
|
|
300
311
|
--composer-bg: var(--elevated); /* pure white composer surface */
|
|
301
|
-
--composer-radius: var(--radius-
|
|
312
|
+
--composer-radius: var(--radius-l);
|
|
302
313
|
--composer-padding: 0.5rem;
|
|
303
314
|
--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 */
|
|
304
315
|
--chat-texture-opacity: 0.06; /* welcome-state halftone wash */
|
|
@@ -338,6 +349,7 @@
|
|
|
338
349
|
* @theme inline exposes them as utilities (bg-background, text-primary, …).
|
|
339
350
|
*/
|
|
340
351
|
@theme inline {
|
|
352
|
+
/* The shell canvas and its ink: the ground between top-level panels. */
|
|
341
353
|
--color-background: var(--background);
|
|
342
354
|
--color-foreground: var(--foreground);
|
|
343
355
|
|
|
@@ -354,13 +366,16 @@
|
|
|
354
366
|
--color-secondary: var(--text-secondary);
|
|
355
367
|
--color-tertiary: var(--text-tertiary);
|
|
356
368
|
|
|
369
|
+
/* One continuous recess inside a white surface, never a screen-level ground. */
|
|
357
370
|
--color-surface: var(--surface);
|
|
358
371
|
--color-surface-foreground: var(--surface-foreground);
|
|
359
372
|
--color-elevated: var(--elevated);
|
|
360
373
|
|
|
374
|
+
/* The hover and row-state wash: interaction, not a default item background. */
|
|
361
375
|
--color-muted: var(--muted);
|
|
362
376
|
--color-muted-foreground: var(--muted-foreground);
|
|
363
377
|
|
|
378
|
+
/* The white working plane that sits on the canvas, and the specimen hairline. */
|
|
364
379
|
--color-card: var(--card);
|
|
365
380
|
--color-card-foreground: var(--card-foreground);
|
|
366
381
|
--color-specimen-stroke: var(--specimen-stroke);
|
|
@@ -382,12 +397,15 @@
|
|
|
382
397
|
/* Quiet fill — avatars, chips, and disabled controls */
|
|
383
398
|
--color-fill: var(--fill);
|
|
384
399
|
--color-fill-foreground: var(--fill-foreground);
|
|
400
|
+
/* Table surfaces: the white tray, its hairlines, and header ink. */
|
|
385
401
|
--color-table-shell: var(--table-shell);
|
|
386
402
|
--color-table-stroke: var(--table-stroke);
|
|
387
403
|
--color-table-header-foreground: var(--table-header-foreground);
|
|
388
404
|
|
|
405
|
+
/* The artifact sheet: white warmed by a trace of the brand mark. */
|
|
389
406
|
--color-artifact-canvas: var(--artifact-canvas);
|
|
390
407
|
|
|
408
|
+
/* The active and selected wash, one step above hover. */
|
|
391
409
|
--color-accent: var(--accent);
|
|
392
410
|
--color-accent-foreground: var(--accent-foreground);
|
|
393
411
|
|
|
@@ -399,12 +417,14 @@
|
|
|
399
417
|
/* Amber-500 fill kept (it IS the caution signal); dark ink foreground
|
|
400
418
|
instead of white = 6.94:1 (white on amber was 2.35:1, failed even 3:1). */
|
|
401
419
|
--color-warning: var(--color-warning-500);
|
|
402
|
-
--color-warning-foreground: var(--color-
|
|
420
|
+
--color-warning-foreground: var(--color-wg12);
|
|
421
|
+
/* Danger and info: solid semantic fills carrying white foregrounds. */
|
|
403
422
|
--color-danger: var(--color-danger-600);
|
|
404
423
|
--color-danger-foreground: var(--color-white);
|
|
405
424
|
--color-info: var(--color-info-600);
|
|
406
425
|
--color-info-foreground: var(--color-white);
|
|
407
426
|
|
|
427
|
+
/* The neutral stroke ladder: every 1px UI border stays within WG3 to WG5. */
|
|
408
428
|
--color-border-primary: var(--border-primary);
|
|
409
429
|
--color-border-secondary: var(--border-secondary);
|
|
410
430
|
--color-border-tertiary: var(--border-tertiary);
|
|
@@ -414,6 +434,7 @@
|
|
|
414
434
|
--color-menu-stroke: var(--menu-stroke);
|
|
415
435
|
--color-toast-stroke: var(--toast-stroke);
|
|
416
436
|
--color-tree-stroke: var(--tree-stroke);
|
|
437
|
+
/* Focus ring and scrim, both translucent warm ink. */
|
|
417
438
|
--color-ring: var(--ring);
|
|
418
439
|
--color-overlay: var(--overlay);
|
|
419
440
|
|
|
@@ -444,36 +465,37 @@
|
|
|
444
465
|
|
|
445
466
|
/* ---- Theme (light only) ---- */
|
|
446
467
|
:root {
|
|
447
|
-
/* Surfaces and achromatic text/actions point into
|
|
468
|
+
/* Surfaces and achromatic text/actions point into WG; the primary CTA
|
|
448
469
|
points into G. */
|
|
449
|
-
--background: var(--color-
|
|
450
|
-
--foreground: var(--color-
|
|
451
|
-
|
|
452
|
-
/* Both surface contexts point directly into the approved
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
--text-on-white-
|
|
457
|
-
--text-on-white-
|
|
458
|
-
--text-on-
|
|
459
|
-
--text-on-warm-grey-
|
|
460
|
-
--text-on-warm-grey-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
--text-
|
|
466
|
-
--text-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
--surface
|
|
470
|
+
--background: var(--color-wg2); /* step 2 · canvas */
|
|
471
|
+
--foreground: var(--color-wg12); /* step 12 */
|
|
472
|
+
|
|
473
|
+
/* Both surface contexts point directly into the approved WG text steps.
|
|
474
|
+
WG9 is the tertiary/de-emphasis step for nonessential metadata. It clears
|
|
475
|
+
normal-text AA on White; use Secondary when normal text on WG2 must clear
|
|
476
|
+
AA. */
|
|
477
|
+
--text-on-white-primary: var(--color-wg12); /* 16.32:1 · AAA */
|
|
478
|
+
--text-on-white-secondary: var(--color-wg11); /* 8.76:1 · AAA */
|
|
479
|
+
--text-on-white-tertiary: var(--color-wg9); /* 4.50:1 · AA */
|
|
480
|
+
--text-on-warm-grey-primary: var(--color-wg12); /* 14.43:1 on WG2 · AAA */
|
|
481
|
+
--text-on-warm-grey-secondary: var(--color-wg11); /* 7.75:1 on WG2 · AAA */
|
|
482
|
+
--text-on-warm-grey-tertiary: var(--color-wg9); /* 3.98:1 on WG2 · large text AA */
|
|
483
|
+
|
|
484
|
+
/* Existing context-free utilities remain conservative compatibility aliases
|
|
485
|
+
across WG2–WG4 and White until their call sites adopt a surface role. */
|
|
486
|
+
--text-primary: var(--color-wg12); /* 12.93:1 AAA (WG4 min surf) */
|
|
487
|
+
--text-secondary: var(--color-wg11); /* 6.94:1 AA (WG4 min surf) */
|
|
488
|
+
--text-tertiary: color-mix(in srgb, var(--color-wg10) 80%, var(--color-wg11)); /* 4.86:1 AA (WG4) */
|
|
489
|
+
|
|
490
|
+
--surface: var(--color-wg3); /* step 3 · tinted canvas */
|
|
491
|
+
--surface-foreground: var(--color-wg12);
|
|
470
492
|
--elevated: var(--color-white); /* pure white base */
|
|
471
493
|
|
|
472
|
-
--muted: var(--color-
|
|
473
|
-
--muted-foreground: var(--color-
|
|
494
|
+
--muted: var(--color-wg4); /* step 4 */
|
|
495
|
+
--muted-foreground: var(--color-wg11); /* step 11 · readable UI text */
|
|
474
496
|
|
|
475
497
|
--card: var(--color-white); /* pure white base */
|
|
476
|
-
--card-foreground: var(--color-
|
|
498
|
+
--card-foreground: var(--color-wg12);
|
|
477
499
|
|
|
478
500
|
/* Studio green is deliberately isolated to the primary CTA role (roughly
|
|
479
501
|
5–10% of a screen). Selection controls keep using neutral `brand` below,
|
|
@@ -486,36 +508,36 @@
|
|
|
486
508
|
|
|
487
509
|
/* Neutral action role. The `brand` name remains as a compatibility API,
|
|
488
510
|
and shared selection/control states intentionally remain achromatic. */
|
|
489
|
-
--brand: var(--color-
|
|
511
|
+
--brand: var(--color-wg12); /* darkest neutral action */
|
|
490
512
|
--brand-foreground: var(--color-white);
|
|
491
|
-
--brand-hover: var(--color-
|
|
492
|
-
--brand-text: var(--color-
|
|
513
|
+
--brand-hover: var(--color-wg11); /* lighter hover lift */
|
|
514
|
+
--brand-text: var(--color-wg12); /* action text / links */
|
|
493
515
|
|
|
494
|
-
/* Interactive
|
|
495
|
-
--table-row-hover: var(--color-
|
|
496
|
-
--table-row-selected: var(--color-
|
|
516
|
+
/* Interactive row hover/focus uses the WG3 highlight wash. */
|
|
517
|
+
--table-row-hover: var(--color-wg3);
|
|
518
|
+
--table-row-selected: var(--color-wg1);
|
|
497
519
|
|
|
498
|
-
/* Quiet component fill.
|
|
520
|
+
/* Quiet component fill. WG3 is the first interactive-background
|
|
499
521
|
step, so this remains visible on both white cards and the step-2 canvas. */
|
|
500
|
-
--fill: var(--color-
|
|
501
|
-
--fill-foreground: var(--color-
|
|
522
|
+
--fill: var(--color-wg3); /* step 3 · default component fill */
|
|
523
|
+
--fill-foreground: var(--color-wg12);
|
|
502
524
|
|
|
503
|
-
--accent: var(--color-
|
|
504
|
-
--accent-foreground: var(--color-
|
|
525
|
+
--accent: var(--color-wg5); /* step 5 · active / selected wash */
|
|
526
|
+
--accent-foreground: var(--color-wg12);
|
|
505
527
|
|
|
506
|
-
/* Every neutral border stays within the consecutive
|
|
528
|
+
/* Every neutral border stays within the consecutive WG3–WG5 range:
|
|
507
529
|
tertiary is the quietest 1px divider, secondary is the default hairline,
|
|
508
530
|
and primary is the strongest neutral edge. */
|
|
509
|
-
--border-primary: var(--color-
|
|
510
|
-
--border-secondary: var(--color-
|
|
511
|
-
--border-tertiary: var(--color-
|
|
531
|
+
--border-primary: var(--color-wg5); /* step 5 · strongest */
|
|
532
|
+
--border-secondary: var(--color-wg4); /* step 4 · default */
|
|
533
|
+
--border-tertiary: var(--color-wg3); /* step 3 · faintest */
|
|
512
534
|
/* Legacy aliases point into the scale so existing utilities keep resolving. */
|
|
513
535
|
--border: var(--border-secondary); /* default hairline / separator */
|
|
514
536
|
--border-strong: var(--border-primary); /* emphasized / hover / selected */
|
|
515
|
-
--input: var(--color-
|
|
516
|
-
--menu-stroke: var(--color-
|
|
517
|
-
--toast-stroke: var(--color-
|
|
518
|
-
--tree-stroke: var(--color-
|
|
537
|
+
--input: var(--color-wg4); /* form-control edge */
|
|
538
|
+
--menu-stroke: var(--color-wg4); /* dropdown edge + separator */
|
|
539
|
+
--toast-stroke: var(--color-wg4); /* toast card edge */
|
|
540
|
+
--tree-stroke: var(--color-wg4); /* tree connector rail + elbows */
|
|
519
541
|
--field-focus: var(--color-g8); /* subtle green focused-control edge */
|
|
520
542
|
|
|
521
543
|
/* Ripple — the appearance wash that radiates from a floating surface's
|
|
@@ -526,27 +548,27 @@
|
|
|
526
548
|
|
|
527
549
|
/* Stroke width — every standard UI border is exactly 1px. */
|
|
528
550
|
--stroke-width: 1px;
|
|
529
|
-
--ring: color-mix(in srgb, var(--color-
|
|
530
|
-
--overlay: color-mix(in srgb, var(--color-
|
|
551
|
+
--ring: color-mix(in srgb, var(--color-wg12) 50%, transparent); /* WG12 @ 50% */
|
|
552
|
+
--overlay: color-mix(in srgb, var(--color-wg12) 50%, transparent); /* WG12 @ 50% */
|
|
531
553
|
|
|
532
554
|
/* Functional / domain tokens — named for their render role, pointing into
|
|
533
|
-
the canonical
|
|
555
|
+
the canonical WG palette. Components pass these into non-CSS renderers
|
|
534
556
|
(Recharts, React Flow, the Paper/WebGL texture) so no component carries a
|
|
535
557
|
raw primitive value. Same DS pattern as the data-viz palette. */
|
|
536
558
|
--chart-axis: var(--border-tertiary); /* axis lines + de-emphasised marks */
|
|
537
|
-
--chart-grid: var(--color-
|
|
538
|
-
--chart-track: var(--color-
|
|
539
|
-
--chart-context: var(--color-
|
|
559
|
+
--chart-grid: var(--color-wg3); /* quieter than axes, visible on white */
|
|
560
|
+
--chart-track: var(--color-wg3); /* funnel / progress track */
|
|
561
|
+
--chart-context: var(--color-wg6); /* de-emphasised context series */
|
|
540
562
|
--chart-active-bar-opacity: 0.68; /* hover lightens a bar while preserving its series hue */
|
|
541
563
|
--canvas-edge: var(--border-secondary);/* infinite-canvas edges / connectors */
|
|
542
|
-
--texture-ink: var(--color-
|
|
564
|
+
--texture-ink: var(--color-wg12); /* brand-texture / pixel-blast marks */
|
|
543
565
|
--table-shell: var(--color-white); /* simplified single-surface table */
|
|
544
|
-
--table-stroke: var(--color-
|
|
545
|
-
--table-header-foreground: var(--
|
|
546
|
-
--specimen-stroke: var(--color-
|
|
547
|
-
--table-scroll-hint:
|
|
548
|
-
--surface-inverse: var(--color-
|
|
549
|
-
--surface-inverse-soft: var(--color-
|
|
566
|
+
--table-stroke: var(--color-wg3); /* table outline + row separators */
|
|
567
|
+
--table-header-foreground: var(--text-tertiary); /* 12px tertiary table heading text */
|
|
568
|
+
--specimen-stroke: var(--color-wg3); /* showcase preview + variant-group frames */
|
|
569
|
+
--table-scroll-hint: color-mix(in srgb, var(--color-wg12) 4%, transparent); /* right-edge wash */
|
|
570
|
+
--surface-inverse: var(--color-wg12); /* dark hero / inverse surface base */
|
|
571
|
+
--surface-inverse-soft: var(--color-wg11);/* dark hero gradient falloff */
|
|
550
572
|
--artifact-canvas: color-mix(in srgb, var(--color-brand-mark) 7%, var(--color-white));
|
|
551
573
|
|
|
552
574
|
/* shadcn-compat raw surfaces — so a downstream shadcn Sidebar / Popover
|
|
@@ -669,7 +691,7 @@
|
|
|
669
691
|
}
|
|
670
692
|
|
|
671
693
|
.ask-empty-composer [data-slot="aui_composer-shell"] {
|
|
672
|
-
border-color: var(--color-
|
|
694
|
+
border-color: var(--color-wg4);
|
|
673
695
|
box-shadow: var(--shadow-200);
|
|
674
696
|
}
|
|
675
697
|
|
|
@@ -679,7 +701,7 @@
|
|
|
679
701
|
}
|
|
680
702
|
|
|
681
703
|
.ask-section-label {
|
|
682
|
-
font-size:
|
|
704
|
+
font-size: var(--text-s);
|
|
683
705
|
line-height: 1rem;
|
|
684
706
|
}
|
|
685
707
|
|
|
@@ -780,11 +802,11 @@
|
|
|
780
802
|
halftone dissolves from the BOTTOM upward (a soft mask band sweeps up
|
|
781
803
|
through it) while the whole layer drifts up and fades — cloud cover
|
|
782
804
|
breaking and rising, not a curtain covering it. The mask rests fully
|
|
783
|
-
opaque (element aligned with the
|
|
805
|
+
opaque (element aligned with the ink end of an oversized gradient), and
|
|
784
806
|
the lifted state slides the element to the transparent end. */
|
|
785
807
|
.ads-texture-lift {
|
|
786
|
-
mask-image: linear-gradient(to top, transparent 0%, transparent 42%,
|
|
787
|
-
-webkit-mask-image: linear-gradient(to top, transparent 0%, transparent 42%,
|
|
808
|
+
mask-image: linear-gradient(to top, transparent 0%, transparent 42%, var(--color-wg12) 58%, var(--color-wg12) 100%);
|
|
809
|
+
-webkit-mask-image: linear-gradient(to top, transparent 0%, transparent 42%, var(--color-wg12) 58%, var(--color-wg12) 100%);
|
|
788
810
|
mask-repeat: no-repeat;
|
|
789
811
|
-webkit-mask-repeat: no-repeat;
|
|
790
812
|
mask-size: 100% 240%;
|
|
@@ -829,7 +851,7 @@
|
|
|
829
851
|
background-color: var(--background);
|
|
830
852
|
color: var(--foreground);
|
|
831
853
|
font-family: var(--font-sans);
|
|
832
|
-
font-size: var(--text-base); /*
|
|
854
|
+
font-size: var(--text-base); /* 14px base */
|
|
833
855
|
/* Stylistic sets ss01, ss02, ss03. Figures are tabular everywhere
|
|
834
856
|
(data-dense UI) via the real property, not a "tnum" feature tag. */
|
|
835
857
|
font-feature-settings: "ss01", "ss02", "ss03";
|
|
@@ -959,7 +981,7 @@
|
|
|
959
981
|
/* Optional persistent inset (e.g. the field inner glow) — hosts opt in
|
|
960
982
|
via [--glow-inset:var(--inner-glow-field)]; carried through every
|
|
961
983
|
state below so hover/focus/invalid never strip it. */
|
|
962
|
-
--glow-inset: 0 0
|
|
984
|
+
--glow-inset: 0 0 transparent;
|
|
963
985
|
|
|
964
986
|
border-color: var(--glow-border-rest);
|
|
965
987
|
box-shadow: var(--glow-inset);
|
|
@@ -1156,14 +1178,10 @@
|
|
|
1156
1178
|
}
|
|
1157
1179
|
|
|
1158
1180
|
/* Comments become a placement mode while the comments panel is open. Keep
|
|
1159
|
-
the native cursor readable while
|
|
1160
|
-
used by the rest of the Artifact UI. */
|
|
1181
|
+
the native cursor readable while keeping placement precise. */
|
|
1161
1182
|
.artifact-comment-cursor,
|
|
1162
1183
|
.artifact-comment-cursor * {
|
|
1163
|
-
cursor:
|
|
1164
|
-
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Ccircle cx='14' cy='14' r='12' fill='white' stroke='%23242424' stroke-width='1.5'/%3E%3Cpath d='M8.5 9.5h11v7h-5.5l-3.5 3v-3h-2z' fill='%23242424'/%3E%3C/svg%3E")
|
|
1165
|
-
5 5,
|
|
1166
|
-
crosshair !important;
|
|
1184
|
+
cursor: crosshair !important;
|
|
1167
1185
|
}
|
|
1168
1186
|
/* Let the consumer's Tailwind discover the classes ADS components use. */
|
|
1169
1187
|
@source "./**/*.{js,mjs}";
|