@tensor_1/tokens 2.19.2 → 2.21.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/build/css/components.css +1 -1
- package/build/css/styles.css +1 -1
- package/build/css/tokens.css +9 -0
- package/build/tailwind/preset.cjs +2 -0
- package/build/tailwind/theme.css +2 -0
- package/build/ts/tokens.d.ts +1 -1
- package/build/ts/tokens.js +12 -0
- package/package.json +1 -1
- package/styles/components/button.css +8 -1
- package/styles/components/chart.css +4 -2
- package/styles/components/copy-button.css +8 -0
- package/styles/components/flow.css +4 -0
- package/styles/components/pipeline.css +3 -1
- package/styles/components/relationship-graph.css +3 -1
- package/styles/components/stat-tile.css +29 -2
- package/styles/components/table.css +5 -1
- package/styles/components/tabs.css +36 -0
- package/styles/components/tree.css +14 -2
- package/styles/utilities.css +3 -3
- package/tokens/base/color.json +2 -0
- package/tokens/base/effect.json +1 -0
- package/tokens/dark/color.json +2 -0
- package/tokens/dark/effect.json +5 -1
package/build/css/tokens.css
CHANGED
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
--uix-warning-fg: #1A1A1A;
|
|
34
34
|
--uix-warning-bg: #FEF3D6;
|
|
35
35
|
--uix-warning-text: #92400E;
|
|
36
|
+
--uix-warning-border: #D97706;
|
|
36
37
|
--uix-info: #1447E6;
|
|
37
38
|
--uix-info-fg: #FFFFFF;
|
|
38
39
|
--uix-info-bg: #E3EBFF;
|
|
@@ -40,6 +41,7 @@
|
|
|
40
41
|
--uix-danger: #E40014;
|
|
41
42
|
--uix-danger-fg: #FFFFFF;
|
|
42
43
|
--uix-danger-bg: #FFE4E6;
|
|
44
|
+
--uix-danger-border: #E40014;
|
|
43
45
|
--uix-danger-text: #C20012;
|
|
44
46
|
--uix-amber: #C98A1E;
|
|
45
47
|
--uix-amber-text: #795006;
|
|
@@ -81,6 +83,7 @@
|
|
|
81
83
|
--uix-scrim: rgba(0,0,0,.5);
|
|
82
84
|
--uix-scrim-strong: rgba(0,0,0,.7);
|
|
83
85
|
--uix-shadow-sm: 0 1px 2px rgba(0,0,0,.06);
|
|
86
|
+
--uix-shadow-md: 0 4px 12px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.05);
|
|
84
87
|
--uix-shadow-popover: 0 8px 24px rgba(0,0,0,.10),0 1px 2px rgba(0,0,0,.05);
|
|
85
88
|
--uix-shadow-overlay: 0 16px 48px rgba(0,0,0,.18);
|
|
86
89
|
--uix-highlight-top: inset 0 1px 0 rgba(255,255,255,0);
|
|
@@ -182,6 +185,7 @@
|
|
|
182
185
|
--uix-warning: #FCBB00;
|
|
183
186
|
--uix-warning-fg: #1A1A1A;
|
|
184
187
|
--uix-warning-bg: rgba(249,156,0,.16);
|
|
188
|
+
--uix-warning-border: #CA8A04;
|
|
185
189
|
--uix-warning-text: var(--uix-warning,#FCBB00);
|
|
186
190
|
--uix-info: #2563EB;
|
|
187
191
|
--uix-info-fg: #FFFFFF;
|
|
@@ -190,6 +194,7 @@
|
|
|
190
194
|
--uix-danger: #DC2626;
|
|
191
195
|
--uix-danger-fg: #FFFFFF;
|
|
192
196
|
--uix-danger-bg: rgba(220,38,38,.20);
|
|
197
|
+
--uix-danger-border: #DC2626;
|
|
193
198
|
--uix-danger-text: #F87171;
|
|
194
199
|
--uix-amber: #E6B25C;
|
|
195
200
|
--uix-amber-text: #E6B25C;
|
|
@@ -222,5 +227,9 @@
|
|
|
222
227
|
--uix-scrollbar-thumb: rgba(255,255,255,.18);
|
|
223
228
|
--uix-scrollbar-thumb-hover: rgba(255,255,255,.30);
|
|
224
229
|
--uix-highlight-top: inset 0 1px 0 rgba(255,255,255,.04);
|
|
230
|
+
--uix-shadow-sm: 0 1px 2px rgba(0,0,0,.40),inset 0 1px 0 rgba(255,255,255,.04);
|
|
231
|
+
--uix-shadow-md: 0 4px 12px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.04);
|
|
232
|
+
--uix-shadow-popover: 0 8px 24px rgba(0,0,0,.50),0 1px 2px rgba(0,0,0,.40),inset 0 1px 0 rgba(255,255,255,.05);
|
|
233
|
+
--uix-shadow-overlay: 0 16px 48px rgba(0,0,0,.60),inset 0 1px 0 rgba(255,255,255,.05);
|
|
225
234
|
}
|
|
226
235
|
}
|
|
@@ -34,6 +34,7 @@ module.exports = {
|
|
|
34
34
|
"uix-warning-fg": "var(--uix-warning-fg)",
|
|
35
35
|
"uix-warning-bg": "var(--uix-warning-bg)",
|
|
36
36
|
"uix-warning-text": "var(--uix-warning-text)",
|
|
37
|
+
"uix-warning-border": "var(--uix-warning-border)",
|
|
37
38
|
"uix-info": "var(--uix-info)",
|
|
38
39
|
"uix-info-fg": "var(--uix-info-fg)",
|
|
39
40
|
"uix-info-bg": "var(--uix-info-bg)",
|
|
@@ -41,6 +42,7 @@ module.exports = {
|
|
|
41
42
|
"uix-danger": "var(--uix-danger)",
|
|
42
43
|
"uix-danger-fg": "var(--uix-danger-fg)",
|
|
43
44
|
"uix-danger-bg": "var(--uix-danger-bg)",
|
|
45
|
+
"uix-danger-border": "var(--uix-danger-border)",
|
|
44
46
|
"uix-danger-text": "var(--uix-danger-text)",
|
|
45
47
|
"uix-amber": "var(--uix-amber)",
|
|
46
48
|
"uix-amber-text": "var(--uix-amber-text)",
|
package/build/tailwind/theme.css
CHANGED
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
--color-uix-warning-fg: var(--uix-warning-fg);
|
|
32
32
|
--color-uix-warning-bg: var(--uix-warning-bg);
|
|
33
33
|
--color-uix-warning-text: var(--uix-warning-text);
|
|
34
|
+
--color-uix-warning-border: var(--uix-warning-border);
|
|
34
35
|
--color-uix-info: var(--uix-info);
|
|
35
36
|
--color-uix-info-fg: var(--uix-info-fg);
|
|
36
37
|
--color-uix-info-bg: var(--uix-info-bg);
|
|
@@ -38,6 +39,7 @@
|
|
|
38
39
|
--color-uix-danger: var(--uix-danger);
|
|
39
40
|
--color-uix-danger-fg: var(--uix-danger-fg);
|
|
40
41
|
--color-uix-danger-bg: var(--uix-danger-bg);
|
|
42
|
+
--color-uix-danger-border: var(--uix-danger-border);
|
|
41
43
|
--color-uix-danger-text: var(--uix-danger-text);
|
|
42
44
|
--color-uix-amber: var(--uix-amber);
|
|
43
45
|
--color-uix-amber-text: var(--uix-amber-text);
|
package/build/ts/tokens.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* GENERATED — do not edit. */
|
|
2
|
-
export type UixTokenName = "bg-app" | "bg-subtle" | "bg-hover" | "bg-active" | "surface" | "surface-2" | "surface-3" | "border" | "border-strong" | "text" | "text-hushed" | "text-muted" | "text-reverse" | "text-hushed-reverse" | "accent" | "accent-dark" | "accent-light" | "accent-hover" | "accent-fg" | "link" | "accent-text" | "ring" | "brand-muted" | "success" | "success-fg" | "success-bg" | "warning" | "warning-fg" | "warning-bg" | "warning-text" | "info" | "info-fg" | "info-bg" | "info-text" | "danger" | "danger-fg" | "danger-bg" | "danger-text" | "amber" | "amber-text" | "amber-bg" | "attention" | "attention-bg" | "attention-text" | "attention-solid" | "overdue" | "overdue-bg" | "overdue-text" | "overdue-solid" | "sev-4" | "sev-4-bg" | "sev-4-text" | "sev-5" | "sev-5-bg" | "sev-5-text" | "success-solid" | "warning-solid" | "info-solid" | "danger-solid" | "chart-1" | "chart-2" | "chart-3" | "chart-4" | "chart-5" | "chart-6" | "chart-7" | "chart-8" | "chart-neutral" | "row" | "row-alt" | "row-pinned-bg" | "row-selected-bg" | "scrollbar-thumb" | "scrollbar-thumb-hover" | "scrollbar-track" | "scrim" | "scrim-strong" | "shadow-sm" | "shadow-popover" | "shadow-overlay" | "highlight-top" | "ease-out" | "ease-out-strong" | "ease-in" | "ease-in-out" | "ease-spring" | "dur-fast" | "dur" | "dur-slow" | "dur-slower" | "lift" | "z-raised" | "z-sticky" | "z-dropdown" | "z-overlay" | "z-tooltip" | "z-toast" | "radius-xs" | "radius-sm" | "radius-md" | "radius-lg" | "radius-pill" | "row-h" | "row-h-compact" | "row-h-comfortable" | "control-h" | "sidebar-w" | "sidebar-w-rail" | "topbar-h" | "scrollbar-size" | "icon-sm" | "icon-md" | "icon-lg" | "peek-w" | "col-w-xs" | "col-w-sm" | "col-w-md" | "col-w-lg" | "col-w-xl" | "col-title-min" | "space-0" | "space-1" | "space-2" | "space-3" | "space-4" | "space-5" | "space-6" | "space-7" | "space-8" | "space-9" | "space-10" | "space-11" | "space-12" | "font-sans" | "font-heading" | "font-mono" | "text-display" | "leading-display" | "text-data-hero" | "leading-data-hero" | "text-h2" | "leading-h2" | "text-h3" | "leading-h3" | "text-body" | "leading-body" | "text-meta" | "leading-meta" | "text-eyebrow" | "leading-eyebrow" | "tracking-tight" | "tracking-eyebrow";
|
|
2
|
+
export type UixTokenName = "bg-app" | "bg-subtle" | "bg-hover" | "bg-active" | "surface" | "surface-2" | "surface-3" | "border" | "border-strong" | "text" | "text-hushed" | "text-muted" | "text-reverse" | "text-hushed-reverse" | "accent" | "accent-dark" | "accent-light" | "accent-hover" | "accent-fg" | "link" | "accent-text" | "ring" | "brand-muted" | "success" | "success-fg" | "success-bg" | "warning" | "warning-fg" | "warning-bg" | "warning-text" | "warning-border" | "info" | "info-fg" | "info-bg" | "info-text" | "danger" | "danger-fg" | "danger-bg" | "danger-border" | "danger-text" | "amber" | "amber-text" | "amber-bg" | "attention" | "attention-bg" | "attention-text" | "attention-solid" | "overdue" | "overdue-bg" | "overdue-text" | "overdue-solid" | "sev-4" | "sev-4-bg" | "sev-4-text" | "sev-5" | "sev-5-bg" | "sev-5-text" | "success-solid" | "warning-solid" | "info-solid" | "danger-solid" | "chart-1" | "chart-2" | "chart-3" | "chart-4" | "chart-5" | "chart-6" | "chart-7" | "chart-8" | "chart-neutral" | "row" | "row-alt" | "row-pinned-bg" | "row-selected-bg" | "scrollbar-thumb" | "scrollbar-thumb-hover" | "scrollbar-track" | "scrim" | "scrim-strong" | "shadow-sm" | "shadow-md" | "shadow-popover" | "shadow-overlay" | "highlight-top" | "ease-out" | "ease-out-strong" | "ease-in" | "ease-in-out" | "ease-spring" | "dur-fast" | "dur" | "dur-slow" | "dur-slower" | "lift" | "z-raised" | "z-sticky" | "z-dropdown" | "z-overlay" | "z-tooltip" | "z-toast" | "radius-xs" | "radius-sm" | "radius-md" | "radius-lg" | "radius-pill" | "row-h" | "row-h-compact" | "row-h-comfortable" | "control-h" | "sidebar-w" | "sidebar-w-rail" | "topbar-h" | "scrollbar-size" | "icon-sm" | "icon-md" | "icon-lg" | "peek-w" | "col-w-xs" | "col-w-sm" | "col-w-md" | "col-w-lg" | "col-w-xl" | "col-title-min" | "space-0" | "space-1" | "space-2" | "space-3" | "space-4" | "space-5" | "space-6" | "space-7" | "space-8" | "space-9" | "space-10" | "space-11" | "space-12" | "font-sans" | "font-heading" | "font-mono" | "text-display" | "leading-display" | "text-data-hero" | "leading-data-hero" | "text-h2" | "leading-h2" | "text-h3" | "leading-h3" | "text-body" | "leading-body" | "text-meta" | "leading-meta" | "text-eyebrow" | "leading-eyebrow" | "tracking-tight" | "tracking-eyebrow";
|
|
3
3
|
export declare const cssVar: Record<UixTokenName, string>;
|
|
4
4
|
export declare const light: Record<UixTokenName, string>;
|
|
5
5
|
export declare const dark: Partial<Record<UixTokenName, string>>;
|
package/build/ts/tokens.js
CHANGED
|
@@ -34,6 +34,7 @@ export const cssVar = {
|
|
|
34
34
|
"warning-fg": "var(--uix-warning-fg)",
|
|
35
35
|
"warning-bg": "var(--uix-warning-bg)",
|
|
36
36
|
"warning-text": "var(--uix-warning-text)",
|
|
37
|
+
"warning-border": "var(--uix-warning-border)",
|
|
37
38
|
"info": "var(--uix-info)",
|
|
38
39
|
"info-fg": "var(--uix-info-fg)",
|
|
39
40
|
"info-bg": "var(--uix-info-bg)",
|
|
@@ -41,6 +42,7 @@ export const cssVar = {
|
|
|
41
42
|
"danger": "var(--uix-danger)",
|
|
42
43
|
"danger-fg": "var(--uix-danger-fg)",
|
|
43
44
|
"danger-bg": "var(--uix-danger-bg)",
|
|
45
|
+
"danger-border": "var(--uix-danger-border)",
|
|
44
46
|
"danger-text": "var(--uix-danger-text)",
|
|
45
47
|
"amber": "var(--uix-amber)",
|
|
46
48
|
"amber-text": "var(--uix-amber-text)",
|
|
@@ -82,6 +84,7 @@ export const cssVar = {
|
|
|
82
84
|
"scrim": "var(--uix-scrim)",
|
|
83
85
|
"scrim-strong": "var(--uix-scrim-strong)",
|
|
84
86
|
"shadow-sm": "var(--uix-shadow-sm)",
|
|
87
|
+
"shadow-md": "var(--uix-shadow-md)",
|
|
85
88
|
"shadow-popover": "var(--uix-shadow-popover)",
|
|
86
89
|
"shadow-overlay": "var(--uix-shadow-overlay)",
|
|
87
90
|
"highlight-top": "var(--uix-highlight-top)",
|
|
@@ -189,6 +192,7 @@ export const light = {
|
|
|
189
192
|
"warning-fg": "#1A1A1A",
|
|
190
193
|
"warning-bg": "#FEF3D6",
|
|
191
194
|
"warning-text": "#92400E",
|
|
195
|
+
"warning-border": "#D97706",
|
|
192
196
|
"info": "#1447E6",
|
|
193
197
|
"info-fg": "#FFFFFF",
|
|
194
198
|
"info-bg": "#E3EBFF",
|
|
@@ -196,6 +200,7 @@ export const light = {
|
|
|
196
200
|
"danger": "#E40014",
|
|
197
201
|
"danger-fg": "#FFFFFF",
|
|
198
202
|
"danger-bg": "#FFE4E6",
|
|
203
|
+
"danger-border": "#E40014",
|
|
199
204
|
"danger-text": "#C20012",
|
|
200
205
|
"amber": "#C98A1E",
|
|
201
206
|
"amber-text": "#795006",
|
|
@@ -237,6 +242,7 @@ export const light = {
|
|
|
237
242
|
"scrim": "rgba(0,0,0,.5)",
|
|
238
243
|
"scrim-strong": "rgba(0,0,0,.7)",
|
|
239
244
|
"shadow-sm": "0 1px 2px rgba(0,0,0,.06)",
|
|
245
|
+
"shadow-md": "0 4px 12px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.05)",
|
|
240
246
|
"shadow-popover": "0 8px 24px rgba(0,0,0,.10),0 1px 2px rgba(0,0,0,.05)",
|
|
241
247
|
"shadow-overlay": "0 16px 48px rgba(0,0,0,.18)",
|
|
242
248
|
"highlight-top": "inset 0 1px 0 rgba(255,255,255,0)",
|
|
@@ -338,6 +344,7 @@ export const dark = {
|
|
|
338
344
|
"warning": "#FCBB00",
|
|
339
345
|
"warning-fg": "#1A1A1A",
|
|
340
346
|
"warning-bg": "rgba(249,156,0,.16)",
|
|
347
|
+
"warning-border": "#CA8A04",
|
|
341
348
|
"warning-text": "#FCBB00",
|
|
342
349
|
"info": "#2563EB",
|
|
343
350
|
"info-fg": "#FFFFFF",
|
|
@@ -346,6 +353,7 @@ export const dark = {
|
|
|
346
353
|
"danger": "#DC2626",
|
|
347
354
|
"danger-fg": "#FFFFFF",
|
|
348
355
|
"danger-bg": "rgba(220,38,38,.20)",
|
|
356
|
+
"danger-border": "#DC2626",
|
|
349
357
|
"danger-text": "#F87171",
|
|
350
358
|
"amber": "#E6B25C",
|
|
351
359
|
"amber-text": "#E6B25C",
|
|
@@ -378,6 +386,10 @@ export const dark = {
|
|
|
378
386
|
"scrollbar-thumb": "rgba(255,255,255,.18)",
|
|
379
387
|
"scrollbar-thumb-hover": "rgba(255,255,255,.30)",
|
|
380
388
|
"highlight-top": "inset 0 1px 0 rgba(255,255,255,.04)",
|
|
389
|
+
"shadow-sm": "0 1px 2px rgba(0,0,0,.40),inset 0 1px 0 rgba(255,255,255,.04)",
|
|
390
|
+
"shadow-md": "0 4px 12px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.04)",
|
|
391
|
+
"shadow-popover": "0 8px 24px rgba(0,0,0,.50),0 1px 2px rgba(0,0,0,.40),inset 0 1px 0 rgba(255,255,255,.05)",
|
|
392
|
+
"shadow-overlay": "0 16px 48px rgba(0,0,0,.60),inset 0 1px 0 rgba(255,255,255,.05)",
|
|
381
393
|
};
|
|
382
394
|
|
|
383
395
|
export const num = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tensor_1/tokens",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.21.0",
|
|
4
4
|
"description": "UIx v2 design tokens — the --uix-* contract for house products (Tensor, POSx, SHOPx). One DTCG source -> CSS variables, Tailwind theme, and typed TS constants.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": [
|
|
@@ -35,11 +35,18 @@
|
|
|
35
35
|
.uix-btn--icon.uix-btn--lg { width: 44px; }
|
|
36
36
|
|
|
37
37
|
.uix-btn[data-loading] { color: transparent !important; position: relative; pointer-events: none; }
|
|
38
|
+
/* The label is hidden (color: transparent), so the ring cannot inherit
|
|
39
|
+
currentColor from the button; each variant names its own foreground.
|
|
40
|
+
TENSOR RX-125 (UIX-01): the ring was on-accent for every variant, so a
|
|
41
|
+
loading secondary/outline/ghost button rendered blank. */
|
|
38
42
|
.uix-btn[data-loading]::after {
|
|
39
43
|
content: ""; position: absolute; width: 1em; height: 1em;
|
|
40
44
|
border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%;
|
|
41
|
-
color: var(--uix-
|
|
45
|
+
color: var(--uix-text); animation: uix-spin .6s linear infinite;
|
|
42
46
|
}
|
|
47
|
+
.uix-btn--primary[data-loading]::after { color: var(--uix-accent-fg); }
|
|
48
|
+
.uix-btn--danger[data-loading]::after { color: var(--uix-danger-fg); }
|
|
49
|
+
.uix-btn--link[data-loading]::after { color: var(--uix-link); }
|
|
43
50
|
|
|
44
51
|
/* attached group */
|
|
45
52
|
.uix-btn-group { display: inline-flex; }
|
|
@@ -36,8 +36,10 @@
|
|
|
36
36
|
.uix-chart__delta[data-tone="warning"] { color: var(--uix-warning-text); }
|
|
37
37
|
.uix-chart__plot { position: relative; min-width: 0; }
|
|
38
38
|
.uix-chart__plot[data-loading] { display: grid; min-height: 180px; place-items: center; border-radius: var(--uix-radius-md); background: var(--uix-bg-subtle); }
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
/* TENSOR RX-125 (UIX-05): the loading text is a real, translatable child
|
|
40
|
+
(ChartLabels.loading), not CSS content. */
|
|
41
|
+
.uix-chart__loading { color: var(--uix-text-muted); font-size: var(--uix-text-meta); }
|
|
42
|
+
.uix-chart__plot[data-loading] > :not(.uix-chart__loading) { position: absolute; opacity: 0; pointer-events: none; }
|
|
41
43
|
.uix-chart__plot[data-empty] {
|
|
42
44
|
display: grid; min-height: 180px; place-items: center; padding: var(--uix-space-6);
|
|
43
45
|
border: 1px dashed var(--uix-border-strong); border-radius: var(--uix-radius-md);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/* uix copy button — an icon-only ghost button that copies a value and confirms with a check.
|
|
2
|
+
Pair it with .uix-btn .uix-btn--ghost .uix-btn--icon; depends only on --uix-* tokens. */
|
|
3
|
+
@layer uix.components {
|
|
4
|
+
.uix-copy-button { flex: none; color: var(--uix-text-muted); }
|
|
5
|
+
.uix-copy-button:hover { color: var(--uix-text); }
|
|
6
|
+
.uix-copy-button svg { width: var(--uix-icon-sm); height: var(--uix-icon-sm); }
|
|
7
|
+
.uix-copy-button[data-copied] { color: var(--uix-success); }
|
|
8
|
+
}
|
|
@@ -217,6 +217,10 @@
|
|
|
217
217
|
|
|
218
218
|
@media (max-width: 720px) {
|
|
219
219
|
.uix-flow--panel { padding: var(--uix-space-4); overflow-x: auto; }
|
|
220
|
+
/* TENSOR RX-125 (UIX-16): branch, loop and mind-map nodes are positioned over a
|
|
221
|
+
scaled canvas; below this width the nodes would overlap, so the canvas keeps a
|
|
222
|
+
minimum width and the panel scrolls, as the linear layout already does. */
|
|
223
|
+
.uix-flow--branch, .uix-flow--loop, .uix-flow--mindmap { min-width: 640px; }
|
|
220
224
|
.uix-flow--linear .uix-flow__row { min-width: max-content; flex-wrap: nowrap; }
|
|
221
225
|
.uix-flow--linear .uix-flow__connector { flex-basis: 38px; }
|
|
222
226
|
}
|
|
@@ -18,7 +18,9 @@
|
|
|
18
18
|
font-size: var(--uix-text-meta);
|
|
19
19
|
color: var(--stage-fg, var(--uix-text-muted));
|
|
20
20
|
background: var(--stage-bg, var(--uix-bg-subtle));
|
|
21
|
-
|
|
21
|
+
/* TENSOR RX-125 (UIX-17): a border-color alone draws nothing. */
|
|
22
|
+
border: 1px solid var(--stage-border, transparent);
|
|
23
|
+
overflow-wrap: anywhere;
|
|
22
24
|
}
|
|
23
25
|
.uix-pipeline__stage:first-child { border-radius: var(--uix-radius-pill) 0 0 var(--uix-radius-pill); }
|
|
24
26
|
.uix-pipeline__stage:last-child { border-radius: 0 var(--uix-radius-pill) var(--uix-radius-pill) 0; }
|
|
@@ -9,7 +9,9 @@
|
|
|
9
9
|
.uix-relationship-graph__node[data-selected] rect,.uix-relationship-graph__node[data-highlighted] rect { fill:var(--uix-brand-muted); stroke:var(--uix-accent); stroke-width:3; } .uix-relationship-graph__node[data-conflicted] rect { fill:var(--uix-danger-bg); stroke:var(--uix-danger); stroke-dasharray:4 2; }
|
|
10
10
|
.uix-relationship-graph__node:focus-visible rect { stroke:var(--uix-ring); stroke-width:4; }
|
|
11
11
|
.uix-relationship-graph__legend { display:flex; gap:var(--uix-space-4); flex-wrap:wrap; margin:0; padding:0; list-style:none; color:var(--uix-text-muted); font-size:var(--uix-text-meta); }
|
|
12
|
-
.uix-relationship-graph__legend li::before { content:""; display:inline-block; width:.8rem; height:.8rem; margin-right:var(--uix-space-1); border:2px solid var(--uix-chart-1); border-radius:var(--uix-radius-pill); vertical-align:middle; }
|
|
12
|
+
.uix-relationship-graph__legend li::before { content:""; display:inline-block; width:.8rem; height:.8rem; margin-right:var(--uix-space-1); border:2px solid var(--uix-graph-type-color, var(--uix-chart-1)); border-radius:var(--uix-radius-pill); vertical-align:middle; }
|
|
13
|
+
/* TENSOR RX-125 (UIX-14): an edge whose type is in the legend draws that type's colour. */
|
|
14
|
+
.uix-relationship-graph__edge[data-typed] { stroke:var(--uix-graph-type-color, var(--uix-border-strong)); }
|
|
13
15
|
.uix-relationship-graph__list { padding:var(--uix-space-3); border:1px solid var(--uix-border); border-radius:var(--uix-radius-lg); background:var(--uix-surface); }
|
|
14
16
|
.uix-relationship-graph__list>ul { display:grid; gap:var(--uix-space-2); margin:var(--uix-space-2) 0 0; padding:0; list-style:none; }
|
|
15
17
|
.uix-relationship-graph__list li { display:flex; justify-content:space-between; gap:var(--uix-space-2); padding:var(--uix-space-2); border-radius:var(--uix-radius-md); background:var(--uix-bg-subtle); }
|
|
@@ -2,12 +2,39 @@
|
|
|
2
2
|
@layer uix.components {
|
|
3
3
|
.uix-stat { background: var(--uix-surface); border: 1px solid var(--uix-border); border-radius: var(--uix-radius-lg); padding: var(--uix-space-6); }
|
|
4
4
|
.uix-stat__label { font-size: var(--uix-text-eyebrow); letter-spacing: var(--uix-tracking-eyebrow); text-transform: uppercase; color: var(--uix-text-muted); display: flex; align-items: center; justify-content: space-between; gap: var(--uix-space-2); }
|
|
5
|
+
.uix-stat__label > span { min-width: 0; overflow-wrap: anywhere; }
|
|
5
6
|
.uix-stat__label svg { width: var(--uix-icon-md); height: var(--uix-icon-md); }
|
|
6
|
-
.uix-stat__value { font-size: var(--uix-text-data-hero); font-weight: 600; line-height: var(--uix-leading-data-hero); margin-top: var(--uix-space-3); }
|
|
7
|
-
.uix-stat__meta { font-size: var(--uix-text-meta); color: var(--uix-text-muted); margin-top: var(--uix-space-2); display: flex; align-items: center; gap: var(--uix-space-2); }
|
|
7
|
+
.uix-stat__value { display: block; font-size: var(--uix-text-data-hero); font-weight: 600; line-height: var(--uix-leading-data-hero); margin-top: var(--uix-space-3); overflow-wrap: anywhere; }
|
|
8
|
+
.uix-stat__meta { font-size: var(--uix-text-meta); color: var(--uix-text-muted); margin-top: var(--uix-space-2); display: flex; flex-wrap: wrap; align-items: center; gap: var(--uix-space-2); overflow-wrap: anywhere; }
|
|
8
9
|
.uix-stat__trend { display: inline-flex; align-items: center; gap: var(--uix-space-1); font-size: var(--uix-text-meta); font-weight: 600; padding: var(--uix-space-1) var(--uix-space-2); border-radius: var(--uix-radius-pill); }
|
|
9
10
|
/* direction glyph inside the chip (UIX-A11Y-4) — sized to sit on the text baseline row */
|
|
10
11
|
.uix-stat__trend svg { width: 10px; height: 10px; flex: none; }
|
|
11
12
|
.uix-stat__trend--up { color: var(--uix-success); background: var(--uix-success-bg); }
|
|
12
13
|
.uix-stat__trend--down { color: var(--uix-danger-text); background: var(--uix-danger-bg); }
|
|
14
|
+
|
|
15
|
+
/* tones — an outlined tile whose value carries the tone; the label keeps its muted colour */
|
|
16
|
+
.uix-stat--warning { border-color: var(--uix-warning-border); }
|
|
17
|
+
.uix-stat--warning .uix-stat__value { color: var(--uix-warning-text); }
|
|
18
|
+
.uix-stat--danger { border-color: var(--uix-danger-border); }
|
|
19
|
+
.uix-stat--danger .uix-stat__value { color: var(--uix-danger-text); }
|
|
20
|
+
|
|
21
|
+
/* compact — for dense fact bands */
|
|
22
|
+
.uix-stat--compact { padding: var(--uix-space-3) var(--uix-space-4); }
|
|
23
|
+
.uix-stat--compact .uix-stat__value { font-size: var(--uix-text-h3); line-height: var(--uix-leading-h3); margin-top: var(--uix-space-1); }
|
|
24
|
+
.uix-stat--compact .uix-stat__meta { margin-top: var(--uix-space-1); }
|
|
25
|
+
|
|
26
|
+
/* interactive — the whole tile is a <button> that opens an editor */
|
|
27
|
+
.uix-stat--interactive {
|
|
28
|
+
display: block; width: 100%; font: inherit; color: inherit; text-align: start; cursor: pointer;
|
|
29
|
+
transition: background-color var(--uix-dur-fast) var(--uix-ease-out), border-color var(--uix-dur-fast) var(--uix-ease-out);
|
|
30
|
+
}
|
|
31
|
+
.uix-stat--interactive:hover { background: var(--uix-bg-hover); border-color: var(--uix-border-strong); }
|
|
32
|
+
.uix-stat--interactive.uix-stat--warning:hover { border-color: var(--uix-warning-border); }
|
|
33
|
+
.uix-stat--interactive.uix-stat--danger:hover { border-color: var(--uix-danger-border); }
|
|
34
|
+
.uix-stat--interactive:focus-visible { outline: 2px solid var(--uix-ring); outline-offset: 2px; }
|
|
35
|
+
.uix-stat--interactive[aria-expanded="true"] { border-color: var(--uix-ring); }
|
|
36
|
+
.uix-stat__chevron { display: inline-flex; flex: none; margin-inline-start: auto; color: var(--uix-text-muted); }
|
|
37
|
+
.uix-stat__label .uix-stat__chevron svg { width: var(--uix-icon-sm); height: var(--uix-icon-sm); transition: transform var(--uix-dur-fast) var(--uix-ease-out); }
|
|
38
|
+
.uix-stat--interactive[aria-expanded="true"] .uix-stat__chevron svg { transform: rotate(180deg); }
|
|
39
|
+
@media (prefers-reduced-motion: reduce) { .uix-stat--interactive, .uix-stat__label .uix-stat__chevron svg { transition: none; } }
|
|
13
40
|
}
|
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
column sizing, bulk actions, row actions, expandable rows, inline edit, resize,
|
|
3
3
|
search highlight, responsive ladder + compare. Depends only on --uix-* tokens. */
|
|
4
4
|
@layer uix.components {
|
|
5
|
-
|
|
5
|
+
/* TENSOR RX-125 (UIX-07): no height cap by default — a nested scroller hid rows
|
|
6
|
+
below 460px on every table. Opt in with .uix-table-wrap--scroll or set
|
|
7
|
+
--uix-table-max-height. */
|
|
8
|
+
.uix-table-wrap { overflow: auto; border: 1px solid var(--uix-border); border-radius: var(--uix-radius-lg); background: var(--uix-surface); }
|
|
9
|
+
.uix-table-wrap--scroll { max-height: var(--uix-table-max-height, 460px); }
|
|
6
10
|
.uix-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: var(--uix-text-body); }
|
|
7
11
|
|
|
8
12
|
.uix-table thead th {
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
.uix-tab {
|
|
5
5
|
border: 0; background: transparent; font: inherit; font-size: var(--uix-text-body); font-weight: 500;
|
|
6
6
|
color: var(--uix-text-hushed); padding: var(--uix-space-3) var(--uix-space-3); cursor: pointer; position: relative;
|
|
7
|
+
/* long or translated labels wrap (two lines at the 16rem cap) instead of truncating */
|
|
8
|
+
white-space: normal; max-width: 16rem; text-align: start;
|
|
7
9
|
transition: color var(--uix-dur-fast) var(--uix-ease-out), background-color var(--uix-dur-fast) var(--uix-ease-out);
|
|
8
10
|
}
|
|
9
11
|
.uix-tab:hover { color: var(--uix-text); }
|
|
@@ -28,4 +30,38 @@
|
|
|
28
30
|
.uix-tabs--pill { display: inline-flex; background: var(--uix-bg-subtle); padding: var(--uix-space-1); border-radius: var(--uix-radius-md); }
|
|
29
31
|
.uix-tabs--pill .uix-tab { padding: var(--uix-space-2) var(--uix-space-4); border-radius: calc(var(--uix-radius-md) - 3px); }
|
|
30
32
|
.uix-tabs--pill .uix-tab[aria-selected="true"] { background: var(--uix-surface); box-shadow: var(--uix-shadow-sm); }
|
|
33
|
+
|
|
34
|
+
/* overflow="scroll" — one scrolling row inside .uix-tabs-scroller; edge buttons appear only
|
|
35
|
+
on the side that has hidden tabs. Keyboard users move with Arrow/Home/End, so the buttons
|
|
36
|
+
are pointer-only (aria-hidden, tabindex -1). */
|
|
37
|
+
.uix-tabs-scroller { position: relative; min-width: 0; max-width: 100%; }
|
|
38
|
+
.uix-tabs--scroll {
|
|
39
|
+
display: flex; flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden;
|
|
40
|
+
scrollbar-width: none; scroll-behavior: smooth; overscroll-behavior-x: contain;
|
|
41
|
+
}
|
|
42
|
+
.uix-tabs--scroll::-webkit-scrollbar { display: none; }
|
|
43
|
+
.uix-tabs--scroll .uix-tab { flex: none; }
|
|
44
|
+
/* a scroll container clips the -1px overlaps the line/enclosed variants use, so the base
|
|
45
|
+
rule is drawn inside the box instead */
|
|
46
|
+
.uix-tabs--scroll.uix-tabs--line, .uix-tabs--scroll.uix-tabs--enclosed { border-bottom: 0; box-shadow: inset 0 -1px 0 var(--uix-border); }
|
|
47
|
+
.uix-tabs--scroll.uix-tabs--line .uix-tab::after { bottom: 0; }
|
|
48
|
+
.uix-tabs--scroll.uix-tabs--enclosed .uix-tab { margin-bottom: 0; }
|
|
49
|
+
.uix-tabs--scroll.uix-tabs--pill { display: flex; }
|
|
50
|
+
|
|
51
|
+
.uix-tabs-scroller__prev, .uix-tabs-scroller__next {
|
|
52
|
+
position: absolute; top: 0; bottom: 0; z-index: var(--uix-z-raised);
|
|
53
|
+
display: flex; align-items: center; justify-content: center;
|
|
54
|
+
width: var(--uix-control-h); padding: 0; border: 0; cursor: pointer;
|
|
55
|
+
color: var(--uix-text-hushed); font: inherit;
|
|
56
|
+
}
|
|
57
|
+
.uix-tabs-scroller__prev[hidden], .uix-tabs-scroller__next[hidden] { display: none; }
|
|
58
|
+
.uix-tabs-scroller__prev { inset-inline-start: 0; background: linear-gradient(to right, var(--uix-bg-app) 60%, transparent); }
|
|
59
|
+
.uix-tabs-scroller__next { inset-inline-end: 0; background: linear-gradient(to left, var(--uix-bg-app) 60%, transparent); }
|
|
60
|
+
.uix-tabs-scroller__prev:dir(rtl) { background: linear-gradient(to left, var(--uix-bg-app) 60%, transparent); }
|
|
61
|
+
.uix-tabs-scroller__next:dir(rtl) { background: linear-gradient(to right, var(--uix-bg-app) 60%, transparent); }
|
|
62
|
+
.uix-tabs-scroller__prev:hover, .uix-tabs-scroller__next:hover { color: var(--uix-text); }
|
|
63
|
+
.uix-tabs-scroller__prev svg, .uix-tabs-scroller__next svg { width: var(--uix-icon-sm); height: var(--uix-icon-sm); }
|
|
64
|
+
.uix-tabs-scroller__prev:dir(rtl) svg, .uix-tabs-scroller__next:dir(rtl) svg { transform: scaleX(-1); }
|
|
65
|
+
|
|
66
|
+
@media (prefers-reduced-motion: reduce) { .uix-tabs--scroll { scroll-behavior: auto; } }
|
|
31
67
|
}
|
|
@@ -3,15 +3,27 @@
|
|
|
3
3
|
selection, and collapse styling all key off the item, not the row (UIX-FIX-04). */
|
|
4
4
|
@layer uix.components {
|
|
5
5
|
.uix-tree, .uix-tree ul { list-style: none; margin: 0; padding: 0; }
|
|
6
|
-
.uix-tree__group { padding-left: var(--uix-space-5); }
|
|
6
|
+
.uix-tree__group { padding-left: var(--uix-tree-indent-step, var(--uix-space-5)); }
|
|
7
|
+
/* TENSOR RX-125 (UIX-08): the indent stops growing past level 4 — a guide line
|
|
8
|
+
marks the depth instead, so deep nodes keep room for their names. */
|
|
9
|
+
.uix-tree__group .uix-tree__group .uix-tree__group .uix-tree__group .uix-tree__group {
|
|
10
|
+
padding-left: var(--uix-space-1); margin-left: var(--uix-space-1); border-left: 1px solid var(--uix-border);
|
|
11
|
+
}
|
|
7
12
|
.uix-tree__item { outline: none; } /* the focus ring is drawn on the row, below */
|
|
8
13
|
.uix-tree__row { display: flex; align-items: center; gap: var(--uix-space-2); padding: var(--uix-space-2) var(--uix-space-2); border-radius: var(--uix-radius-sm); cursor: pointer; color: var(--uix-text); font-size: var(--uix-text-body); }
|
|
9
|
-
|
|
14
|
+
/* Labels wrap to two lines rather than truncating to one (UIX-08). */
|
|
15
|
+
.uix-tree__label {
|
|
16
|
+
min-width: 0; overflow: hidden; overflow-wrap: anywhere;
|
|
17
|
+
display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2;
|
|
18
|
+
}
|
|
10
19
|
.uix-tree__item > .uix-tree__row:hover { background: var(--uix-bg-hover); }
|
|
11
20
|
.uix-tree__item[aria-selected="true"] > .uix-tree__row { background: var(--uix-bg-active); }
|
|
12
21
|
.uix-tree__item:focus-visible > .uix-tree__row { outline: 2px solid var(--uix-ring); outline-offset: -2px; }
|
|
13
22
|
.uix-tree__toggle { width: 16px; height: 16px; flex: none; display: grid; place-items: center; color: var(--uix-text-muted); transition: transform var(--uix-dur) var(--uix-ease-out); }
|
|
14
23
|
.uix-tree__toggle svg { width: 14px; height: 14px; }
|
|
24
|
+
/* UIX-09: the chevron is a button (pointer target for toggling without selecting). */
|
|
25
|
+
button.uix-tree__toggle { appearance: none; background: none; border: 0; padding: 0; cursor: pointer; border-radius: var(--uix-radius-sm); }
|
|
26
|
+
button.uix-tree__toggle:hover { background: var(--uix-bg-hover); color: var(--uix-text); }
|
|
15
27
|
.uix-tree__item[aria-expanded="false"] > .uix-tree__row .uix-tree__toggle { transform: rotate(-90deg); }
|
|
16
28
|
.uix-tree__item[aria-expanded="false"] > .uix-tree__group { display: none; }
|
|
17
29
|
}
|
package/styles/utilities.css
CHANGED
|
@@ -17,9 +17,9 @@
|
|
|
17
17
|
.uix-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
18
18
|
|
|
19
19
|
/* elevation — apply the surface shadow tokens as a utility (cards/panels,
|
|
20
|
-
floating popovers/menus/dialogs, pressed/active pills). In dark mode
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
floating popovers/menus/dialogs, pressed/active pills). In dark mode the
|
|
21
|
+
shadow tokens are redefined (tokens/dark/effect.json) as a stronger drop
|
|
22
|
+
plus the inset top highlight, so an elevated surface still reads as lifted. */
|
|
23
23
|
.uix-elevated { box-shadow: var(--uix-shadow-sm); }
|
|
24
24
|
.uix-elevated-popover { box-shadow: var(--uix-shadow-popover); }
|
|
25
25
|
.uix-elevated-pill { box-shadow: var(--uix-shadow-sm); }
|
package/tokens/base/color.json
CHANGED
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"warning-fg": { "$type": "color", "$value": "#1A1A1A" },
|
|
33
33
|
"warning-bg": { "$type": "color", "$value": "#FEF3D6" },
|
|
34
34
|
"warning-text": { "$type": "color", "$value": "#92400E", "$description": "Warning-toned TEXT, legible on the faint --uix-warning-bg in light mode — the bright --uix-warning (#F99C00) fails contrast on pale yellow, so the foreground is a hand-darkened amber. Dark mode overrides to track --uix-warning. Used by status-pill --warning." },
|
|
35
|
+
"warning-border": { "$type": "color", "$value": "#D97706", "$description": "Warning-toned BORDER for an outlined container on a neutral surface (stat tile --warning). The bright --uix-warning is 2.1:1 on white; this amber clears the 3:1 non-text minimum on --uix-surface and --uix-bg-app." },
|
|
35
36
|
"info": { "$type": "color", "$value": "#1447E6" },
|
|
36
37
|
"info-fg": { "$type": "color", "$value": "#FFFFFF" },
|
|
37
38
|
"info-bg": { "$type": "color", "$value": "#E3EBFF" },
|
|
@@ -39,6 +40,7 @@
|
|
|
39
40
|
"danger": { "$type": "color", "$value": "#E40014" },
|
|
40
41
|
"danger-fg": { "$type": "color", "$value": "#FFFFFF" },
|
|
41
42
|
"danger-bg": { "$type": "color", "$value": "#FFE4E6" },
|
|
43
|
+
"danger-border": { "$type": "color", "$value": "#E40014", "$description": "Danger-toned BORDER for an outlined container on a neutral surface (stat tile --danger). 4.9:1 on white, so it clears the 3:1 non-text minimum; a separate role so a theme can soften the outline without touching the solid --uix-danger." },
|
|
42
44
|
"danger-text": { "$type": "color", "$value": "#C20012", "$description": "Danger-toned TEXT, legible on --uix-danger-bg (the bright --uix-danger #E40014 is only 4.05:1 on #FFE4E6). A hand-darkened red for text; --uix-danger stays the SOLID role (danger button bg, critical pill, dots). Dark mode brightens it. Used by pill/alert/stat-trend/field-error/menu/sla/node/audit --danger." },
|
|
43
45
|
"amber": { "$type": "color", "$value": "#C98A1E", "$description": "SEV-3 / medium-severity tone — the third tier of the severity ramp (danger = SEV-1, warning = SEV-2, amber = SEV-3). A muted ochre, deliberately distinct from the brighter --uix-warning so the three tiers read apart." },
|
|
44
46
|
"amber-text": { "$type": "color", "$value": "#795006", "$description": "Amber-toned TEXT, legible on a faint amber tint and on dark surfaces (the SEV-3 ochre is too light as text on pale fills). Dark mode brightens it to track --uix-amber. Used by severity-3 badges." },
|
package/tokens/base/effect.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"shadow-sm": { "$type": "shadow", "$value": "0 1px 2px rgba(0,0,0,.06)" },
|
|
3
|
+
"shadow-md": { "$type": "shadow", "$value": "0 4px 12px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.05)", "$description": "RX-125 UIX-03 — a hover lift between sm and popover (the interactive card referenced it; it was never defined)." },
|
|
3
4
|
"shadow-popover": { "$type": "shadow", "$value": "0 8px 24px rgba(0,0,0,.10),0 1px 2px rgba(0,0,0,.05)" },
|
|
4
5
|
"shadow-overlay": { "$type": "shadow", "$value": "0 16px 48px rgba(0,0,0,.18)" },
|
|
5
6
|
"highlight-top": { "$type": "shadow", "$value": "inset 0 1px 0 rgba(255,255,255,0)" },
|
package/tokens/dark/color.json
CHANGED
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"warning": { "$type": "color", "$value": "#FCBB00" },
|
|
27
27
|
"warning-fg": { "$type": "color", "$value": "#1A1A1A" },
|
|
28
28
|
"warning-bg": { "$type": "color", "$value": "rgba(249,156,0,.16)" },
|
|
29
|
+
"warning-border": { "$type": "color", "$value": "#CA8A04", "$description": "On dark, a deeper amber than the bright --uix-warning so the outline reads as a tone rather than a highlight; 6:1 on --uix-surface #111111." },
|
|
29
30
|
"warning-text": { "$type": "color", "$value": "var(--uix-warning,#FCBB00)", "$description": "On dark the faint bg is dark enough that the bright warning hue reads as text — track --uix-warning live (fallback to the dark warning value)." },
|
|
30
31
|
"info": { "$type": "color", "$value": "#2563EB" },
|
|
31
32
|
"info-fg": { "$type": "color", "$value": "#FFFFFF" },
|
|
@@ -34,6 +35,7 @@
|
|
|
34
35
|
"danger": { "$type": "color", "$value": "#DC2626" },
|
|
35
36
|
"danger-fg": { "$type": "color", "$value": "#FFFFFF" },
|
|
36
37
|
"danger-bg": { "$type": "color", "$value": "rgba(220,38,38,.20)" },
|
|
38
|
+
"danger-border": { "$type": "color", "$value": "#DC2626", "$description": "On dark, the solid danger red as an outline; 4.3:1 on --uix-surface #111111." },
|
|
37
39
|
"danger-text": { "$type": "color", "$value": "#F87171", "$description": "On dark, the deep --uix-danger #DC2626 fails as text on the faint danger tint and on plain surfaces — brightened so pill/field-error/stat-trend/menu/node/audit text reads AA. --uix-danger stays the solid critical-pill / button bg (with white --uix-danger-fg)." },
|
|
38
40
|
"amber": { "$type": "color", "$value": "#E6B25C", "$description": "SEV-3 tone lightened for dark surfaces (the light-mode ochre #C98A1E is too dark on dark)." },
|
|
39
41
|
"amber-text": { "$type": "color", "$value": "#E6B25C", "$description": "On dark the lightened amber reads as text directly — tracks --uix-amber." },
|
package/tokens/dark/effect.json
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"highlight-top": { "$type": "shadow", "$value": "inset 0 1px 0 rgba(255,255,255,.04)" }
|
|
2
|
+
"highlight-top": { "$type": "shadow", "$value": "inset 0 1px 0 rgba(255,255,255,.04)" },
|
|
3
|
+
"shadow-sm": { "$type": "shadow", "$value": "0 1px 2px rgba(0,0,0,.40),inset 0 1px 0 rgba(255,255,255,.04)", "$description": "RX-125 UIX-02 — dark elevation: a stronger drop (a light-mode 6% shadow is invisible on a dark surface) plus the top highlight that reads as the lit edge." },
|
|
4
|
+
"shadow-md": { "$type": "shadow", "$value": "0 4px 12px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.04)" },
|
|
5
|
+
"shadow-popover": { "$type": "shadow", "$value": "0 8px 24px rgba(0,0,0,.50),0 1px 2px rgba(0,0,0,.40),inset 0 1px 0 rgba(255,255,255,.05)" },
|
|
6
|
+
"shadow-overlay": { "$type": "shadow", "$value": "0 16px 48px rgba(0,0,0,.60),inset 0 1px 0 rgba(255,255,255,.05)" }
|
|
3
7
|
}
|