orbcafe-ui 2.0.0 → 2.0.1
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/BRAND_THEMING.md +45 -0
- package/MIGRATION_V2.md +161 -0
- package/README.md +8 -10
- package/bin/lib/theme-core.mjs +446 -0
- package/bin/orbcafe-theme.mjs +169 -0
- package/dist/index.css +1 -0
- package/dist/index.d.mts +59 -4
- package/dist/index.d.ts +59 -4
- package/dist/index.js +17 -17
- package/dist/index.mjs +16 -16
- package/dist/orbis.css +249 -322
- package/dist/themes/nvidia.css +36 -0
- package/dist/themes/nvidia.tokens.mjs +117 -0
- package/dist/themes/orbis/fonts/montserrat-300.otf +0 -0
- package/dist/themes/orbis/fonts/montserrat-500.otf +0 -0
- package/dist/themes/orbis/fonts/montserrat-600.otf +0 -0
- package/dist/themes/orbis/fonts/montserrat-700.otf +0 -0
- package/dist/themes/orbis.css +62 -0
- package/dist/themes/orbis.tokens.mjs +117 -0
- package/package.json +23 -7
package/dist/orbis.css
CHANGED
|
@@ -22,7 +22,10 @@
|
|
|
22
22
|
========================================================================== */
|
|
23
23
|
|
|
24
24
|
:root {
|
|
25
|
-
|
|
25
|
+
/* Brand base — theme packs (themes/<brand>.css) override these; everything
|
|
26
|
+
below derives from them via color-mix, so the whole UI re-skins at once. */
|
|
27
|
+
--orb-font-brand: "Montserrat";
|
|
28
|
+
--orb-font: var(--orb-font-brand), system-ui, -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
|
|
26
29
|
--orb-r: 10px;
|
|
27
30
|
--orb-r-container: var(--orb-r);
|
|
28
31
|
--orb-t-fast: 0.2s ease;
|
|
@@ -34,18 +37,18 @@
|
|
|
34
37
|
--orb-surface-3: #f5f5f5;
|
|
35
38
|
--orb-fg: #555555;
|
|
36
39
|
--orb-fg-strong: #555555;
|
|
37
|
-
--orb-table-fg: color-mix(in oklch,
|
|
40
|
+
--orb-table-fg: color-mix(in oklch, var(--orb-fg) 92%, #01091a);
|
|
38
41
|
--orb-muted: #8c8c8c;
|
|
39
42
|
--orb-border: #dbdbdb;
|
|
40
43
|
--orb-primary: #154194;
|
|
41
44
|
--orb-on-primary: #ffffff;
|
|
42
|
-
--orb-link:
|
|
43
|
-
--orb-p50: color-mix(in oklch,
|
|
44
|
-
--orb-p100: color-mix(in oklch,
|
|
45
|
-
--orb-p200: color-mix(in oklch,
|
|
46
|
-
--orb-p300: color-mix(in oklch,
|
|
47
|
-
--orb-p600: color-mix(in oklch,
|
|
48
|
-
--orb-p700: color-mix(in oklch,
|
|
45
|
+
--orb-link: var(--orb-primary);
|
|
46
|
+
--orb-p50: color-mix(in oklch, var(--orb-primary) 6%, var(--orb-canvas));
|
|
47
|
+
--orb-p100: color-mix(in oklch, var(--orb-primary) 14%, var(--orb-canvas));
|
|
48
|
+
--orb-p200: color-mix(in oklch, var(--orb-primary) 28%, var(--orb-canvas));
|
|
49
|
+
--orb-p300: color-mix(in oklch, var(--orb-primary) 45%, var(--orb-canvas));
|
|
50
|
+
--orb-p600: color-mix(in oklch, var(--orb-primary) 85%, #000000);
|
|
51
|
+
--orb-p700: color-mix(in oklch, var(--orb-primary) 70%, #000000);
|
|
49
52
|
--orb-accent: #fc4c02;
|
|
50
53
|
--orb-divider: var(--orb-border);
|
|
51
54
|
--orb-primary-bg: var(--orb-p50);
|
|
@@ -54,18 +57,39 @@
|
|
|
54
57
|
--orb-success: var(--orb-primary);
|
|
55
58
|
--orb-success-bg: var(--orb-p50);
|
|
56
59
|
--orb-warn: var(--orb-accent);
|
|
57
|
-
--orb-err: color-mix(in oklch,
|
|
58
|
-
--orb-err-bg: color-mix(in oklch,
|
|
59
|
-
--orb-warn-bg: color-mix(in oklch,
|
|
60
|
-
--orb-hover: color-mix(in oklch,
|
|
61
|
-
--orb-selected: color-mix(in oklch,
|
|
62
|
-
--orb-focus-ring: color-mix(in oklch,
|
|
63
|
-
--orb-focus-solid:
|
|
64
|
-
--orb-disabled-fg: color-mix(in oklch,
|
|
65
|
-
--orb-disabled-bg: color-mix(in oklch,
|
|
60
|
+
--orb-err: color-mix(in oklch, var(--orb-accent) 75%, #000000);
|
|
61
|
+
--orb-err-bg: color-mix(in oklch, var(--orb-accent) 7%, var(--orb-canvas));
|
|
62
|
+
--orb-warn-bg: color-mix(in oklch, var(--orb-accent) 8%, var(--orb-canvas));
|
|
63
|
+
--orb-hover: color-mix(in oklch, var(--orb-primary) 6%, transparent);
|
|
64
|
+
--orb-selected: color-mix(in oklch, var(--orb-primary) 10%, transparent);
|
|
65
|
+
--orb-focus-ring: color-mix(in oklch, var(--orb-primary) 18%, transparent);
|
|
66
|
+
--orb-focus-solid: var(--orb-primary);
|
|
67
|
+
--orb-disabled-fg: color-mix(in oklch, var(--orb-fg) 45%, var(--orb-canvas));
|
|
68
|
+
--orb-disabled-bg: color-mix(in oklch, var(--orb-fg) 8%, var(--orb-canvas));
|
|
66
69
|
--orb-chart-grid: #dbdbdb;
|
|
67
70
|
--orb-chart-text: #8c8c8c;
|
|
71
|
+
/* Chart series + data states (theme packs override per brand) */
|
|
72
|
+
--orb-chart-1: var(--orb-primary);
|
|
73
|
+
--orb-chart-2: var(--orb-p300);
|
|
74
|
+
--orb-chart-3: var(--orb-muted);
|
|
75
|
+
--orb-chart-4: var(--orb-p700);
|
|
76
|
+
--orb-chart-5: var(--orb-accent);
|
|
77
|
+
--orb-chart-6: var(--orb-p200);
|
|
78
|
+
--orb-chart-positive: #66bb6a;
|
|
79
|
+
--orb-chart-negative: #ef5350;
|
|
68
80
|
--orb-track: #f5f5f5;
|
|
81
|
+
--orb-inverse-surface: #01091a;
|
|
82
|
+
--orb-inverse-fg: #ffffff;
|
|
83
|
+
--orb-inverse-link: #91a8d1;
|
|
84
|
+
--orb-ai-accent: #21bcff;
|
|
85
|
+
/* Conventional status hues used by the Pad module; theme packs may override
|
|
86
|
+
to align with the brand's --orb-primary/--orb-accent discipline. */
|
|
87
|
+
--orb-status-fg: #475569;
|
|
88
|
+
--orb-status-primary: #1d4ed8;
|
|
89
|
+
--orb-status-success: #047857;
|
|
90
|
+
--orb-status-warning: #b45309;
|
|
91
|
+
--orb-status-error: #b91c1c;
|
|
92
|
+
--orb-status-info: #0369a1;
|
|
69
93
|
--orb-shadow-1: 0 1px 2px rgba(1, 9, 26, 0.05), 0 2px 6px rgba(1, 9, 26, 0.06);
|
|
70
94
|
--orb-shadow-2: 0 4px 14px rgba(1, 9, 26, 0.1);
|
|
71
95
|
--orb-shadow-3: 0 12px 32px rgba(1, 9, 26, 0.16);
|
|
@@ -76,8 +100,8 @@
|
|
|
76
100
|
[data-orb-mode="dark"] {
|
|
77
101
|
--orb-canvas: #01091a;
|
|
78
102
|
--orb-surface: #0a1526;
|
|
79
|
-
--orb-surface-2: color-mix(in oklch, #ffffff 5%,
|
|
80
|
-
--orb-surface-3: color-mix(in oklch, #ffffff 9%,
|
|
103
|
+
--orb-surface-2: color-mix(in oklch, #ffffff 5%, var(--orb-canvas));
|
|
104
|
+
--orb-surface-3: color-mix(in oklch, #ffffff 9%, var(--orb-canvas));
|
|
81
105
|
--orb-fg: #ffffff;
|
|
82
106
|
--orb-fg-strong: #ffffff;
|
|
83
107
|
--orb-table-fg: #ffffff;
|
|
@@ -85,13 +109,13 @@
|
|
|
85
109
|
--orb-border: rgba(255, 255, 255, 0.12);
|
|
86
110
|
--orb-primary: #154194;
|
|
87
111
|
--orb-on-primary: #ffffff;
|
|
88
|
-
--orb-link: color-mix(in oklch,
|
|
89
|
-
--orb-p50: color-mix(in oklch,
|
|
90
|
-
--orb-p100: color-mix(in oklch,
|
|
91
|
-
--orb-p200: color-mix(in oklch,
|
|
92
|
-
--orb-p300: color-mix(in oklch,
|
|
93
|
-
--orb-p600: color-mix(in oklch,
|
|
94
|
-
--orb-p700: color-mix(in oklch,
|
|
112
|
+
--orb-link: color-mix(in oklch, var(--orb-primary) 45%, #ffffff);
|
|
113
|
+
--orb-p50: color-mix(in oklch, var(--orb-primary) 22%, var(--orb-canvas));
|
|
114
|
+
--orb-p100: color-mix(in oklch, var(--orb-primary) 32%, var(--orb-canvas));
|
|
115
|
+
--orb-p200: color-mix(in oklch, var(--orb-primary) 28%, #ffffff);
|
|
116
|
+
--orb-p300: color-mix(in oklch, var(--orb-primary) 45%, #ffffff);
|
|
117
|
+
--orb-p600: color-mix(in oklch, var(--orb-primary) 85%, #ffffff);
|
|
118
|
+
--orb-p700: color-mix(in oklch, var(--orb-primary) 60%, #ffffff);
|
|
95
119
|
--orb-accent: #fc4c02;
|
|
96
120
|
--orb-divider: var(--orb-border);
|
|
97
121
|
--orb-primary-bg: var(--orb-p50);
|
|
@@ -100,18 +124,27 @@
|
|
|
100
124
|
--orb-success: var(--orb-p300);
|
|
101
125
|
--orb-success-bg: var(--orb-p50);
|
|
102
126
|
--orb-warn: var(--orb-accent);
|
|
103
|
-
--orb-err: color-mix(in oklch,
|
|
104
|
-
--orb-err-bg: color-mix(in oklch,
|
|
105
|
-
--orb-warn-bg: color-mix(in oklch,
|
|
127
|
+
--orb-err: color-mix(in oklch, var(--orb-accent) 88%, #000000);
|
|
128
|
+
--orb-err-bg: color-mix(in oklch, var(--orb-accent) 16%, var(--orb-canvas));
|
|
129
|
+
--orb-warn-bg: color-mix(in oklch, var(--orb-accent) 18%, var(--orb-canvas));
|
|
106
130
|
--orb-hover: rgba(255, 255, 255, 0.08);
|
|
107
|
-
--orb-selected: color-mix(in oklch,
|
|
108
|
-
--orb-focus-ring: color-mix(in oklch,
|
|
109
|
-
--orb-focus-solid: color-mix(in oklch,
|
|
131
|
+
--orb-selected: color-mix(in oklch, var(--orb-primary) 45%, transparent);
|
|
132
|
+
--orb-focus-ring: color-mix(in oklch, var(--orb-primary) 45%, #ffffff 25%);
|
|
133
|
+
--orb-focus-solid: color-mix(in oklch, var(--orb-primary) 45%, #ffffff);
|
|
110
134
|
--orb-disabled-fg: rgba(255, 255, 255, 0.38);
|
|
111
135
|
--orb-disabled-bg: rgba(255, 255, 255, 0.07);
|
|
112
136
|
--orb-chart-grid: rgba(255, 255, 255, 0.12);
|
|
113
137
|
--orb-chart-text: rgba(255, 255, 255, 0.7);
|
|
114
138
|
--orb-track: rgba(255, 255, 255, 0.1);
|
|
139
|
+
--orb-inverse-surface: #01091a;
|
|
140
|
+
--orb-inverse-fg: #ffffff;
|
|
141
|
+
/* status hues brightened for dark surfaces (≈ Tailwind -400 ramp) */
|
|
142
|
+
--orb-status-fg: #94a3b8;
|
|
143
|
+
--orb-status-primary: #60a5fa;
|
|
144
|
+
--orb-status-success: #34d399;
|
|
145
|
+
--orb-status-warning: #fbbf24;
|
|
146
|
+
--orb-status-error: #f87171;
|
|
147
|
+
--orb-status-info: #38bdf8;
|
|
115
148
|
--orb-shadow-1: 0 1px 2px rgba(0, 0, 0, 0.4), 0 2px 8px rgba(0, 0, 0, 0.35);
|
|
116
149
|
--orb-shadow-2: 0 4px 16px rgba(0, 0, 0, 0.5);
|
|
117
150
|
--orb-shadow-3: 0 12px 32px rgba(0, 0, 0, 0.55);
|
|
@@ -130,12 +163,24 @@
|
|
|
130
163
|
background: var(--orb-selected);
|
|
131
164
|
}
|
|
132
165
|
|
|
166
|
+
/* Shared focus ring — component sections rely on these two rules. */
|
|
133
167
|
.orb-root :focus-visible,
|
|
134
|
-
.orb-focus-visible:focus-visible
|
|
168
|
+
.orb-focus-visible:focus-visible,
|
|
169
|
+
.orb-chk input:focus-visible,
|
|
170
|
+
.orb-rdo input:focus-visible,
|
|
171
|
+
.orb-sw input:focus-visible,
|
|
172
|
+
.orb-app-header-ai-action:focus-visible {
|
|
135
173
|
outline: 2px solid var(--orb-focus-solid);
|
|
136
174
|
outline-offset: 1px;
|
|
137
175
|
}
|
|
138
176
|
|
|
177
|
+
.orb-segmented-control:has(.orb-segmented-control-item:focus-visible),
|
|
178
|
+
.orb-app-header-user-trigger:focus-visible,
|
|
179
|
+
.orb-app-header-locale:focus-visible {
|
|
180
|
+
outline: 2px solid var(--orb-focus-solid);
|
|
181
|
+
outline-offset: 2px;
|
|
182
|
+
}
|
|
183
|
+
|
|
139
184
|
/* typography helpers (type scale from the handoff §2) */
|
|
140
185
|
.orb-h1 { font: 600 32px/1.25 var(--orb-font); color: var(--orb-fg-strong); }
|
|
141
186
|
.orb-h2 { font: 600 24px/1.3 var(--orb-font); color: var(--orb-fg-strong); }
|
|
@@ -143,8 +188,8 @@
|
|
|
143
188
|
.orb-subtitle { font: 500 16px/1.4 var(--orb-font); color: var(--orb-fg); }
|
|
144
189
|
.orb-body { font: 300 16px/1.5 var(--orb-font); color: var(--orb-fg); }
|
|
145
190
|
.orb-body-dense { font: 300 14px/1.5 var(--orb-font); color: var(--orb-fg); }
|
|
146
|
-
.orb-label { font: 500 13px/1.3 var(--orb-font); color: var(--orb-fg); }
|
|
147
|
-
.orb-meta { font: 500 12px/1.4 var(--orb-font); color: var(--orb-muted); }
|
|
191
|
+
.orb-label, .orb-fld > label, .orb-fld-label { font: 500 13px/1.3 var(--orb-font); color: var(--orb-fg); }
|
|
192
|
+
.orb-meta, .orb-fld-msg { font: 500 12px/1.4 var(--orb-font); color: var(--orb-muted); }
|
|
148
193
|
.orb-overline {
|
|
149
194
|
font: 500 11px/1.4 var(--orb-font);
|
|
150
195
|
letter-spacing: 0.06em;
|
|
@@ -162,7 +207,8 @@
|
|
|
162
207
|
border: none;
|
|
163
208
|
padding: 0;
|
|
164
209
|
}
|
|
165
|
-
.orb-link:hover
|
|
210
|
+
.orb-link:hover,
|
|
211
|
+
.orb-tbl a:hover { text-decoration: underline; }
|
|
166
212
|
|
|
167
213
|
.orb-divider { border: none; border-top: 1px solid var(--orb-border); }
|
|
168
214
|
.orb-divider-v { border: none; border-left: 1px solid var(--orb-border); }
|
|
@@ -190,9 +236,9 @@
|
|
|
190
236
|
.orb-btn-primary:hover:not(:disabled) { background: var(--orb-p600); }
|
|
191
237
|
.orb-btn-primary:active:not(:disabled) { background: var(--orb-p700); box-shadow: none; }
|
|
192
238
|
.orb-btn-secondary { background: transparent; color: var(--orb-primary); border-color: var(--orb-primary); }
|
|
193
|
-
.orb-btn-secondary:hover:not(:disabled)
|
|
194
|
-
.orb-btn-ghost { background: transparent; color: var(--orb-primary); }
|
|
239
|
+
.orb-btn-secondary:hover:not(:disabled),
|
|
195
240
|
.orb-btn-ghost:hover:not(:disabled) { background: var(--orb-hover); }
|
|
241
|
+
.orb-btn-ghost { background: transparent; color: var(--orb-primary); }
|
|
196
242
|
.orb-btn-neutral { background: transparent; color: var(--orb-fg); border-color: var(--orb-border); }
|
|
197
243
|
.orb-btn-neutral:hover:not(:disabled) { background: var(--orb-hover); border-color: var(--orb-muted); }
|
|
198
244
|
.orb-btn:disabled,
|
|
@@ -221,7 +267,6 @@
|
|
|
221
267
|
transition: background var(--orb-t-fast), color var(--orb-t-fast);
|
|
222
268
|
}
|
|
223
269
|
.orb-icon-btn:hover:not(:disabled) { background: var(--orb-hover); color: var(--orb-fg); }
|
|
224
|
-
.orb-icon-btn:disabled { cursor: not-allowed; color: var(--orb-disabled-fg); }
|
|
225
270
|
.orb-icon-btn-sm { width: 32px; height: 32px; }
|
|
226
271
|
|
|
227
272
|
.orb-segmented-control {
|
|
@@ -240,7 +285,7 @@
|
|
|
240
285
|
border: 1px solid var(--orb-border);
|
|
241
286
|
border-radius: calc(var(--orb-segmented-height) / 2);
|
|
242
287
|
background: var(--orb-surface);
|
|
243
|
-
box-shadow: inset 0 1px 2px
|
|
288
|
+
box-shadow: inset 0 1px 2px color-mix(in oklch, var(--orb-fg) 8%, transparent);
|
|
244
289
|
user-select: none;
|
|
245
290
|
vertical-align: middle;
|
|
246
291
|
}
|
|
@@ -253,7 +298,7 @@
|
|
|
253
298
|
width: calc((100% - (var(--orb-segmented-pad) * 2)) / var(--orb-segmented-count));
|
|
254
299
|
border-radius: 999px;
|
|
255
300
|
background: var(--orb-primary);
|
|
256
|
-
box-shadow: 0 1px 2px
|
|
301
|
+
box-shadow: 0 1px 2px color-mix(in oklch, var(--orb-primary) 30%, transparent), 0 0 1px color-mix(in oklch, var(--orb-primary) 24%, transparent);
|
|
257
302
|
opacity: 1;
|
|
258
303
|
pointer-events: none;
|
|
259
304
|
transform: translateX(calc(var(--orb-segmented-index) * 100%));
|
|
@@ -303,10 +348,6 @@
|
|
|
303
348
|
.orb-segmented-control .orb-segmented-control-item:focus {
|
|
304
349
|
outline: none;
|
|
305
350
|
}
|
|
306
|
-
.orb-segmented-control:has(.orb-segmented-control-item:focus-visible) {
|
|
307
|
-
outline: 2px solid var(--orb-focus-solid);
|
|
308
|
-
outline-offset: 2px;
|
|
309
|
-
}
|
|
310
351
|
.orb-segmented-control .orb-segmented-control-item:disabled {
|
|
311
352
|
opacity: 0.4;
|
|
312
353
|
}
|
|
@@ -368,8 +409,6 @@
|
|
|
368
409
|
|
|
369
410
|
/* ---------- form fields ---------- */
|
|
370
411
|
.orb-fld { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
|
|
371
|
-
.orb-fld > label,
|
|
372
|
-
.orb-fld-label { font: 500 13px/1.3 var(--orb-font); color: var(--orb-fg); }
|
|
373
412
|
.orb-inp {
|
|
374
413
|
font: 300 14px/1.4 var(--orb-font);
|
|
375
414
|
color: var(--orb-fg);
|
|
@@ -381,7 +420,8 @@
|
|
|
381
420
|
width: 100%;
|
|
382
421
|
transition: border-color var(--orb-t-fast), box-shadow var(--orb-t-fast), background var(--orb-t-fast);
|
|
383
422
|
}
|
|
384
|
-
.orb-inp::placeholder
|
|
423
|
+
.orb-inp::placeholder,
|
|
424
|
+
.orb-select-trigger[data-placeholder] { color: var(--orb-muted); }
|
|
385
425
|
.orb-inp:hover:not(:disabled):not(:focus) { border-color: var(--orb-muted); }
|
|
386
426
|
.orb-inp:focus { outline: none; border-color: var(--orb-primary); box-shadow: 0 0 0 3px var(--orb-focus-ring); }
|
|
387
427
|
.orb-inp:disabled { background: var(--orb-disabled-bg); color: var(--orb-disabled-fg); cursor: not-allowed; }
|
|
@@ -400,7 +440,6 @@
|
|
|
400
440
|
.orb-inp-adornment-end ~ .orb-inp,
|
|
401
441
|
.orb-inp-adornment-wrap:has(.orb-inp-adornment-end) .orb-inp { padding-left: 14px; padding-right: 38px; }
|
|
402
442
|
textarea.orb-inp { min-height: 80px; resize: vertical; }
|
|
403
|
-
.orb-fld-msg { font: 500 12px/1.4 var(--orb-font); color: var(--orb-muted); }
|
|
404
443
|
.orb-fld.orb-is-error .orb-inp { border-color: var(--orb-err); }
|
|
405
444
|
.orb-fld.orb-is-error .orb-inp:focus {
|
|
406
445
|
box-shadow: 0 0 0 3px color-mix(in oklch, var(--orb-err) 18%, transparent);
|
|
@@ -417,7 +456,8 @@ select.orb-inp {
|
|
|
417
456
|
}
|
|
418
457
|
|
|
419
458
|
.orb-chk,
|
|
420
|
-
.orb-rdo
|
|
459
|
+
.orb-rdo,
|
|
460
|
+
.orb-sw {
|
|
421
461
|
position: relative;
|
|
422
462
|
display: inline-flex;
|
|
423
463
|
align-items: center;
|
|
@@ -470,20 +510,9 @@ select.orb-inp {
|
|
|
470
510
|
}
|
|
471
511
|
.orb-rdo input { border-radius: 50%; }
|
|
472
512
|
.orb-rdo input:checked { border: 5px solid var(--orb-primary); }
|
|
473
|
-
.orb-chk input:focus-visible,
|
|
474
|
-
.orb-rdo input:focus-visible { outline: 2px solid var(--orb-focus-solid); outline-offset: 1px; }
|
|
475
513
|
.orb-chk input:disabled,
|
|
476
514
|
.orb-rdo input:disabled { background: var(--orb-disabled-bg); border-color: var(--orb-border); cursor: not-allowed; }
|
|
477
515
|
|
|
478
|
-
.orb-sw {
|
|
479
|
-
position: relative;
|
|
480
|
-
display: inline-flex;
|
|
481
|
-
align-items: center;
|
|
482
|
-
gap: 10px;
|
|
483
|
-
cursor: pointer;
|
|
484
|
-
font: 300 14px/1.4 var(--orb-font);
|
|
485
|
-
color: var(--orb-fg);
|
|
486
|
-
}
|
|
487
516
|
.orb-sw input {
|
|
488
517
|
appearance: none;
|
|
489
518
|
width: 38px;
|
|
@@ -510,7 +539,6 @@ select.orb-inp {
|
|
|
510
539
|
}
|
|
511
540
|
.orb-sw input:checked { background: var(--orb-primary); border-color: var(--orb-primary); }
|
|
512
541
|
.orb-sw input:checked::after { transform: translateX(16px); }
|
|
513
|
-
.orb-sw input:focus-visible { outline: 2px solid var(--orb-focus-solid); outline-offset: 1px; }
|
|
514
542
|
|
|
515
543
|
/* ---------- chips / badges / alerts / feedback ---------- */
|
|
516
544
|
.orb-chip {
|
|
@@ -568,9 +596,9 @@ select.orb-inp {
|
|
|
568
596
|
border-radius: 2px 0 0 2px;
|
|
569
597
|
}
|
|
570
598
|
.orb-alert b { font-weight: 600; display: block; margin-bottom: 2px; }
|
|
571
|
-
.orb-alert-info
|
|
572
|
-
.orb-alert-info::before { background: var(--orb-primary); }
|
|
599
|
+
.orb-alert-info,
|
|
573
600
|
.orb-alert-success { background: var(--orb-p50); border-color: var(--orb-p100); }
|
|
601
|
+
.orb-alert-info::before,
|
|
574
602
|
.orb-alert-success::before { background: var(--orb-primary); }
|
|
575
603
|
.orb-alert-warning { background: var(--orb-warn-bg); border-color: color-mix(in oklch, var(--orb-accent) 25%, var(--orb-border)); }
|
|
576
604
|
.orb-alert-warning::before { background: var(--orb-accent); }
|
|
@@ -588,7 +616,8 @@ select.orb-inp {
|
|
|
588
616
|
}
|
|
589
617
|
@keyframes orb-sk { to { background-position: -200% 0; } }
|
|
590
618
|
|
|
591
|
-
.orb-spin
|
|
619
|
+
.orb-spin,
|
|
620
|
+
.orb-agent-spinner {
|
|
592
621
|
width: 12px;
|
|
593
622
|
height: 12px;
|
|
594
623
|
flex: none;
|
|
@@ -605,14 +634,14 @@ select.orb-inp {
|
|
|
605
634
|
display: inline-flex;
|
|
606
635
|
align-items: center;
|
|
607
636
|
gap: 16px;
|
|
608
|
-
background:
|
|
609
|
-
color:
|
|
637
|
+
background: var(--orb-inverse-surface);
|
|
638
|
+
color: var(--orb-inverse-fg);
|
|
610
639
|
border-radius: var(--orb-r);
|
|
611
640
|
padding: 13px 18px;
|
|
612
641
|
font: 300 14px/1.4 var(--orb-font);
|
|
613
642
|
box-shadow: var(--orb-shadow-2);
|
|
614
643
|
}
|
|
615
|
-
.orb-snack button { background: none; border: none; color:
|
|
644
|
+
.orb-snack button { background: none; border: none; color: var(--orb-inverse-link); font: 500 13px var(--orb-font); cursor: pointer; padding: 0; }
|
|
616
645
|
|
|
617
646
|
/* ---------- cards / surfaces ---------- */
|
|
618
647
|
.orb-card {
|
|
@@ -636,7 +665,8 @@ select.orb-inp {
|
|
|
636
665
|
box-sizing: border-box;
|
|
637
666
|
}
|
|
638
667
|
|
|
639
|
-
.orb-planning-gantt
|
|
668
|
+
.orb-planning-gantt,
|
|
669
|
+
.orb-planning-table {
|
|
640
670
|
background: var(--orb-canvas);
|
|
641
671
|
}
|
|
642
672
|
|
|
@@ -648,11 +678,6 @@ select.orb-inp {
|
|
|
648
678
|
flex: 0 0 auto;
|
|
649
679
|
}
|
|
650
680
|
|
|
651
|
-
.orb-planning-extra-tool {
|
|
652
|
-
display: flex;
|
|
653
|
-
align-items: center;
|
|
654
|
-
}
|
|
655
|
-
|
|
656
681
|
.orb-planning-pane-controls .orb-segmented-control {
|
|
657
682
|
min-height: 32px;
|
|
658
683
|
height: 32px;
|
|
@@ -673,11 +698,13 @@ select.orb-inp {
|
|
|
673
698
|
gap: 18px;
|
|
674
699
|
}
|
|
675
700
|
|
|
676
|
-
.orb-table-sort-dialog > div:first-child
|
|
701
|
+
.orb-table-sort-dialog > div:first-child,
|
|
702
|
+
.orb-layout-save-dialog > div:first-child {
|
|
677
703
|
align-items: center !important;
|
|
678
704
|
}
|
|
679
705
|
|
|
680
|
-
.orb-table-sort-dialog-content
|
|
706
|
+
.orb-table-sort-dialog-content,
|
|
707
|
+
.orb-layout-save-form {
|
|
681
708
|
display: grid;
|
|
682
709
|
gap: 16px;
|
|
683
710
|
}
|
|
@@ -730,7 +757,7 @@ select.orb-inp {
|
|
|
730
757
|
}
|
|
731
758
|
|
|
732
759
|
.orb-table-sort-delete:hover:not(:disabled) {
|
|
733
|
-
color: var(--orb-
|
|
760
|
+
color: var(--orb-err) !important;
|
|
734
761
|
}
|
|
735
762
|
|
|
736
763
|
.orb-table-sort-add {
|
|
@@ -766,7 +793,8 @@ select.orb-inp {
|
|
|
766
793
|
.orb-table-toolbar-actions,
|
|
767
794
|
.orb-table-toolbar-custom,
|
|
768
795
|
.orb-table-tool-group,
|
|
769
|
-
.orb-table-pager
|
|
796
|
+
.orb-table-pager,
|
|
797
|
+
.orb-planning-extra-tool {
|
|
770
798
|
display: flex;
|
|
771
799
|
align-items: center;
|
|
772
800
|
}
|
|
@@ -965,11 +993,6 @@ select.orb-inp {
|
|
|
965
993
|
padding: 0 4px;
|
|
966
994
|
}
|
|
967
995
|
|
|
968
|
-
.orb-tbl .orb-table-footer .orb-table-footer-cell.orb-num {
|
|
969
|
-
font-variant-numeric: tabular-nums;
|
|
970
|
-
text-align: right;
|
|
971
|
-
}
|
|
972
|
-
|
|
973
996
|
.orb-table-group-menu-header {
|
|
974
997
|
min-height: 38px;
|
|
975
998
|
display: flex;
|
|
@@ -1180,7 +1203,6 @@ select.orb-inp {
|
|
|
1180
1203
|
.orb-tbl td { padding: 11px 14px; border-bottom: 1px solid var(--orb-border); font-weight: 380; color: var(--orb-fg); }
|
|
1181
1204
|
.orb-tbl tbody tr:hover td { background: var(--orb-hover); }
|
|
1182
1205
|
.orb-tbl tbody tr.orb-is-selected td { background: var(--orb-p50); }
|
|
1183
|
-
.orb-planning-table { background: var(--orb-canvas); }
|
|
1184
1206
|
.orb-planning-table tbody tr { height: 58px; }
|
|
1185
1207
|
.orb-planning-table tbody tr > td { box-sizing: border-box; }
|
|
1186
1208
|
.orb-planning-table tbody tr.orb-is-drop-target > td { border-top: 2px solid var(--orb-primary); }
|
|
@@ -1188,37 +1210,8 @@ select.orb-inp {
|
|
|
1188
1210
|
.orb-planning-timeline-row { background-color: var(--orb-canvas); }
|
|
1189
1211
|
.orb-planning-timeline-row.orb-table-group-row { background-color: var(--orb-surface); }
|
|
1190
1212
|
.orb-planning-timeline-row.orb-is-selected { background-color: var(--orb-p50); }
|
|
1191
|
-
.orb-tbl .orb-num
|
|
1192
|
-
.orb-tbl
|
|
1193
|
-
.orb-tbl th.orb-num { font-variant-numeric: tabular-nums; text-align: right; }
|
|
1194
|
-
.orb-tbl a,
|
|
1195
|
-
.orb-tbl .orb-tbl-link { color: var(--orb-link); text-decoration: none; font-weight: 500; cursor: pointer; background: none; border: none; padding: 0; font: inherit; }
|
|
1196
|
-
.orb-tbl a:hover,
|
|
1197
|
-
.orb-tbl .orb-tbl-link:hover { text-decoration: underline; }
|
|
1198
|
-
.orb-tbl-sort {
|
|
1199
|
-
display: inline-flex;
|
|
1200
|
-
align-items: center;
|
|
1201
|
-
gap: 4px;
|
|
1202
|
-
background: none;
|
|
1203
|
-
border: none;
|
|
1204
|
-
padding: 0;
|
|
1205
|
-
cursor: pointer;
|
|
1206
|
-
font: inherit;
|
|
1207
|
-
letter-spacing: inherit;
|
|
1208
|
-
text-transform: inherit;
|
|
1209
|
-
color: inherit;
|
|
1210
|
-
}
|
|
1211
|
-
.orb-tbl-sort:hover { color: var(--orb-fg); }
|
|
1212
|
-
|
|
1213
|
-
.orb-pager {
|
|
1214
|
-
display: flex;
|
|
1215
|
-
align-items: center;
|
|
1216
|
-
justify-content: flex-end;
|
|
1217
|
-
gap: 14px;
|
|
1218
|
-
padding: 10px 4px 0;
|
|
1219
|
-
font: 500 12px/1 var(--orb-font);
|
|
1220
|
-
color: var(--orb-muted);
|
|
1221
|
-
}
|
|
1213
|
+
.orb-tbl .orb-num { font-variant-numeric: tabular-nums; text-align: right; }
|
|
1214
|
+
.orb-tbl a { color: var(--orb-link); text-decoration: none; font-weight: 500; cursor: pointer; background: none; border: none; padding: 0; font: inherit; }
|
|
1222
1215
|
|
|
1223
1216
|
.orb-avatar {
|
|
1224
1217
|
width: 28px;
|
|
@@ -1285,19 +1278,11 @@ select.orb-inp {
|
|
|
1285
1278
|
.orb-dialog-title { font: 600 19px/1.3 var(--orb-font); color: var(--orb-fg-strong); margin: 0; }
|
|
1286
1279
|
.orb-dialog-actions { display: flex; justify-content: flex-end; gap: 12px; margin-top: 8px; }
|
|
1287
1280
|
|
|
1281
|
+
/* NOTE: must stay after .orb-dialog so its gap wins over the dialog's 16px. */
|
|
1288
1282
|
.orb-layout-save-dialog {
|
|
1289
1283
|
gap: 18px;
|
|
1290
1284
|
}
|
|
1291
1285
|
|
|
1292
|
-
.orb-layout-save-dialog > div:first-child {
|
|
1293
|
-
align-items: center !important;
|
|
1294
|
-
}
|
|
1295
|
-
|
|
1296
|
-
.orb-layout-save-form {
|
|
1297
|
-
display: grid;
|
|
1298
|
-
gap: 16px;
|
|
1299
|
-
}
|
|
1300
|
-
|
|
1301
1286
|
.orb-layout-save-warning {
|
|
1302
1287
|
margin-top: -10px;
|
|
1303
1288
|
padding-left: 2px;
|
|
@@ -1346,7 +1331,6 @@ select.orb-inp {
|
|
|
1346
1331
|
}
|
|
1347
1332
|
.orb-menu-item:hover,
|
|
1348
1333
|
.orb-menu-item[data-highlighted] { background: var(--orb-hover); outline: none; }
|
|
1349
|
-
.orb-menu-item[data-disabled] { color: var(--orb-disabled-fg); cursor: not-allowed; }
|
|
1350
1334
|
.orb-menu-sep { height: 1px; background: var(--orb-border); margin: 6px 4px; }
|
|
1351
1335
|
.orb-menu-label { padding: 8px 10px 4px; font: 500 10px/1 var(--orb-font); letter-spacing: 0.08em; text-transform: uppercase; color: var(--orb-muted); }
|
|
1352
1336
|
|
|
@@ -1360,10 +1344,6 @@ select.orb-inp {
|
|
|
1360
1344
|
cursor: pointer;
|
|
1361
1345
|
}
|
|
1362
1346
|
|
|
1363
|
-
.orb-select-trigger[data-placeholder] {
|
|
1364
|
-
color: var(--orb-muted);
|
|
1365
|
-
}
|
|
1366
|
-
|
|
1367
1347
|
.orb-select-value {
|
|
1368
1348
|
min-width: 0;
|
|
1369
1349
|
overflow: hidden;
|
|
@@ -1413,11 +1393,6 @@ select.orb-inp {
|
|
|
1413
1393
|
font-weight: 500;
|
|
1414
1394
|
}
|
|
1415
1395
|
|
|
1416
|
-
.orb-select-option[data-disabled] {
|
|
1417
|
-
color: var(--orb-disabled-fg);
|
|
1418
|
-
cursor: not-allowed;
|
|
1419
|
-
}
|
|
1420
|
-
|
|
1421
1396
|
.orb-select-check {
|
|
1422
1397
|
width: 14px;
|
|
1423
1398
|
height: 14px;
|
|
@@ -1430,8 +1405,8 @@ select.orb-inp {
|
|
|
1430
1405
|
|
|
1431
1406
|
.orb-tooltip {
|
|
1432
1407
|
z-index: 1310;
|
|
1433
|
-
background:
|
|
1434
|
-
color:
|
|
1408
|
+
background: var(--orb-inverse-surface);
|
|
1409
|
+
color: var(--orb-inverse-fg);
|
|
1435
1410
|
border-radius: 8px;
|
|
1436
1411
|
padding: 6px 10px;
|
|
1437
1412
|
font: 500 12px/1.4 var(--orb-font);
|
|
@@ -1473,6 +1448,11 @@ select.orb-inp {
|
|
|
1473
1448
|
transition: background var(--orb-t-fast), color var(--orb-t-fast);
|
|
1474
1449
|
}
|
|
1475
1450
|
.orb-cal-day:hover:not(:disabled):not(.orb-is-selected) { background: var(--orb-hover); }
|
|
1451
|
+
/* Shared disabled state — position preserved for cascade (must stay after
|
|
1452
|
+
.orb-select-option[data-state="checked"], before .orb-cal-day.orb-is-outside). */
|
|
1453
|
+
.orb-icon-btn:disabled,
|
|
1454
|
+
.orb-menu-item[data-disabled],
|
|
1455
|
+
.orb-select-option[data-disabled],
|
|
1476
1456
|
.orb-cal-day:disabled { color: var(--orb-disabled-fg); cursor: not-allowed; }
|
|
1477
1457
|
.orb-cal-day.orb-is-outside { color: var(--orb-muted); opacity: 0.6; }
|
|
1478
1458
|
.orb-cal-day.orb-is-today { box-shadow: inset 0 0 0 1px var(--orb-primary); }
|
|
@@ -1482,30 +1462,52 @@ select.orb-inp {
|
|
|
1482
1462
|
.orb-cal-day.orb-is-range-end { background: var(--orb-primary); color: var(--orb-on-primary); border-radius: 0 50% 50% 0; }
|
|
1483
1463
|
.orb-cal-day.orb-is-range-start.orb-is-range-end { border-radius: 50%; }
|
|
1484
1464
|
|
|
1485
|
-
/* ---------- date range picker ---------- */
|
|
1465
|
+
/* ---------- date range picker & value help (shared field chrome) ---------- */
|
|
1486
1466
|
.orb-date-range-picker,
|
|
1487
1467
|
.orb-date-range-field,
|
|
1488
|
-
.orb-date-range-field .orb-inp-adornment-wrap
|
|
1468
|
+
.orb-date-range-field .orb-inp-adornment-wrap,
|
|
1469
|
+
.orb-date-range-input-row,
|
|
1470
|
+
.orb-value-help-field,
|
|
1471
|
+
.orb-value-help-field .orb-inp-adornment-wrap {
|
|
1489
1472
|
width: 100%;
|
|
1490
1473
|
}
|
|
1491
1474
|
|
|
1492
|
-
.orb-date-range-field .orb-inp
|
|
1475
|
+
.orb-date-range-field .orb-inp,
|
|
1476
|
+
.orb-value-help-field .orb-inp {
|
|
1493
1477
|
padding-right: 44px !important;
|
|
1494
1478
|
}
|
|
1495
1479
|
|
|
1496
|
-
.orb-
|
|
1480
|
+
.orb-value-help-field.orb-value-help-has-clear .orb-inp {
|
|
1481
|
+
padding-right: 74px !important;
|
|
1482
|
+
}
|
|
1483
|
+
|
|
1484
|
+
.orb-date-range-field .orb-inp-adornment-end,
|
|
1485
|
+
.orb-value-help-field .orb-inp-adornment-end {
|
|
1497
1486
|
right: 5px;
|
|
1498
1487
|
pointer-events: auto;
|
|
1499
1488
|
}
|
|
1500
1489
|
|
|
1501
|
-
.orb-date-range-calendar-trigger
|
|
1502
|
-
|
|
1503
|
-
|
|
1490
|
+
.orb-date-range-calendar-trigger,
|
|
1491
|
+
.orb-value-help-search-trigger,
|
|
1492
|
+
.orb-value-help-clear-trigger {
|
|
1504
1493
|
border-radius: 7px !important;
|
|
1505
1494
|
color: var(--orb-muted);
|
|
1506
1495
|
}
|
|
1507
1496
|
|
|
1508
|
-
.orb-date-range-calendar-trigger
|
|
1497
|
+
.orb-date-range-calendar-trigger,
|
|
1498
|
+
.orb-value-help-search-trigger {
|
|
1499
|
+
width: 30px !important;
|
|
1500
|
+
height: 30px !important;
|
|
1501
|
+
}
|
|
1502
|
+
|
|
1503
|
+
.orb-value-help-clear-trigger {
|
|
1504
|
+
width: 26px !important;
|
|
1505
|
+
height: 26px !important;
|
|
1506
|
+
}
|
|
1507
|
+
|
|
1508
|
+
.orb-date-range-calendar-trigger:hover,
|
|
1509
|
+
.orb-value-help-search-trigger:hover,
|
|
1510
|
+
.orb-value-help-clear-trigger:hover {
|
|
1509
1511
|
background: var(--orb-hover);
|
|
1510
1512
|
color: var(--orb-primary);
|
|
1511
1513
|
}
|
|
@@ -1526,10 +1528,6 @@ select.orb-inp {
|
|
|
1526
1528
|
border-bottom: 1px solid var(--orb-border);
|
|
1527
1529
|
}
|
|
1528
1530
|
|
|
1529
|
-
.orb-date-range-input-row {
|
|
1530
|
-
width: 100%;
|
|
1531
|
-
}
|
|
1532
|
-
|
|
1533
1531
|
.orb-date-range-manual-field {
|
|
1534
1532
|
flex: 0 0 156px;
|
|
1535
1533
|
width: 156px !important;
|
|
@@ -1558,53 +1556,12 @@ select.orb-inp {
|
|
|
1558
1556
|
}
|
|
1559
1557
|
}
|
|
1560
1558
|
|
|
1561
|
-
/* ---------- value help ---------- */
|
|
1562
|
-
.orb-value-help-field,
|
|
1563
|
-
.orb-value-help-field .orb-inp-adornment-wrap {
|
|
1564
|
-
width: 100%;
|
|
1565
|
-
}
|
|
1566
|
-
|
|
1567
|
-
.orb-value-help-field .orb-inp {
|
|
1568
|
-
padding-right: 44px !important;
|
|
1569
|
-
}
|
|
1570
|
-
|
|
1571
|
-
.orb-value-help-field.orb-value-help-has-clear .orb-inp {
|
|
1572
|
-
padding-right: 74px !important;
|
|
1573
|
-
}
|
|
1574
|
-
|
|
1575
|
-
.orb-value-help-field .orb-inp-adornment-end {
|
|
1576
|
-
right: 5px;
|
|
1577
|
-
pointer-events: auto;
|
|
1578
|
-
}
|
|
1579
|
-
|
|
1580
1559
|
.orb-value-help-actions {
|
|
1581
1560
|
display: inline-flex;
|
|
1582
1561
|
align-items: center;
|
|
1583
1562
|
gap: 2px;
|
|
1584
1563
|
}
|
|
1585
1564
|
|
|
1586
|
-
.orb-value-help-search-trigger,
|
|
1587
|
-
.orb-value-help-clear-trigger {
|
|
1588
|
-
border-radius: 7px !important;
|
|
1589
|
-
color: var(--orb-muted);
|
|
1590
|
-
}
|
|
1591
|
-
|
|
1592
|
-
.orb-value-help-search-trigger {
|
|
1593
|
-
width: 30px !important;
|
|
1594
|
-
height: 30px !important;
|
|
1595
|
-
}
|
|
1596
|
-
|
|
1597
|
-
.orb-value-help-clear-trigger {
|
|
1598
|
-
width: 26px !important;
|
|
1599
|
-
height: 26px !important;
|
|
1600
|
-
}
|
|
1601
|
-
|
|
1602
|
-
.orb-value-help-search-trigger:hover,
|
|
1603
|
-
.orb-value-help-clear-trigger:hover {
|
|
1604
|
-
background: var(--orb-hover);
|
|
1605
|
-
color: var(--orb-primary);
|
|
1606
|
-
}
|
|
1607
|
-
|
|
1608
1565
|
/* ---------- smart filter ---------- */
|
|
1609
1566
|
.orb-smart-filter {
|
|
1610
1567
|
padding: 0;
|
|
@@ -1729,10 +1686,10 @@ select.orb-inp {
|
|
|
1729
1686
|
/* ---------- charts (SVG classes, per handoff modules §1) ---------- */
|
|
1730
1687
|
.orb-axis-lbl { font: 500 11px var(--orb-font); fill: var(--orb-chart-text); }
|
|
1731
1688
|
.orb-grid-ln { stroke: var(--orb-chart-grid); stroke-width: 1; }
|
|
1732
|
-
.orb-c1 { fill: var(--orb-
|
|
1733
|
-
.orb-c2 { fill: var(--orb-
|
|
1734
|
-
.orb-c3 { fill: var(--orb-
|
|
1735
|
-
.orb-c4 { fill: var(--orb-
|
|
1689
|
+
.orb-c1 { fill: var(--orb-chart-1); }
|
|
1690
|
+
.orb-c2 { fill: var(--orb-chart-2); }
|
|
1691
|
+
.orb-c3 { fill: var(--orb-chart-3); }
|
|
1692
|
+
.orb-c4 { fill: var(--orb-chart-4); }
|
|
1736
1693
|
.orb-l1 { stroke: var(--orb-primary); }
|
|
1737
1694
|
.orb-l2 { stroke: var(--orb-muted); }
|
|
1738
1695
|
.orb-legend { display: flex; flex-wrap: wrap; gap: 14px; font: 500 12px/1 var(--orb-font); color: var(--orb-muted); }
|
|
@@ -1747,8 +1704,8 @@ select.orb-inp {
|
|
|
1747
1704
|
}
|
|
1748
1705
|
.orb-auth-brand {
|
|
1749
1706
|
position: relative;
|
|
1750
|
-
background:
|
|
1751
|
-
color:
|
|
1707
|
+
background: var(--orb-inverse-surface);
|
|
1708
|
+
color: var(--orb-inverse-fg);
|
|
1752
1709
|
padding: 44px 44px 36px;
|
|
1753
1710
|
display: flex;
|
|
1754
1711
|
flex-direction: column;
|
|
@@ -1766,8 +1723,8 @@ select.orb-inp {
|
|
|
1766
1723
|
pointer-events: none;
|
|
1767
1724
|
}
|
|
1768
1725
|
.orb-auth-claim { margin-top: auto; position: relative; }
|
|
1769
|
-
.orb-auth-rule { width: 48px; height: 2px; background:
|
|
1770
|
-
.orb-auth-claim h2 { font: 600 30px/1.25 var(--orb-font); color:
|
|
1726
|
+
.orb-auth-rule { width: 48px; height: 2px; background: var(--orb-accent); border-radius: 2px; margin-bottom: 18px; }
|
|
1727
|
+
.orb-auth-claim h2 { font: 600 30px/1.25 var(--orb-font); color: var(--orb-inverse-fg); max-width: 320px; margin: 0; }
|
|
1771
1728
|
.orb-auth-claim p { margin: 10px 0 0; font: 300 14px/1.55 var(--orb-font); color: rgba(255, 255, 255, 0.7); max-width: 340px; }
|
|
1772
1729
|
.orb-auth-meta { margin-top: 36px; font: 500 10px/1.6 var(--orb-font); letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255, 255, 255, 0.45); }
|
|
1773
1730
|
.orb-auth-form {
|
|
@@ -1863,6 +1820,18 @@ select.orb-inp {
|
|
|
1863
1820
|
overflow: hidden;
|
|
1864
1821
|
}
|
|
1865
1822
|
|
|
1823
|
+
.orb-app-header-default-logo {
|
|
1824
|
+
width: 36px;
|
|
1825
|
+
height: 36px;
|
|
1826
|
+
flex: 0 0 36px;
|
|
1827
|
+
display: inline-flex;
|
|
1828
|
+
align-items: center;
|
|
1829
|
+
justify-content: center;
|
|
1830
|
+
border-radius: 6px;
|
|
1831
|
+
background: var(--orb-primary);
|
|
1832
|
+
color: var(--orb-on-primary);
|
|
1833
|
+
}
|
|
1834
|
+
|
|
1866
1835
|
.orb-app-header-brand > img {
|
|
1867
1836
|
max-height: 48px;
|
|
1868
1837
|
}
|
|
@@ -1909,18 +1878,8 @@ select.orb-inp {
|
|
|
1909
1878
|
color: var(--orb-muted);
|
|
1910
1879
|
}
|
|
1911
1880
|
|
|
1912
|
-
.orb-app-header-ai-action:hover:not(:disabled) {
|
|
1913
|
-
background: var(--orb-hover);
|
|
1914
|
-
color: var(--orb-primary);
|
|
1915
|
-
}
|
|
1916
|
-
|
|
1917
|
-
.orb-app-header-ai-action:focus-visible {
|
|
1918
|
-
outline: 2px solid var(--orb-focus-solid);
|
|
1919
|
-
outline-offset: 1px;
|
|
1920
|
-
}
|
|
1921
|
-
|
|
1922
1881
|
.orb-app-header-ai-input {
|
|
1923
|
-
font-family:
|
|
1882
|
+
font-family: var(--orb-font-brand), "Noto Sans CJK SC", "Noto Sans CJK JP", "PingFang SC", "Hiragino Sans", "Yu Gothic UI", system-ui, sans-serif !important;
|
|
1924
1883
|
font-size: 14px !important;
|
|
1925
1884
|
font-weight: 400 !important;
|
|
1926
1885
|
line-height: 1.4 !important;
|
|
@@ -1969,6 +1928,7 @@ button.orb-app-header-locale {
|
|
|
1969
1928
|
cursor: pointer;
|
|
1970
1929
|
}
|
|
1971
1930
|
|
|
1931
|
+
.orb-app-header-ai-action:hover:not(:disabled),
|
|
1972
1932
|
button.orb-app-header-locale:hover,
|
|
1973
1933
|
.orb-app-header-theme:hover {
|
|
1974
1934
|
background: var(--orb-hover);
|
|
@@ -2013,12 +1973,6 @@ button.orb-app-header-locale:hover,
|
|
|
2013
1973
|
background: var(--orb-hover);
|
|
2014
1974
|
}
|
|
2015
1975
|
|
|
2016
|
-
.orb-app-header-user-trigger:focus-visible,
|
|
2017
|
-
.orb-app-header-locale:focus-visible {
|
|
2018
|
-
outline: 2px solid var(--orb-focus-solid);
|
|
2019
|
-
outline-offset: 2px;
|
|
2020
|
-
}
|
|
2021
|
-
|
|
2022
1976
|
.orb-app-header-user-copy {
|
|
2023
1977
|
min-width: 0;
|
|
2024
1978
|
display: flex;
|
|
@@ -2099,19 +2053,69 @@ button.orb-app-header-locale:hover,
|
|
|
2099
2053
|
}
|
|
2100
2054
|
}
|
|
2101
2055
|
|
|
2056
|
+
/* ---------- navigation island v2 tokens ---------- */
|
|
2057
|
+
/* Brand-linked values derive from --orb-primary/--orb-accent/--orb-nav-focus;
|
|
2058
|
+
theme packs may override any of these explicitly. */
|
|
2059
|
+
:root {
|
|
2060
|
+
--orb-nav-bg: rgba(250, 252, 255, 0.96);
|
|
2061
|
+
--orb-nav-bg-image: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(244, 248, 253, 0.96));
|
|
2062
|
+
--orb-nav-border: #cbd7e7;
|
|
2063
|
+
--orb-nav-shadow: 0 1px 0 rgba(255, 255, 255, 0.95) inset, 0 14px 34px rgba(1, 20, 50, 0.12), 0 2px 8px rgba(1, 20, 50, 0.08);
|
|
2064
|
+
--orb-nav-input-border: #d6dfeb;
|
|
2065
|
+
--orb-nav-input-bg: rgba(255, 255, 255, 0.9);
|
|
2066
|
+
--orb-nav-input-fg: #0b2343;
|
|
2067
|
+
--orb-nav-focus: #2878c8;
|
|
2068
|
+
--orb-nav-focus-ring: color-mix(in oklch, var(--orb-nav-focus) 14%, transparent);
|
|
2069
|
+
--orb-nav-scrollbar: color-mix(in oklch, var(--orb-primary) 25%, transparent);
|
|
2070
|
+
--orb-nav-footer-border: #dce4ee;
|
|
2071
|
+
--orb-nav-item-fg: #344861;
|
|
2072
|
+
--orb-nav-item-hover-border: #d7e1ed;
|
|
2073
|
+
--orb-nav-item-hover-bg: #edf3fa;
|
|
2074
|
+
--orb-nav-item-hover-fg: #0b2343;
|
|
2075
|
+
--orb-nav-active-border: color-mix(in oklch, var(--orb-primary) 16%, transparent);
|
|
2076
|
+
--orb-nav-active-bg: linear-gradient(90deg, color-mix(in oklch, var(--orb-primary) 11%, transparent), color-mix(in oklch, var(--orb-nav-focus) 3.5%, transparent));
|
|
2077
|
+
--orb-nav-active-fg: var(--orb-primary);
|
|
2078
|
+
--orb-nav-active-bar: var(--orb-accent);
|
|
2079
|
+
--orb-nav-pin-fg: #a7b1bf;
|
|
2080
|
+
--orb-nav-pin-hover-bg: color-mix(in oklch, var(--orb-primary) 7%, transparent);
|
|
2081
|
+
--orb-nav-pin-hover-fg: var(--orb-primary);
|
|
2082
|
+
--orb-nav-pin-pinned-fg: var(--orb-primary);
|
|
2083
|
+
--orb-nav-utility-fg: #344861;
|
|
2084
|
+
}
|
|
2085
|
+
|
|
2086
|
+
.orb-dark,
|
|
2087
|
+
[data-orb-mode="dark"] {
|
|
2088
|
+
--orb-nav-bg: rgba(8, 20, 38, 0.96);
|
|
2089
|
+
--orb-nav-bg-image: linear-gradient(180deg, rgba(12, 29, 52, 0.97), rgba(5, 16, 32, 0.97));
|
|
2090
|
+
--orb-nav-border: #283b55;
|
|
2091
|
+
--orb-nav-shadow: 0 1px 0 rgba(255, 255, 255, 0.08) inset, 0 18px 44px rgba(0, 0, 0, 0.42);
|
|
2092
|
+
--orb-nav-input-border: #30455f;
|
|
2093
|
+
--orb-nav-input-bg: rgba(5, 16, 32, 0.78);
|
|
2094
|
+
--orb-nav-input-fg: #f3f7fc;
|
|
2095
|
+
--orb-nav-footer-border: #263b55;
|
|
2096
|
+
--orb-nav-item-fg: #c6d2e1;
|
|
2097
|
+
--orb-nav-item-hover-border: #304965;
|
|
2098
|
+
--orb-nav-item-hover-bg: rgba(36, 69, 105, 0.42);
|
|
2099
|
+
--orb-nav-item-hover-fg: #ffffff;
|
|
2100
|
+
--orb-nav-active-border: rgba(110, 174, 235, 0.24);
|
|
2101
|
+
--orb-nav-active-bg: linear-gradient(90deg, rgba(54, 130, 206, 0.24), rgba(54, 130, 206, 0.04));
|
|
2102
|
+
--orb-nav-active-fg: #a9d2f7;
|
|
2103
|
+
--orb-nav-pin-fg: #71839a;
|
|
2104
|
+
--orb-nav-pin-hover-bg: rgba(145, 168, 209, 0.1);
|
|
2105
|
+
--orb-nav-pin-hover-fg: #91a8d1;
|
|
2106
|
+
--orb-nav-pin-pinned-fg: #91a8d1;
|
|
2107
|
+
--orb-nav-utility-fg: #9fb0c4;
|
|
2108
|
+
}
|
|
2109
|
+
|
|
2102
2110
|
/* ---------- navigation island v2 ---------- */
|
|
2103
2111
|
.orb-navigation-island-v2 {
|
|
2104
2112
|
isolation: isolate;
|
|
2105
2113
|
overflow: visible;
|
|
2106
|
-
border: 1px solid
|
|
2114
|
+
border: 1px solid var(--orb-nav-border) !important;
|
|
2107
2115
|
border-radius: var(--orb-r-container) !important;
|
|
2108
|
-
background-color:
|
|
2109
|
-
background-image:
|
|
2110
|
-
|
|
2111
|
-
box-shadow:
|
|
2112
|
-
0 1px 0 rgba(255, 255, 255, 0.95) inset,
|
|
2113
|
-
0 14px 34px rgba(1, 20, 50, 0.12),
|
|
2114
|
-
0 2px 8px rgba(1, 20, 50, 0.08) !important;
|
|
2116
|
+
background-color: var(--orb-nav-bg) !important;
|
|
2117
|
+
background-image: var(--orb-nav-bg-image) !important;
|
|
2118
|
+
box-shadow: var(--orb-nav-shadow) !important;
|
|
2115
2119
|
backdrop-filter: blur(22px) saturate(150%) !important;
|
|
2116
2120
|
-webkit-backdrop-filter: blur(22px) saturate(150%) !important;
|
|
2117
2121
|
}
|
|
@@ -2128,64 +2132,64 @@ button.orb-app-header-locale:hover,
|
|
|
2128
2132
|
.orb-navigation-island-v2 input[type="text"],
|
|
2129
2133
|
.orb-navigation-island-v2 input[type="search"] {
|
|
2130
2134
|
height: 38px;
|
|
2131
|
-
border: 1px solid
|
|
2135
|
+
border: 1px solid var(--orb-nav-input-border) !important;
|
|
2132
2136
|
border-radius: 10px !important;
|
|
2133
|
-
background:
|
|
2134
|
-
color:
|
|
2137
|
+
background: var(--orb-nav-input-bg) !important;
|
|
2138
|
+
color: var(--orb-nav-input-fg) !important;
|
|
2135
2139
|
box-shadow: 0 1px 2px rgba(1, 20, 50, 0.04) inset;
|
|
2136
2140
|
}
|
|
2137
2141
|
|
|
2138
2142
|
.orb-navigation-island-v2 input[type="text"]:focus,
|
|
2139
2143
|
.orb-navigation-island-v2 input[type="search"]:focus {
|
|
2140
|
-
border-color:
|
|
2141
|
-
box-shadow: 0 0 0 3px
|
|
2144
|
+
border-color: var(--orb-nav-focus) !important;
|
|
2145
|
+
box-shadow: 0 0 0 3px var(--orb-nav-focus-ring) !important;
|
|
2142
2146
|
}
|
|
2143
2147
|
|
|
2144
2148
|
.orb-navigation-island-v2 nav {
|
|
2145
|
-
scrollbar-color:
|
|
2149
|
+
scrollbar-color: var(--orb-nav-scrollbar) transparent;
|
|
2146
2150
|
scrollbar-width: thin;
|
|
2147
2151
|
}
|
|
2148
2152
|
|
|
2149
2153
|
.orb-navigation-island-v2-footer {
|
|
2150
|
-
border-color:
|
|
2154
|
+
border-color: var(--orb-nav-footer-border);
|
|
2151
2155
|
}
|
|
2152
2156
|
|
|
2153
2157
|
.orb-navigation-island-v2 .tree-menu-item > button:not(.orb-navigation-pin-button) {
|
|
2154
2158
|
min-height: 40px;
|
|
2155
2159
|
border: 1px solid transparent;
|
|
2156
2160
|
border-radius: 10px !important;
|
|
2157
|
-
color:
|
|
2161
|
+
color: var(--orb-nav-item-fg) !important;
|
|
2158
2162
|
}
|
|
2159
2163
|
|
|
2160
2164
|
.orb-navigation-island-v2 .tree-menu-item > button:not(.orb-navigation-pin-button):hover {
|
|
2161
|
-
border-color:
|
|
2162
|
-
background:
|
|
2163
|
-
color:
|
|
2165
|
+
border-color: var(--orb-nav-item-hover-border);
|
|
2166
|
+
background: var(--orb-nav-item-hover-bg) !important;
|
|
2167
|
+
color: var(--orb-nav-item-hover-fg) !important;
|
|
2164
2168
|
}
|
|
2165
2169
|
|
|
2166
2170
|
.orb-navigation-island-v2 .tree-menu-item:has(> div.absolute.left-0) > button:not(.orb-navigation-pin-button) {
|
|
2167
|
-
border-color:
|
|
2168
|
-
background:
|
|
2169
|
-
color:
|
|
2171
|
+
border-color: var(--orb-nav-active-border);
|
|
2172
|
+
background: var(--orb-nav-active-bg) !important;
|
|
2173
|
+
color: var(--orb-nav-active-fg) !important;
|
|
2170
2174
|
}
|
|
2171
2175
|
|
|
2172
2176
|
.orb-navigation-island-v2 .tree-menu-item > button.orb-navigation-pin-button {
|
|
2173
2177
|
min-height: 0;
|
|
2174
2178
|
border: 0;
|
|
2175
2179
|
background: transparent !important;
|
|
2176
|
-
color:
|
|
2180
|
+
color: var(--orb-nav-pin-fg) !important;
|
|
2177
2181
|
box-shadow: none;
|
|
2178
2182
|
}
|
|
2179
2183
|
|
|
2180
2184
|
.orb-navigation-island-v2 .tree-menu-item > button.orb-navigation-pin-button:hover {
|
|
2181
|
-
background:
|
|
2182
|
-
color:
|
|
2185
|
+
background: var(--orb-nav-pin-hover-bg) !important;
|
|
2186
|
+
color: var(--orb-nav-pin-hover-fg) !important;
|
|
2183
2187
|
}
|
|
2184
2188
|
|
|
2185
2189
|
.orb-navigation-island-v2 .tree-menu-item > button.orb-navigation-pin-button.orb-is-pinned,
|
|
2186
2190
|
.orb-navigation-island-v2 .tree-menu-item > button.orb-navigation-pin-button.orb-is-pinned:hover {
|
|
2187
2191
|
background: transparent !important;
|
|
2188
|
-
color:
|
|
2192
|
+
color: var(--orb-nav-pin-pinned-fg) !important;
|
|
2189
2193
|
}
|
|
2190
2194
|
|
|
2191
2195
|
.orb-navigation-island-v2 .tree-menu-item > div.absolute.left-0 {
|
|
@@ -2193,77 +2197,16 @@ button.orb-app-header-locale:hover,
|
|
|
2193
2197
|
bottom: 7px !important;
|
|
2194
2198
|
width: 4px !important;
|
|
2195
2199
|
border-radius: 0 4px 4px 0 !important;
|
|
2196
|
-
background:
|
|
2197
|
-
}
|
|
2198
|
-
|
|
2199
|
-
.orb-dark .orb-navigation-island-v2,
|
|
2200
|
-
[data-orb-mode="dark"] .orb-navigation-island-v2 {
|
|
2201
|
-
border-color: #283b55 !important;
|
|
2202
|
-
background-color: rgba(8, 20, 38, 0.96) !important;
|
|
2203
|
-
background-image: linear-gradient(180deg, rgba(12, 29, 52, 0.97), rgba(5, 16, 32, 0.97)) !important;
|
|
2204
|
-
box-shadow:
|
|
2205
|
-
0 1px 0 rgba(255, 255, 255, 0.08) inset,
|
|
2206
|
-
0 18px 44px rgba(0, 0, 0, 0.42) !important;
|
|
2207
|
-
}
|
|
2208
|
-
|
|
2209
|
-
.orb-dark .orb-navigation-island-v2 input[type="text"],
|
|
2210
|
-
.orb-dark .orb-navigation-island-v2 input[type="search"],
|
|
2211
|
-
[data-orb-mode="dark"] .orb-navigation-island-v2 input[type="text"],
|
|
2212
|
-
[data-orb-mode="dark"] .orb-navigation-island-v2 input[type="search"] {
|
|
2213
|
-
border-color: #30455f !important;
|
|
2214
|
-
background: rgba(5, 16, 32, 0.78) !important;
|
|
2215
|
-
color: #f3f7fc !important;
|
|
2216
|
-
}
|
|
2217
|
-
|
|
2218
|
-
.orb-dark .orb-navigation-island-v2-footer,
|
|
2219
|
-
[data-orb-mode="dark"] .orb-navigation-island-v2-footer {
|
|
2220
|
-
border-color: #263b55;
|
|
2200
|
+
background: var(--orb-nav-active-bar) !important;
|
|
2221
2201
|
}
|
|
2222
2202
|
|
|
2203
|
+
/* Dark mode is handled by the .orb-dark token block above; only the utility
|
|
2204
|
+
buttons (untokenized in light) need a dark-scoped rule. */
|
|
2223
2205
|
.orb-dark .orb-navigation-island-v2 > button,
|
|
2224
2206
|
.orb-dark .orb-navigation-island-v2 nav > div > button,
|
|
2225
2207
|
[data-orb-mode="dark"] .orb-navigation-island-v2 > button,
|
|
2226
2208
|
[data-orb-mode="dark"] .orb-navigation-island-v2 nav > div > button {
|
|
2227
|
-
color:
|
|
2228
|
-
}
|
|
2229
|
-
|
|
2230
|
-
.orb-dark .orb-navigation-island-v2 .tree-menu-item > button:not(.orb-navigation-pin-button),
|
|
2231
|
-
[data-orb-mode="dark"] .orb-navigation-island-v2 .tree-menu-item > button:not(.orb-navigation-pin-button) {
|
|
2232
|
-
color: #c6d2e1 !important;
|
|
2233
|
-
}
|
|
2234
|
-
|
|
2235
|
-
.orb-dark .orb-navigation-island-v2 .tree-menu-item > button:not(.orb-navigation-pin-button):hover,
|
|
2236
|
-
[data-orb-mode="dark"] .orb-navigation-island-v2 .tree-menu-item > button:not(.orb-navigation-pin-button):hover {
|
|
2237
|
-
border-color: #304965;
|
|
2238
|
-
background: rgba(36, 69, 105, 0.42) !important;
|
|
2239
|
-
color: #ffffff !important;
|
|
2240
|
-
}
|
|
2241
|
-
|
|
2242
|
-
.orb-dark .orb-navigation-island-v2 .tree-menu-item:has(> div.absolute.left-0) > button:not(.orb-navigation-pin-button),
|
|
2243
|
-
[data-orb-mode="dark"] .orb-navigation-island-v2 .tree-menu-item:has(> div.absolute.left-0) > button:not(.orb-navigation-pin-button) {
|
|
2244
|
-
border-color: rgba(110, 174, 235, 0.24);
|
|
2245
|
-
background: linear-gradient(90deg, rgba(54, 130, 206, 0.24), rgba(54, 130, 206, 0.04)) !important;
|
|
2246
|
-
color: #a9d2f7 !important;
|
|
2247
|
-
}
|
|
2248
|
-
|
|
2249
|
-
.orb-dark .orb-navigation-island-v2 .tree-menu-item > button.orb-navigation-pin-button,
|
|
2250
|
-
[data-orb-mode="dark"] .orb-navigation-island-v2 .tree-menu-item > button.orb-navigation-pin-button {
|
|
2251
|
-
background: transparent !important;
|
|
2252
|
-
color: #71839a !important;
|
|
2253
|
-
}
|
|
2254
|
-
|
|
2255
|
-
.orb-dark .orb-navigation-island-v2 .tree-menu-item > button.orb-navigation-pin-button:hover,
|
|
2256
|
-
[data-orb-mode="dark"] .orb-navigation-island-v2 .tree-menu-item > button.orb-navigation-pin-button:hover {
|
|
2257
|
-
background: rgba(145, 168, 209, 0.1) !important;
|
|
2258
|
-
color: #91a8d1 !important;
|
|
2259
|
-
}
|
|
2260
|
-
|
|
2261
|
-
.orb-dark .orb-navigation-island-v2 .tree-menu-item > button.orb-navigation-pin-button.orb-is-pinned,
|
|
2262
|
-
.orb-dark .orb-navigation-island-v2 .tree-menu-item > button.orb-navigation-pin-button.orb-is-pinned:hover,
|
|
2263
|
-
[data-orb-mode="dark"] .orb-navigation-island-v2 .tree-menu-item > button.orb-navigation-pin-button.orb-is-pinned,
|
|
2264
|
-
[data-orb-mode="dark"] .orb-navigation-island-v2 .tree-menu-item > button.orb-navigation-pin-button.orb-is-pinned:hover {
|
|
2265
|
-
background: transparent !important;
|
|
2266
|
-
color: #91a8d1 !important;
|
|
2209
|
+
color: var(--orb-nav-utility-fg);
|
|
2267
2210
|
}
|
|
2268
2211
|
|
|
2269
2212
|
/* ---------- agent UI (AIPanel) ---------- */
|
|
@@ -2347,22 +2290,6 @@ button.orb-app-header-locale:hover,
|
|
|
2347
2290
|
color: var(--orb-muted);
|
|
2348
2291
|
}
|
|
2349
2292
|
|
|
2350
|
-
.orb-agent-spinner {
|
|
2351
|
-
flex: none;
|
|
2352
|
-
width: 12px;
|
|
2353
|
-
height: 12px;
|
|
2354
|
-
border-radius: 50%;
|
|
2355
|
-
border: 2px solid var(--orb-p100);
|
|
2356
|
-
border-top-color: var(--orb-primary);
|
|
2357
|
-
animation: orb-agent-rot 1s linear infinite;
|
|
2358
|
-
}
|
|
2359
|
-
|
|
2360
|
-
@keyframes orb-agent-rot {
|
|
2361
|
-
to {
|
|
2362
|
-
transform: rotate(360deg);
|
|
2363
|
-
}
|
|
2364
|
-
}
|
|
2365
|
-
|
|
2366
2293
|
.orb-agent-caret {
|
|
2367
2294
|
display: inline-block;
|
|
2368
2295
|
width: 2px;
|