@floegence/floe-webapp-core 0.36.13 → 0.36.16

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.
Files changed (39) hide show
  1. package/dist/components/deck/DeckCell.js +46 -38
  2. package/dist/components/file-browser/FileContextMenu.js +8 -6
  3. package/dist/components/ui/Dialog.js +62 -52
  4. package/dist/components/ui/Dropdown.js +50 -48
  5. package/dist/components/ui/FloatingWindow.js +73 -69
  6. package/dist/components/ui/InfiniteCanvas.d.ts +2 -0
  7. package/dist/components/ui/InfiniteCanvas.js +121 -101
  8. package/dist/components/ui/canvasGeometry.d.ts +32 -0
  9. package/dist/components/ui/canvasGeometry.js +33 -0
  10. package/dist/components/ui/dialogSurfaceScope.d.ts +8 -8
  11. package/dist/components/ui/dialogSurfaceScope.js +108 -62
  12. package/dist/components/ui/index.d.ts +2 -0
  13. package/dist/components/ui/surfacePortalScope.d.ts +1 -1
  14. package/dist/components/ui/surfacePortalTypes.d.ts +8 -0
  15. package/dist/components/workbench/WorkbenchCanvas.d.ts +4 -0
  16. package/dist/components/workbench/WorkbenchCanvas.js +52 -26
  17. package/dist/components/workbench/WorkbenchCanvasField.d.ts +2 -0
  18. package/dist/components/workbench/WorkbenchCanvasField.js +18 -6
  19. package/dist/components/workbench/WorkbenchHud.d.ts +9 -0
  20. package/dist/components/workbench/WorkbenchHud.js +24 -10
  21. package/dist/components/workbench/WorkbenchSurface.js +56 -36
  22. package/dist/components/workbench/WorkbenchThemeSelector.d.ts +6 -0
  23. package/dist/components/workbench/WorkbenchThemeSelector.js +77 -0
  24. package/dist/components/workbench/WorkbenchWidget.d.ts +2 -0
  25. package/dist/components/workbench/WorkbenchWidget.js +205 -164
  26. package/dist/components/workbench/index.d.ts +2 -0
  27. package/dist/components/workbench/types.d.ts +2 -0
  28. package/dist/components/workbench/useWorkbenchModel.d.ts +6 -0
  29. package/dist/components/workbench/useWorkbenchModel.js +115 -106
  30. package/dist/components/workbench/workbenchHelpers.js +53 -50
  31. package/dist/components/workbench/workbenchThemes.d.ts +32 -0
  32. package/dist/components/workbench/workbenchThemes.js +82 -0
  33. package/dist/full.js +611 -591
  34. package/dist/styles.css +1 -1
  35. package/dist/ui.js +120 -100
  36. package/dist/workbench-themes.css +1106 -0
  37. package/dist/workbench.css +492 -96
  38. package/dist/workbench.js +35 -27
  39. package/package.json +1 -1
@@ -0,0 +1,1106 @@
1
+ /*
2
+ * Workbench theme variants.
3
+ *
4
+ * The default workbench inherits app-level tokens. These variants intentionally
5
+ * go beyond palette swaps: they tune canvas atmosphere, grid cadence, typography,
6
+ * widget chrome, dock shape, and the demo widgets' internal semantic colours.
7
+ */
8
+
9
+ @layer components {
10
+ .workbench-surface:is(
11
+ [data-workbench-theme='vibrancy'],
12
+ [data-workbench-theme='mica'],
13
+ [data-workbench-theme='midnight'],
14
+ [data-workbench-theme='aurora'],
15
+ [data-workbench-theme='terminal']
16
+ ) {
17
+ color: var(--wb-text);
18
+ }
19
+
20
+ .workbench-surface:is(
21
+ [data-workbench-theme='vibrancy'],
22
+ [data-workbench-theme='mica'],
23
+ [data-workbench-theme='midnight'],
24
+ [data-workbench-theme='aurora'],
25
+ [data-workbench-theme='terminal']
26
+ )
27
+ .workbench-widget__title {
28
+ color: var(--wb-text);
29
+ }
30
+
31
+ .workbench-surface:is(
32
+ [data-workbench-theme='vibrancy'],
33
+ [data-workbench-theme='mica'],
34
+ [data-workbench-theme='midnight'],
35
+ [data-workbench-theme='aurora'],
36
+ [data-workbench-theme='terminal']
37
+ )
38
+ .workbench-lock-button.is-locked {
39
+ background: var(--wb-accent);
40
+ border-color: var(--wb-accent);
41
+ color: #ffffff;
42
+ box-shadow: 0 8px 24px -6px var(--wb-accent-ring);
43
+ }
44
+
45
+ .workbench-surface:is(
46
+ [data-workbench-theme='vibrancy'],
47
+ [data-workbench-theme='mica'],
48
+ [data-workbench-theme='midnight'],
49
+ [data-workbench-theme='aurora'],
50
+ [data-workbench-theme='terminal']
51
+ )
52
+ .workbench-widget__drag {
53
+ display: none;
54
+ }
55
+
56
+ .workbench-surface:is(
57
+ [data-workbench-theme='vibrancy'],
58
+ [data-workbench-theme='mica'],
59
+ [data-workbench-theme='midnight'],
60
+ [data-workbench-theme='aurora'],
61
+ [data-workbench-theme='terminal']
62
+ )
63
+ .workbench-hud__button:hover,
64
+ .workbench-surface:is(
65
+ [data-workbench-theme='vibrancy'],
66
+ [data-workbench-theme='mica'],
67
+ [data-workbench-theme='midnight'],
68
+ [data-workbench-theme='aurora'],
69
+ [data-workbench-theme='terminal']
70
+ )
71
+ .workbench-theme-selector__trigger:hover,
72
+ .workbench-surface:is(
73
+ [data-workbench-theme='vibrancy'],
74
+ [data-workbench-theme='mica'],
75
+ [data-workbench-theme='midnight'],
76
+ [data-workbench-theme='aurora'],
77
+ [data-workbench-theme='terminal']
78
+ )
79
+ .workbench-theme-selector__trigger[data-open='true'] {
80
+ background: var(--wb-row-hover);
81
+ color: var(--wb-text);
82
+ }
83
+
84
+ /* =========================================================================
85
+ * MACOS VIBRANCY — traffic-light glass over a quiet wallpaper.
86
+ * =====================================================================*/
87
+ .workbench-surface[data-workbench-theme='vibrancy'] {
88
+ --wb-font-body:
89
+ 'DM Sans', ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
90
+ --wb-font-display: 'DM Serif Display', Georgia, serif;
91
+ --wb-font-mono: 'SF Mono', 'Cascadia Code', Menlo, ui-monospace, monospace;
92
+ --wb-vib-wallpaper:
93
+ radial-gradient(ellipse 80% 60% at 25% 20%, #dbe6fb 0%, transparent 60%),
94
+ radial-gradient(ellipse 90% 70% at 80% 85%, #ead7ee 0%, transparent 60%),
95
+ linear-gradient(160deg, #e6ebf5 0%, #ece0ef 100%);
96
+ --wb-vib-widget: rgba(255, 255, 255, 0.74);
97
+ --wb-vib-widget-hover: rgba(255, 255, 255, 0.82);
98
+ --wb-vib-header: linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(252, 252, 254, 0.66));
99
+ --wb-vib-border: rgba(255, 255, 255, 0.48);
100
+ --wb-vib-border-strong: rgba(52, 120, 246, 0.54);
101
+ --wb-vib-divider: rgba(30, 37, 54, 0.08);
102
+ --wb-vib-shadow:
103
+ 0 1px 0 rgba(255, 255, 255, 0.66) inset, 0 12px 40px -14px rgba(22, 28, 45, 0.26),
104
+ 0 4px 10px -6px rgba(22, 28, 45, 0.12);
105
+ --wb-accent: #3478f6;
106
+ --wb-accent-strong: #1e6ae8;
107
+ --wb-accent-soft: rgba(52, 120, 246, 0.14);
108
+ --wb-accent-ring: rgba(52, 120, 246, 0.28);
109
+ --wb-text: #1d2430;
110
+ --wb-text-muted: rgba(29, 36, 48, 0.58);
111
+ --wb-border: rgba(29, 36, 48, 0.12);
112
+ --wb-widget-body: rgba(255, 255, 255, 0.42);
113
+ --wb-widget-body-alt: rgba(255, 255, 255, 0.36);
114
+ --wb-row-hover: rgba(255, 255, 255, 0.46);
115
+ --wb-row-active: rgba(52, 120, 246, 0.12);
116
+ --wb-grid-major: 96px;
117
+ --wb-grid-minor: 32px;
118
+ --wb-grid-minor-offset: 16px;
119
+ --wb-atmosphere:
120
+ radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.65), transparent 28%),
121
+ url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='400' height='400' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
122
+ --wb-atmosphere-opacity: 0.2;
123
+ --wb-atmosphere-blend: multiply;
124
+ --wb-chart-cpu: var(--wb-accent);
125
+ --wb-chart-memory: color-mix(in srgb, var(--wb-accent) 58%, var(--wb-text-muted));
126
+ --wb-chart-disk: color-mix(in srgb, var(--wb-accent) 36%, var(--wb-text-muted));
127
+ --wb-log-info: var(--wb-accent);
128
+ --wb-log-warn: color-mix(in srgb, var(--wb-accent) 62%, #8a6a00);
129
+ --wb-log-error: color-mix(in srgb, var(--wb-accent) 56%, #d92d20);
130
+ --wb-log-debug: var(--wb-text-muted);
131
+ --wb-syntax-keyword: var(--wb-accent);
132
+ --wb-syntax-string: color-mix(in srgb, var(--wb-accent) 48%, var(--wb-text));
133
+ --wb-syntax-fn: var(--wb-accent-strong);
134
+ --wb-syntax-number: color-mix(in srgb, var(--wb-accent) 62%, var(--wb-text-muted));
135
+ --wb-syntax-attr: color-mix(in srgb, var(--wb-accent) 42%, var(--wb-text));
136
+ --wb-terminal-bg: rgba(255, 255, 255, 0.45);
137
+ --wb-terminal-toolbar: rgba(255, 255, 255, 0.28);
138
+ --wb-terminal-text: var(--wb-text);
139
+ --wb-terminal-muted: var(--wb-text-muted);
140
+ --wb-terminal-prompt: var(--wb-accent);
141
+ }
142
+
143
+ html.dark .workbench-surface[data-workbench-theme='vibrancy'] {
144
+ --wb-vib-wallpaper:
145
+ radial-gradient(ellipse 80% 60% at 25% 20%, #1b2540 0%, transparent 60%),
146
+ radial-gradient(ellipse 90% 70% at 80% 85%, #281a38 0%, transparent 60%),
147
+ linear-gradient(160deg, #0c1020 0%, #140a22 100%);
148
+ --wb-vib-widget: rgba(38, 38, 44, 0.58);
149
+ --wb-vib-widget-hover: rgba(44, 44, 52, 0.7);
150
+ --wb-vib-header: linear-gradient(180deg, rgba(68, 68, 76, 0.62), rgba(40, 40, 48, 0.5));
151
+ --wb-vib-border: rgba(255, 255, 255, 0.12);
152
+ --wb-vib-border-strong: rgba(90, 155, 255, 0.62);
153
+ --wb-vib-divider: rgba(255, 255, 255, 0.08);
154
+ --wb-vib-shadow:
155
+ 0 1px 0 rgba(255, 255, 255, 0.08) inset, 0 20px 60px -14px rgba(0, 0, 0, 0.72),
156
+ 0 6px 14px -6px rgba(0, 0, 0, 0.46);
157
+ --wb-accent: #5a9bff;
158
+ --wb-accent-strong: #86b7ff;
159
+ --wb-accent-soft: rgba(90, 155, 255, 0.16);
160
+ --wb-accent-ring: rgba(90, 155, 255, 0.32);
161
+ --wb-text: #f4f7fb;
162
+ --wb-text-muted: rgba(244, 247, 251, 0.58);
163
+ --wb-border: rgba(255, 255, 255, 0.12);
164
+ --wb-widget-body: rgba(255, 255, 255, 0.045);
165
+ --wb-widget-body-alt: rgba(255, 255, 255, 0.055);
166
+ --wb-row-hover: rgba(255, 255, 255, 0.08);
167
+ --wb-row-active: rgba(90, 155, 255, 0.16);
168
+ --wb-atmosphere-opacity: 0.28;
169
+ --wb-atmosphere-blend: overlay;
170
+ --wb-terminal-bg: rgba(10, 14, 26, 0.36);
171
+ --wb-terminal-toolbar: rgba(255, 255, 255, 0.045);
172
+ }
173
+
174
+ .workbench-surface[data-workbench-theme='vibrancy'] .workbench-canvas {
175
+ background: var(--wb-vib-wallpaper);
176
+ }
177
+
178
+ .workbench-surface[data-workbench-theme='vibrancy'] .workbench-canvas__grid {
179
+ background-image:
180
+ linear-gradient(to right, rgba(29, 36, 48, 0.035) 1px, transparent 1px),
181
+ linear-gradient(to bottom, rgba(29, 36, 48, 0.035) 1px, transparent 1px),
182
+ radial-gradient(circle, rgba(29, 36, 48, 0.07) 0.9px, transparent 1px);
183
+ opacity: 0.42;
184
+ }
185
+
186
+ html.dark .workbench-surface[data-workbench-theme='vibrancy'] .workbench-canvas__grid {
187
+ background-image:
188
+ linear-gradient(to right, rgba(255, 255, 255, 0.035) 1px, transparent 1px),
189
+ linear-gradient(to bottom, rgba(255, 255, 255, 0.035) 1px, transparent 1px),
190
+ radial-gradient(circle, rgba(255, 255, 255, 0.055) 0.9px, transparent 1px);
191
+ }
192
+
193
+ .workbench-surface[data-workbench-theme='vibrancy'] .workbench-widget {
194
+ background: var(--wb-vib-widget);
195
+ border-color: var(--wb-vib-border);
196
+ border-radius: 14px;
197
+ box-shadow: var(--wb-vib-shadow);
198
+ backdrop-filter: blur(34px) saturate(180%);
199
+ -webkit-backdrop-filter: blur(34px) saturate(180%);
200
+ }
201
+
202
+ .workbench-surface[data-workbench-theme='vibrancy'] .workbench-widget:hover {
203
+ background: var(--wb-vib-widget-hover);
204
+ }
205
+
206
+ .workbench-surface[data-workbench-theme='vibrancy'] .workbench-widget.is-selected,
207
+ .workbench-surface[data-workbench-theme='vibrancy'] .workbench-widget.is-dragging,
208
+ .workbench-surface[data-workbench-theme='vibrancy'] .workbench-widget.is-resizing {
209
+ border-color: var(--wb-vib-border-strong);
210
+ box-shadow:
211
+ 0 0 0 2px var(--wb-accent-soft),
212
+ 0 20px 48px -14px var(--wb-accent-ring),
213
+ var(--wb-vib-shadow);
214
+ }
215
+
216
+ .workbench-surface[data-workbench-theme='vibrancy'] .workbench-widget__header {
217
+ --wb-window-control-bleed: 7px;
218
+ --wb-window-control-bleed-negative: -7px;
219
+ min-height: 34px;
220
+ padding: 7px 12px;
221
+ gap: 10px;
222
+ background: var(--wb-vib-header);
223
+ border-bottom-color: var(--wb-vib-divider);
224
+ }
225
+
226
+ .workbench-surface[data-workbench-theme='vibrancy'] .workbench-widget__traffic {
227
+ display: inline-flex;
228
+ }
229
+
230
+ .workbench-surface[data-workbench-theme='vibrancy'] .workbench-widget__window-controls {
231
+ display: none;
232
+ }
233
+
234
+ .workbench-surface[data-workbench-theme='vibrancy'] .workbench-widget__title-area svg {
235
+ display: none;
236
+ }
237
+
238
+ .workbench-surface[data-workbench-theme='vibrancy'] .workbench-widget__title {
239
+ font-family: var(--wb-font-display);
240
+ font-size: 13.5px;
241
+ font-weight: 400;
242
+ letter-spacing: 0;
243
+ }
244
+
245
+ .workbench-surface[data-workbench-theme='vibrancy'] .workbench-hud,
246
+ .workbench-surface[data-workbench-theme='vibrancy'] .workbench-lock-button,
247
+ .workbench-surface[data-workbench-theme='vibrancy'] .workbench-dock {
248
+ background: rgba(255, 255, 255, 0.56);
249
+ border-color: rgba(255, 255, 255, 0.46);
250
+ box-shadow: var(--wb-vib-shadow);
251
+ backdrop-filter: blur(36px) saturate(180%);
252
+ -webkit-backdrop-filter: blur(36px) saturate(180%);
253
+ }
254
+
255
+ html.dark .workbench-surface[data-workbench-theme='vibrancy'] .workbench-hud,
256
+ html.dark .workbench-surface[data-workbench-theme='vibrancy'] .workbench-lock-button,
257
+ html.dark .workbench-surface[data-workbench-theme='vibrancy'] .workbench-dock {
258
+ background: rgba(36, 36, 40, 0.5);
259
+ border-color: rgba(255, 255, 255, 0.1);
260
+ }
261
+
262
+ .workbench-surface[data-workbench-theme='vibrancy'] .workbench-dock {
263
+ border-radius: 20px;
264
+ }
265
+
266
+ .workbench-surface[data-workbench-theme='vibrancy'] .workbench-dock__tile {
267
+ background: rgba(255, 255, 255, 0.42);
268
+ border-color: rgba(255, 255, 255, 0.26);
269
+ }
270
+
271
+ .workbench-surface[data-workbench-theme='vibrancy']
272
+ .workbench-dock__item.is-active
273
+ .workbench-dock__tile {
274
+ background: linear-gradient(
275
+ 135deg,
276
+ color-mix(in srgb, var(--wb-accent) 82%, white),
277
+ var(--wb-accent)
278
+ );
279
+ border-color: transparent;
280
+ color: #ffffff;
281
+ box-shadow: 0 8px 18px -4px var(--wb-accent-ring);
282
+ }
283
+
284
+ /* =========================================================================
285
+ * FLUENT MICA — wallpaper bleed-through, system titlebars, taskbar.
286
+ * =====================================================================*/
287
+ .workbench-surface[data-workbench-theme='mica'] {
288
+ --wb-font-body:
289
+ 'Manrope', 'Segoe UI Variable', 'Segoe UI', ui-sans-serif, system-ui, sans-serif;
290
+ --wb-font-display: var(--wb-font-body);
291
+ --wb-font-mono: 'Cascadia Code', 'SF Mono', Menlo, ui-monospace, monospace;
292
+ --wb-mica-wallpaper:
293
+ radial-gradient(ellipse 70% 70% at 12% 16%, rgba(255, 220, 230, 0.55), transparent 62%),
294
+ radial-gradient(ellipse 74% 64% at 86% 20%, rgba(220, 230, 255, 0.45), transparent 58%),
295
+ radial-gradient(ellipse 70% 60% at 70% 90%, rgba(250, 235, 215, 0.52), transparent 60%),
296
+ linear-gradient(135deg, #eef2f7 0%, #f6edf0 52%, #e8f0fb 100%);
297
+ --wb-mica-widget: rgba(255, 255, 255, 0.84);
298
+ --wb-mica-header: rgba(255, 255, 255, 0.74);
299
+ --wb-mica-border: rgba(17, 24, 39, 0.1);
300
+ --wb-mica-divider: rgba(17, 24, 39, 0.08);
301
+ --wb-mica-shadow:
302
+ 0 1px 0 rgba(255, 255, 255, 0.64) inset, 0 16px 42px -18px rgba(31, 41, 55, 0.28);
303
+ --wb-accent: #0078d4;
304
+ --wb-accent-strong: #005fae;
305
+ --wb-accent-soft: rgba(0, 120, 212, 0.12);
306
+ --wb-accent-ring: rgba(0, 120, 212, 0.28);
307
+ --wb-text: #202027;
308
+ --wb-text-muted: rgba(32, 32, 39, 0.6);
309
+ --wb-border: var(--wb-mica-border);
310
+ --wb-widget-body: rgba(255, 255, 255, 0.42);
311
+ --wb-widget-body-alt: rgba(255, 255, 255, 0.36);
312
+ --wb-row-hover: rgba(0, 0, 0, 0.045);
313
+ --wb-row-active: rgba(0, 120, 212, 0.12);
314
+ --wb-grid-major: 120px;
315
+ --wb-grid-minor: 40px;
316
+ --wb-grid-minor-offset: 20px;
317
+ --wb-atmosphere:
318
+ radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.62), transparent 32%),
319
+ url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='400' height='400' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
320
+ --wb-atmosphere-opacity: 0.16;
321
+ --wb-atmosphere-blend: multiply;
322
+ --wb-chart-cpu: var(--wb-accent);
323
+ --wb-chart-memory: color-mix(in srgb, var(--wb-accent) 62%, var(--wb-text-muted));
324
+ --wb-chart-disk: color-mix(in srgb, var(--wb-accent) 36%, var(--wb-text-muted));
325
+ --wb-log-info: var(--wb-accent);
326
+ --wb-log-warn: color-mix(in srgb, var(--wb-accent) 62%, #8a6a00);
327
+ --wb-log-error: color-mix(in srgb, var(--wb-accent) 52%, #d92d20);
328
+ --wb-log-debug: var(--wb-text-muted);
329
+ --wb-syntax-keyword: var(--wb-accent);
330
+ --wb-syntax-string: color-mix(in srgb, var(--wb-accent) 50%, var(--wb-text));
331
+ --wb-syntax-fn: var(--wb-accent-strong);
332
+ --wb-syntax-number: color-mix(in srgb, var(--wb-accent) 66%, var(--wb-text-muted));
333
+ --wb-syntax-attr: color-mix(in srgb, var(--wb-accent) 42%, var(--wb-text));
334
+ --wb-terminal-bg: rgba(255, 255, 255, 0.46);
335
+ --wb-terminal-toolbar: rgba(255, 255, 255, 0.32);
336
+ --wb-terminal-text: var(--wb-text);
337
+ --wb-terminal-muted: var(--wb-text-muted);
338
+ --wb-terminal-prompt: var(--wb-accent);
339
+ }
340
+
341
+ html.dark .workbench-surface[data-workbench-theme='mica'] {
342
+ --wb-mica-wallpaper:
343
+ radial-gradient(ellipse 70% 70% at 12% 16%, rgba(60, 70, 95, 0.38), transparent 62%),
344
+ radial-gradient(ellipse 74% 64% at 86% 20%, rgba(95, 70, 110, 0.24), transparent 58%),
345
+ radial-gradient(ellipse 70% 60% at 70% 90%, rgba(40, 55, 75, 0.34), transparent 60%),
346
+ linear-gradient(135deg, #151923 0%, #1c1824 52%, #121925 100%);
347
+ --wb-mica-widget: rgba(36, 36, 42, 0.84);
348
+ --wb-mica-header: rgba(42, 42, 48, 0.72);
349
+ --wb-mica-border: rgba(255, 255, 255, 0.08);
350
+ --wb-mica-divider: rgba(255, 255, 255, 0.07);
351
+ --wb-mica-shadow:
352
+ 0 1px 0 rgba(255, 255, 255, 0.08) inset, 0 20px 58px -16px rgba(0, 0, 0, 0.66);
353
+ --wb-accent: #60cdff;
354
+ --wb-accent-strong: #8bdcff;
355
+ --wb-accent-soft: rgba(96, 205, 255, 0.14);
356
+ --wb-accent-ring: rgba(96, 205, 255, 0.28);
357
+ --wb-text: #f4f4f5;
358
+ --wb-text-muted: rgba(244, 244, 245, 0.58);
359
+ --wb-widget-body: rgba(255, 255, 255, 0.045);
360
+ --wb-widget-body-alt: rgba(255, 255, 255, 0.055);
361
+ --wb-row-hover: rgba(255, 255, 255, 0.075);
362
+ --wb-row-active: rgba(96, 205, 255, 0.14);
363
+ --wb-atmosphere-opacity: 0.3;
364
+ --wb-atmosphere-blend: overlay;
365
+ --wb-terminal-bg: rgba(8, 11, 18, 0.38);
366
+ --wb-terminal-toolbar: rgba(255, 255, 255, 0.045);
367
+ }
368
+
369
+ .workbench-surface[data-workbench-theme='mica'] .workbench-canvas {
370
+ background: var(--wb-mica-wallpaper);
371
+ }
372
+
373
+ .workbench-surface[data-workbench-theme='mica'] .workbench-canvas__grid {
374
+ background-image:
375
+ linear-gradient(
376
+ to right,
377
+ color-mix(in srgb, var(--wb-text) 4%, transparent) 1px,
378
+ transparent 1px
379
+ ),
380
+ linear-gradient(
381
+ to bottom,
382
+ color-mix(in srgb, var(--wb-text) 4%, transparent) 1px,
383
+ transparent 1px
384
+ ),
385
+ radial-gradient(
386
+ circle,
387
+ color-mix(in srgb, var(--wb-text) 5%, transparent) 0.9px,
388
+ transparent 1px
389
+ );
390
+ opacity: 0.7;
391
+ }
392
+
393
+ .workbench-surface[data-workbench-theme='mica'] .workbench-widget {
394
+ background: var(--wb-mica-widget);
395
+ border-color: var(--wb-mica-border);
396
+ border-radius: 8px;
397
+ box-shadow: var(--wb-mica-shadow);
398
+ backdrop-filter: blur(48px) saturate(150%);
399
+ -webkit-backdrop-filter: blur(48px) saturate(150%);
400
+ }
401
+
402
+ .workbench-surface[data-workbench-theme='mica'] .workbench-widget.is-selected,
403
+ .workbench-surface[data-workbench-theme='mica'] .workbench-widget.is-dragging,
404
+ .workbench-surface[data-workbench-theme='mica'] .workbench-widget.is-resizing {
405
+ border-color: var(--wb-accent);
406
+ box-shadow:
407
+ 0 0 0 1px var(--wb-accent-soft),
408
+ 0 16px 42px -18px var(--wb-accent-ring),
409
+ var(--wb-mica-shadow);
410
+ }
411
+
412
+ .workbench-surface[data-workbench-theme='mica'] .workbench-widget__header {
413
+ --wb-window-control-bleed: 0px;
414
+ --wb-window-control-bleed-negative: 0px;
415
+ min-height: 36px;
416
+ padding: 0 0 0 12px;
417
+ gap: 8px;
418
+ background: var(--wb-mica-header);
419
+ border-bottom-color: var(--wb-mica-divider);
420
+ }
421
+
422
+ .workbench-surface[data-workbench-theme='mica'] .workbench-widget__title {
423
+ font-size: 12px;
424
+ font-weight: 650;
425
+ letter-spacing: -0.01em;
426
+ }
427
+
428
+ .workbench-surface[data-workbench-theme='mica'] .workbench-widget__window-controls {
429
+ display: inline-flex;
430
+ }
431
+
432
+ .workbench-surface[data-workbench-theme='mica'] .workbench-widget__window-control--close {
433
+ width: 42px;
434
+ }
435
+
436
+ .workbench-surface[data-workbench-theme='mica']
437
+ .workbench-widget__window-control--close:hover,
438
+ .workbench-surface[data-workbench-theme='mica']
439
+ .workbench-widget__window-control--close:focus-visible {
440
+ background: #c42b1c;
441
+ color: #ffffff;
442
+ }
443
+
444
+ .workbench-surface[data-workbench-theme='mica'] .workbench-hud,
445
+ .workbench-surface[data-workbench-theme='mica'] .workbench-lock-button {
446
+ background: var(--wb-mica-widget);
447
+ border-color: var(--wb-mica-border);
448
+ box-shadow: var(--wb-mica-shadow);
449
+ backdrop-filter: blur(48px) saturate(160%);
450
+ -webkit-backdrop-filter: blur(48px) saturate(160%);
451
+ }
452
+
453
+ .workbench-surface[data-workbench-theme='mica'] .workbench-dock {
454
+ left: 0;
455
+ right: 0;
456
+ bottom: 0;
457
+ transform: none;
458
+ justify-content: center;
459
+ border-right: 0;
460
+ border-bottom: 0;
461
+ border-left: 0;
462
+ border-radius: 0;
463
+ background: color-mix(in srgb, var(--wb-mica-widget) 92%, transparent);
464
+ border-color: var(--wb-mica-border);
465
+ box-shadow: 0 -12px 34px -22px rgba(17, 24, 39, 0.28);
466
+ backdrop-filter: blur(56px) saturate(180%);
467
+ -webkit-backdrop-filter: blur(56px) saturate(180%);
468
+ }
469
+
470
+ .workbench-surface[data-workbench-theme='mica'] .workbench-dock__tile {
471
+ background: transparent;
472
+ border-color: transparent;
473
+ border-radius: 6px;
474
+ color: var(--wb-text-muted);
475
+ }
476
+
477
+ .workbench-surface[data-workbench-theme='mica'] .workbench-dock__item:hover .workbench-dock__tile,
478
+ .workbench-surface[data-workbench-theme='mica']
479
+ .workbench-dock__item.is-hovered
480
+ .workbench-dock__tile {
481
+ background: var(--wb-row-hover);
482
+ color: var(--wb-text);
483
+ box-shadow: none;
484
+ }
485
+
486
+ .workbench-surface[data-workbench-theme='mica']
487
+ .workbench-dock__item.is-active
488
+ .workbench-dock__tile {
489
+ background: var(--wb-accent-soft);
490
+ border-color: transparent;
491
+ color: var(--wb-accent);
492
+ box-shadow: inset 0 -2px 0 var(--wb-accent);
493
+ }
494
+
495
+ /* =========================================================================
496
+ * MIDNIGHT STUDIO — restrained product-tool chrome.
497
+ * =====================================================================*/
498
+ .workbench-surface[data-workbench-theme='midnight'] {
499
+ --wb-font-body:
500
+ 'Geist', ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
501
+ --wb-font-display: var(--wb-font-body);
502
+ --wb-font-mono: 'Geist Mono', 'SF Mono', Menlo, ui-monospace, monospace;
503
+ --wb-mid-canvas: #fafafa;
504
+ --wb-mid-widget: #ffffff;
505
+ --wb-mid-header: #fbfbfc;
506
+ --wb-mid-border: rgba(16, 16, 26, 0.08);
507
+ --wb-mid-border-strong: rgba(16, 16, 26, 0.14);
508
+ --wb-mid-divider: rgba(16, 16, 26, 0.06);
509
+ --wb-mid-shadow: 0 1px 2px rgba(16, 16, 26, 0.05), 0 10px 26px -14px rgba(16, 16, 26, 0.18);
510
+ --wb-accent: #5e6ad2;
511
+ --wb-accent-strong: #4c55a8;
512
+ --wb-accent-soft: rgba(94, 106, 210, 0.1);
513
+ --wb-accent-ring: rgba(94, 106, 210, 0.22);
514
+ --wb-text: #10101a;
515
+ --wb-text-muted: #646470;
516
+ --wb-border: var(--wb-mid-border);
517
+ --wb-widget-body: #ffffff;
518
+ --wb-widget-body-alt: #f7f7f8;
519
+ --wb-row-hover: #f3f3f5;
520
+ --wb-row-active: rgba(94, 106, 210, 0.1);
521
+ --wb-grid-major: 64px;
522
+ --wb-grid-minor: 64px;
523
+ --wb-grid-minor-offset: 0;
524
+ --wb-atmosphere: url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='400' height='400' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
525
+ --wb-atmosphere-opacity: 0.14;
526
+ --wb-atmosphere-blend: multiply;
527
+ --wb-chart-cpu: var(--wb-accent);
528
+ --wb-chart-memory: color-mix(in srgb, var(--wb-accent) 64%, var(--wb-text-muted));
529
+ --wb-chart-disk: color-mix(in srgb, var(--wb-accent) 38%, var(--wb-text-muted));
530
+ --wb-log-info: var(--wb-accent);
531
+ --wb-log-warn: color-mix(in srgb, var(--wb-accent) 60%, var(--wb-text));
532
+ --wb-log-error: color-mix(in srgb, var(--wb-accent) 48%, #d92d20);
533
+ --wb-log-debug: var(--wb-text-muted);
534
+ --wb-syntax-keyword: var(--wb-accent);
535
+ --wb-syntax-string: color-mix(in srgb, var(--wb-accent) 46%, var(--wb-text));
536
+ --wb-syntax-fn: var(--wb-accent-strong);
537
+ --wb-syntax-number: color-mix(in srgb, var(--wb-accent) 66%, var(--wb-text-muted));
538
+ --wb-syntax-attr: color-mix(in srgb, var(--wb-accent) 38%, var(--wb-text));
539
+ --wb-terminal-bg: #fbfbfc;
540
+ --wb-terminal-toolbar: #f4f4f6;
541
+ --wb-terminal-text: var(--wb-text);
542
+ --wb-terminal-muted: var(--wb-text-muted);
543
+ --wb-terminal-prompt: var(--wb-accent);
544
+ }
545
+
546
+ html.dark .workbench-surface[data-workbench-theme='midnight'] {
547
+ --wb-mid-canvas: #08090c;
548
+ --wb-mid-widget: #131316;
549
+ --wb-mid-header: #16161a;
550
+ --wb-mid-border: rgba(255, 255, 255, 0.07);
551
+ --wb-mid-border-strong: rgba(255, 255, 255, 0.14);
552
+ --wb-mid-divider: rgba(255, 255, 255, 0.05);
553
+ --wb-mid-shadow: 0 1px 2px rgba(0, 0, 0, 0.5), 0 14px 32px -16px rgba(0, 0, 0, 0.6);
554
+ --wb-accent: #7b7fef;
555
+ --wb-accent-strong: #a4a7ff;
556
+ --wb-accent-soft: rgba(123, 127, 239, 0.14);
557
+ --wb-accent-ring: rgba(123, 127, 239, 0.3);
558
+ --wb-text: #ededf1;
559
+ --wb-text-muted: #7c818a;
560
+ --wb-widget-body: #131316;
561
+ --wb-widget-body-alt: #17171b;
562
+ --wb-row-hover: rgba(255, 255, 255, 0.055);
563
+ --wb-row-active: rgba(123, 127, 239, 0.14);
564
+ --wb-atmosphere-opacity: 0.28;
565
+ --wb-atmosphere-blend: overlay;
566
+ --wb-terminal-bg: #101014;
567
+ --wb-terminal-toolbar: #151519;
568
+ }
569
+
570
+ .workbench-surface[data-workbench-theme='midnight'] .workbench-canvas {
571
+ background: var(--wb-mid-canvas);
572
+ }
573
+
574
+ .workbench-surface[data-workbench-theme='midnight'] .workbench-canvas__grid {
575
+ background-image:
576
+ linear-gradient(
577
+ to right,
578
+ color-mix(in srgb, var(--wb-text) 4%, transparent) 1px,
579
+ transparent 1px
580
+ ),
581
+ linear-gradient(
582
+ to bottom,
583
+ color-mix(in srgb, var(--wb-text) 4%, transparent) 1px,
584
+ transparent 1px
585
+ );
586
+ opacity: 1;
587
+ }
588
+
589
+ .workbench-surface[data-workbench-theme='midnight'] .workbench-widget {
590
+ background: var(--wb-mid-widget);
591
+ border-color: var(--wb-mid-border);
592
+ border-radius: 10px;
593
+ box-shadow: var(--wb-mid-shadow);
594
+ }
595
+
596
+ .workbench-surface[data-workbench-theme='midnight'] .workbench-widget:hover {
597
+ border-color: var(--wb-mid-border-strong);
598
+ }
599
+
600
+ .workbench-surface[data-workbench-theme='midnight'] .workbench-widget.is-selected,
601
+ .workbench-surface[data-workbench-theme='midnight'] .workbench-widget.is-dragging,
602
+ .workbench-surface[data-workbench-theme='midnight'] .workbench-widget.is-resizing {
603
+ border-color: var(--wb-accent);
604
+ box-shadow:
605
+ 0 0 0 1px var(--wb-accent-soft),
606
+ 0 12px 30px -14px var(--wb-accent-ring);
607
+ }
608
+
609
+ .workbench-surface[data-workbench-theme='midnight'] .workbench-widget__header {
610
+ --wb-window-control-bleed: 7px;
611
+ --wb-window-control-bleed-negative: -7px;
612
+ min-height: 32px;
613
+ padding: 7px 12px;
614
+ background: var(--wb-mid-header);
615
+ border-bottom-color: var(--wb-mid-divider);
616
+ }
617
+
618
+ .workbench-surface[data-workbench-theme='midnight'] .workbench-widget__window-control {
619
+ color: color-mix(in srgb, var(--wb-text-muted) 84%, white);
620
+ }
621
+
622
+ .workbench-surface[data-workbench-theme='midnight']
623
+ .workbench-widget__window-control:not(.workbench-widget__window-control--close):hover,
624
+ .workbench-surface[data-workbench-theme='midnight']
625
+ .workbench-widget__window-control:not(.workbench-widget__window-control--close):focus-visible {
626
+ background: color-mix(in srgb, var(--wb-accent) 18%, transparent);
627
+ color: var(--wb-text);
628
+ }
629
+
630
+ .workbench-surface[data-workbench-theme='midnight'] .workbench-widget__title-dot {
631
+ display: inline-flex;
632
+ }
633
+
634
+ .workbench-surface[data-workbench-theme='midnight'] .workbench-widget__title-area svg {
635
+ display: none;
636
+ }
637
+
638
+ .workbench-surface[data-workbench-theme='midnight'] .workbench-widget__title {
639
+ font-size: 11.5px;
640
+ font-weight: 620;
641
+ }
642
+
643
+ .workbench-surface[data-workbench-theme='midnight'] .workbench-hud,
644
+ .workbench-surface[data-workbench-theme='midnight'] .workbench-lock-button,
645
+ .workbench-surface[data-workbench-theme='midnight'] .workbench-dock {
646
+ background: var(--wb-mid-widget);
647
+ border-color: var(--wb-mid-border);
648
+ box-shadow: var(--wb-mid-shadow);
649
+ backdrop-filter: none;
650
+ -webkit-backdrop-filter: none;
651
+ }
652
+
653
+ .workbench-surface[data-workbench-theme='midnight'] .workbench-dock {
654
+ border-radius: 12px;
655
+ gap: 6px;
656
+ padding: 6px 10px;
657
+ }
658
+
659
+ .workbench-surface[data-workbench-theme='midnight'] .workbench-dock__tile {
660
+ background: transparent;
661
+ border-color: transparent;
662
+ border-radius: 8px;
663
+ color: var(--wb-text-muted);
664
+ }
665
+
666
+ .workbench-surface[data-workbench-theme='midnight']
667
+ .workbench-dock__item:hover
668
+ .workbench-dock__tile,
669
+ .workbench-surface[data-workbench-theme='midnight']
670
+ .workbench-dock__item.is-hovered
671
+ .workbench-dock__tile,
672
+ .workbench-surface[data-workbench-theme='midnight']
673
+ .workbench-dock__item.is-active
674
+ .workbench-dock__tile {
675
+ background: var(--wb-row-hover);
676
+ color: var(--wb-text);
677
+ box-shadow: none;
678
+ }
679
+
680
+ .workbench-surface[data-workbench-theme='midnight']
681
+ .workbench-dock__item.is-active
682
+ .workbench-dock__tile {
683
+ box-shadow: inset 0 -2px 0 var(--wb-accent);
684
+ }
685
+
686
+ /* =========================================================================
687
+ * AURORA GLASS — editorial glass, deep radius, dreamy indigo/violet.
688
+ * =====================================================================*/
689
+ .workbench-surface[data-workbench-theme='aurora'] {
690
+ --wb-font-body:
691
+ 'Satoshi', ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
692
+ --wb-font-display: 'Fraunces', Georgia, serif;
693
+ --wb-font-mono: 'SF Mono', 'Cascadia Code', Menlo, ui-monospace, monospace;
694
+ --wb-aur-wallpaper:
695
+ radial-gradient(ellipse 55% 45% at 20% 30%, #ffd9d9 0%, transparent 60%),
696
+ radial-gradient(ellipse 50% 40% at 80% 30%, #e0d7ff 0%, transparent 60%),
697
+ radial-gradient(ellipse 55% 45% at 70% 85%, #ffe4c4 0%, transparent 60%),
698
+ radial-gradient(ellipse 55% 45% at 15% 90%, #d4f1ff 0%, transparent 60%),
699
+ linear-gradient(140deg, #fef6ef 0%, #f3ebfa 100%);
700
+ --wb-aur-widget: rgba(255, 255, 255, 0.58);
701
+ --wb-aur-widget-hover: rgba(255, 255, 255, 0.68);
702
+ --wb-aur-header: linear-gradient(180deg, rgba(255, 255, 255, 0.62), rgba(255, 255, 255, 0.36));
703
+ --wb-aur-border: rgba(255, 255, 255, 0.66);
704
+ --wb-aur-border-inner: rgba(255, 255, 255, 0.9);
705
+ --wb-aur-divider: rgba(17, 15, 38, 0.06);
706
+ --wb-aur-shadow:
707
+ 0 1px 0 var(--wb-aur-border-inner) inset, 0 20px 50px -14px rgba(67, 56, 202, 0.2),
708
+ 0 6px 16px -6px rgba(17, 15, 38, 0.1);
709
+ --wb-accent: #6366f1;
710
+ --wb-accent-strong: #4f46e5;
711
+ --wb-accent-soft: rgba(99, 102, 241, 0.16);
712
+ --wb-accent-ring: rgba(99, 102, 241, 0.3);
713
+ --wb-text: #17152d;
714
+ --wb-text-muted: rgba(23, 21, 45, 0.58);
715
+ --wb-border: rgba(99, 102, 241, 0.16);
716
+ --wb-widget-body: rgba(255, 255, 255, 0.24);
717
+ --wb-widget-body-alt: rgba(255, 255, 255, 0.28);
718
+ --wb-row-hover: rgba(255, 255, 255, 0.34);
719
+ --wb-row-active: rgba(99, 102, 241, 0.14);
720
+ --wb-grid-major: 112px;
721
+ --wb-grid-minor: 36px;
722
+ --wb-grid-minor-offset: 18px;
723
+ --wb-atmosphere:
724
+ radial-gradient(circle at 50% 10%, rgba(255, 255, 255, 0.55), transparent 32%),
725
+ radial-gradient(ellipse at center, transparent 44%, rgba(59, 45, 114, 0.16) 100%),
726
+ url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.88' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='400' height='400' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
727
+ --wb-atmosphere-opacity: 0.24;
728
+ --wb-atmosphere-blend: multiply;
729
+ --wb-chart-cpu: var(--wb-accent);
730
+ --wb-chart-memory: color-mix(in srgb, var(--wb-accent) 66%, #c4b5fd);
731
+ --wb-chart-disk: color-mix(in srgb, var(--wb-accent) 42%, var(--wb-text-muted));
732
+ --wb-log-info: var(--wb-accent);
733
+ --wb-log-warn: color-mix(in srgb, var(--wb-accent) 58%, #8b5cf6);
734
+ --wb-log-error: color-mix(in srgb, var(--wb-accent) 45%, #e11d48);
735
+ --wb-log-debug: var(--wb-text-muted);
736
+ --wb-syntax-keyword: var(--wb-accent);
737
+ --wb-syntax-string: color-mix(in srgb, var(--wb-accent) 48%, var(--wb-text));
738
+ --wb-syntax-fn: color-mix(in srgb, var(--wb-accent) 70%, #a5b4fc);
739
+ --wb-syntax-number: #7c3aed;
740
+ --wb-syntax-attr: color-mix(in srgb, var(--wb-accent) 46%, var(--wb-text));
741
+ --wb-terminal-bg: rgba(255, 255, 255, 0.25);
742
+ --wb-terminal-toolbar: rgba(255, 255, 255, 0.22);
743
+ --wb-terminal-text: var(--wb-text);
744
+ --wb-terminal-muted: var(--wb-text-muted);
745
+ --wb-terminal-prompt: var(--wb-accent);
746
+ }
747
+
748
+ html.dark .workbench-surface[data-workbench-theme='aurora'] {
749
+ --wb-aur-wallpaper:
750
+ radial-gradient(ellipse 55% 45% at 20% 30%, #6366f1 0%, transparent 60%),
751
+ radial-gradient(ellipse 50% 40% at 80% 70%, #4338ca 0%, transparent 60%),
752
+ linear-gradient(140deg, #1a1038 0%, #08051a 100%);
753
+ --wb-aur-widget: rgba(24, 22, 45, 0.48);
754
+ --wb-aur-widget-hover: rgba(28, 26, 52, 0.58);
755
+ --wb-aur-header: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
756
+ --wb-aur-border: rgba(255, 255, 255, 0.12);
757
+ --wb-aur-border-inner: rgba(255, 255, 255, 0.22);
758
+ --wb-aur-divider: rgba(255, 255, 255, 0.08);
759
+ --wb-aur-shadow:
760
+ 0 1px 0 var(--wb-aur-border-inner) inset, 0 30px 72px -14px rgba(8, 5, 26, 0.66),
761
+ 0 8px 20px -8px rgba(67, 56, 202, 0.28);
762
+ --wb-accent: #a5b4fc;
763
+ --wb-accent-strong: #c4b5fd;
764
+ --wb-accent-soft: rgba(165, 180, 252, 0.18);
765
+ --wb-accent-ring: rgba(165, 180, 252, 0.34);
766
+ --wb-text: #f4f1ff;
767
+ --wb-text-muted: rgba(244, 241, 255, 0.58);
768
+ --wb-border: rgba(255, 255, 255, 0.12);
769
+ --wb-widget-body: rgba(255, 255, 255, 0.04);
770
+ --wb-widget-body-alt: rgba(255, 255, 255, 0.055);
771
+ --wb-row-hover: rgba(255, 255, 255, 0.08);
772
+ --wb-row-active: rgba(165, 180, 252, 0.16);
773
+ --wb-atmosphere-opacity: 0.3;
774
+ --wb-atmosphere-blend: overlay;
775
+ --wb-terminal-bg: rgba(8, 5, 26, 0.32);
776
+ --wb-terminal-toolbar: rgba(255, 255, 255, 0.045);
777
+ --wb-syntax-number: #c4b5fd;
778
+ }
779
+
780
+ .workbench-surface[data-workbench-theme='aurora'] .workbench-canvas {
781
+ background: var(--wb-aur-wallpaper);
782
+ }
783
+
784
+ .workbench-surface[data-workbench-theme='aurora'] .workbench-canvas__grid {
785
+ background-image:
786
+ linear-gradient(
787
+ to right,
788
+ color-mix(in srgb, var(--wb-accent) 7%, transparent) 1px,
789
+ transparent 1px
790
+ ),
791
+ linear-gradient(
792
+ to bottom,
793
+ color-mix(in srgb, var(--wb-accent) 7%, transparent) 1px,
794
+ transparent 1px
795
+ ),
796
+ radial-gradient(
797
+ circle,
798
+ color-mix(in srgb, var(--wb-accent) 12%, transparent) 0.9px,
799
+ transparent 1px
800
+ );
801
+ opacity: 0.75;
802
+ }
803
+
804
+ .workbench-surface[data-workbench-theme='aurora'] .workbench-widget {
805
+ background: var(--wb-aur-widget);
806
+ border: 1px solid var(--wb-aur-border);
807
+ border-top-color: var(--wb-aur-border-inner);
808
+ border-radius: 20px;
809
+ box-shadow: var(--wb-aur-shadow);
810
+ backdrop-filter: blur(60px) saturate(180%);
811
+ -webkit-backdrop-filter: blur(60px) saturate(180%);
812
+ }
813
+
814
+ .workbench-surface[data-workbench-theme='aurora'] .workbench-widget:hover {
815
+ background: var(--wb-aur-widget-hover);
816
+ }
817
+
818
+ .workbench-surface[data-workbench-theme='aurora'] .workbench-widget.is-selected,
819
+ .workbench-surface[data-workbench-theme='aurora'] .workbench-widget.is-dragging,
820
+ .workbench-surface[data-workbench-theme='aurora'] .workbench-widget.is-resizing {
821
+ border-color: var(--wb-accent);
822
+ box-shadow:
823
+ 0 0 0 2px var(--wb-accent-soft),
824
+ 0 24px 56px -14px var(--wb-accent-ring),
825
+ var(--wb-aur-shadow);
826
+ }
827
+
828
+ .workbench-surface[data-workbench-theme='aurora'] .workbench-widget__header {
829
+ --wb-window-control-bleed: 8px;
830
+ --wb-window-control-bleed-negative: -8px;
831
+ min-height: 38px;
832
+ padding: 8px 14px;
833
+ background: var(--wb-aur-header);
834
+ border-bottom-color: var(--wb-aur-divider);
835
+ }
836
+
837
+ .workbench-surface[data-workbench-theme='aurora']
838
+ .workbench-widget__window-control:not(.workbench-widget__window-control--close):hover,
839
+ .workbench-surface[data-workbench-theme='aurora']
840
+ .workbench-widget__window-control:not(.workbench-widget__window-control--close):focus-visible {
841
+ background: rgba(255, 255, 255, 0.32);
842
+ }
843
+
844
+ .workbench-surface[data-workbench-theme='aurora'] .workbench-widget__title-area svg {
845
+ opacity: 0.6;
846
+ }
847
+
848
+ .workbench-surface[data-workbench-theme='aurora'] .workbench-widget__title {
849
+ font-family: var(--wb-font-display);
850
+ font-size: 14px;
851
+ font-weight: 580;
852
+ letter-spacing: -0.015em;
853
+ }
854
+
855
+ .workbench-surface[data-workbench-theme='aurora'] .workbench-hud,
856
+ .workbench-surface[data-workbench-theme='aurora'] .workbench-lock-button,
857
+ .workbench-surface[data-workbench-theme='aurora'] .workbench-dock {
858
+ background: var(--wb-aur-widget);
859
+ border: 1px solid var(--wb-aur-border);
860
+ border-top-color: var(--wb-aur-border-inner);
861
+ box-shadow: var(--wb-aur-shadow);
862
+ backdrop-filter: blur(50px) saturate(180%);
863
+ -webkit-backdrop-filter: blur(50px) saturate(180%);
864
+ }
865
+
866
+ .workbench-surface[data-workbench-theme='aurora'] .workbench-dock {
867
+ border-radius: 22px;
868
+ padding: 8px 14px;
869
+ }
870
+
871
+ .workbench-surface[data-workbench-theme='aurora'] .workbench-dock__tile {
872
+ background: rgba(255, 255, 255, 0.36);
873
+ border-color: var(--wb-aur-border);
874
+ border-radius: 12px;
875
+ }
876
+
877
+ html.dark .workbench-surface[data-workbench-theme='aurora'] .workbench-dock__tile {
878
+ background: rgba(255, 255, 255, 0.08);
879
+ }
880
+
881
+ .workbench-surface[data-workbench-theme='aurora']
882
+ .workbench-dock__item.is-active
883
+ .workbench-dock__tile {
884
+ background: linear-gradient(135deg, #818cf8 0%, #c4b5fd 100%);
885
+ border-color: transparent;
886
+ color: #ffffff;
887
+ box-shadow: 0 8px 22px -4px rgba(99, 102, 241, 0.45);
888
+ }
889
+
890
+ /* =========================================================================
891
+ * TERMINAL CHIC — crisp mono shell, badges, command dock.
892
+ * =====================================================================*/
893
+ .workbench-surface[data-workbench-theme='terminal'] {
894
+ --wb-font-body:
895
+ 'IBM Plex Sans', ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
896
+ --wb-font-display: 'IBM Plex Mono', ui-monospace, monospace;
897
+ --wb-font-mono: 'IBM Plex Mono', 'SF Mono', 'Cascadia Code', ui-monospace, monospace;
898
+ --wb-term-canvas: #f7f5f2;
899
+ --wb-term-widget: #ffffff;
900
+ --wb-term-header: #faf8f3;
901
+ --wb-term-border: #d9d5cf;
902
+ --wb-term-divider: #e9e5df;
903
+ --wb-term-shadow: 0 1px 2px rgba(18, 18, 24, 0.05), 0 10px 24px -14px rgba(18, 18, 24, 0.12);
904
+ --wb-accent: #d63384;
905
+ --wb-accent-strong: #b4236c;
906
+ --wb-accent-soft: rgba(214, 51, 132, 0.12);
907
+ --wb-accent-ring: rgba(214, 51, 132, 0.28);
908
+ --wb-text: #121218;
909
+ --wb-text-muted: #6f6b66;
910
+ --wb-border: var(--wb-term-border);
911
+ --wb-widget-body: #fffdfa;
912
+ --wb-widget-body-alt: #faf8f3;
913
+ --wb-row-hover: rgba(18, 18, 24, 0.045);
914
+ --wb-row-active: rgba(214, 51, 132, 0.12);
915
+ --wb-grid-major: 56px;
916
+ --wb-grid-minor: 56px;
917
+ --wb-grid-minor-offset: 0;
918
+ --wb-atmosphere:
919
+ radial-gradient(ellipse at center, transparent 42%, rgba(18, 18, 24, 0.08) 100%),
920
+ url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='400' height='400' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
921
+ --wb-atmosphere-opacity: 0.22;
922
+ --wb-atmosphere-blend: multiply;
923
+ --wb-chart-cpu: var(--wb-accent);
924
+ --wb-chart-memory: color-mix(in srgb, var(--wb-accent) 60%, var(--wb-text-muted));
925
+ --wb-chart-disk: color-mix(in srgb, var(--wb-accent) 38%, var(--wb-text-muted));
926
+ --wb-log-info: var(--wb-accent);
927
+ --wb-log-warn: color-mix(in srgb, var(--wb-accent) 58%, var(--wb-text));
928
+ --wb-log-error: color-mix(in srgb, var(--wb-accent) 48%, #c2410c);
929
+ --wb-log-debug: var(--wb-text-muted);
930
+ --wb-syntax-keyword: var(--wb-accent);
931
+ --wb-syntax-string: color-mix(in srgb, var(--wb-accent) 46%, var(--wb-text));
932
+ --wb-syntax-fn: var(--wb-accent-strong);
933
+ --wb-syntax-number: color-mix(in srgb, var(--wb-accent) 72%, var(--wb-text-muted));
934
+ --wb-syntax-attr: color-mix(in srgb, var(--wb-accent) 42%, var(--wb-text));
935
+ --wb-terminal-bg: #fffdfa;
936
+ --wb-terminal-toolbar: #faf8f3;
937
+ --wb-terminal-text: var(--wb-text);
938
+ --wb-terminal-muted: var(--wb-text-muted);
939
+ --wb-terminal-prompt: var(--wb-accent);
940
+ }
941
+
942
+ html.dark .workbench-surface[data-workbench-theme='terminal'] {
943
+ --wb-term-canvas: #0a0a0c;
944
+ --wb-term-widget: #111114;
945
+ --wb-term-header: #16161a;
946
+ --wb-term-border: #26262c;
947
+ --wb-term-divider: #1f1f24;
948
+ --wb-term-shadow: 0 1px 2px rgba(0, 0, 0, 0.6), 0 14px 32px -16px rgba(0, 0, 0, 0.66);
949
+ --wb-accent: #ff4593;
950
+ --wb-accent-strong: #ff75ae;
951
+ --wb-accent-soft: rgba(255, 69, 147, 0.14);
952
+ --wb-accent-ring: rgba(255, 69, 147, 0.3);
953
+ --wb-text: #e8e8ea;
954
+ --wb-text-muted: #89898f;
955
+ --wb-widget-body: #111114;
956
+ --wb-widget-body-alt: #16161a;
957
+ --wb-row-hover: rgba(255, 255, 255, 0.06);
958
+ --wb-row-active: rgba(255, 69, 147, 0.14);
959
+ --wb-atmosphere-opacity: 0.3;
960
+ --wb-atmosphere-blend: overlay;
961
+ --wb-terminal-bg: #0f0f12;
962
+ --wb-terminal-toolbar: #151519;
963
+ }
964
+
965
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-canvas {
966
+ background: var(--wb-term-canvas);
967
+ }
968
+
969
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-canvas__grid {
970
+ background-image:
971
+ linear-gradient(
972
+ to right,
973
+ color-mix(in srgb, var(--wb-text) 4%, transparent) 1px,
974
+ transparent 1px
975
+ ),
976
+ linear-gradient(
977
+ to bottom,
978
+ color-mix(in srgb, var(--wb-text) 4%, transparent) 1px,
979
+ transparent 1px
980
+ );
981
+ opacity: 1;
982
+ }
983
+
984
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-widget {
985
+ background: var(--wb-term-widget);
986
+ border-color: var(--wb-term-border);
987
+ border-radius: 6px;
988
+ box-shadow: var(--wb-term-shadow);
989
+ }
990
+
991
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-widget.is-selected,
992
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-widget.is-dragging,
993
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-widget.is-resizing {
994
+ border-color: var(--wb-accent);
995
+ box-shadow:
996
+ 0 0 0 1px var(--wb-accent-soft),
997
+ 0 14px 36px -14px var(--wb-accent-ring);
998
+ }
999
+
1000
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-widget__header {
1001
+ --wb-window-control-bleed: 6px;
1002
+ --wb-window-control-bleed-negative: -6px;
1003
+ min-height: 32px;
1004
+ padding: 6px 10px;
1005
+ gap: 8px;
1006
+ background: var(--wb-term-header);
1007
+ border-bottom-color: var(--wb-term-divider);
1008
+ }
1009
+
1010
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-widget__badge {
1011
+ display: inline-flex;
1012
+ }
1013
+
1014
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-widget__window-control {
1015
+ color: #87d98a;
1016
+ }
1017
+
1018
+ .workbench-surface[data-workbench-theme='terminal']
1019
+ .workbench-widget__window-control:not(.workbench-widget__window-control--close):hover,
1020
+ .workbench-surface[data-workbench-theme='terminal']
1021
+ .workbench-widget__window-control:not(.workbench-widget__window-control--close):focus-visible {
1022
+ background: rgba(85, 255, 136, 0.12);
1023
+ color: #d8ffe2;
1024
+ }
1025
+
1026
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-widget__title-area svg {
1027
+ display: none;
1028
+ }
1029
+
1030
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-widget__header,
1031
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-widget__title,
1032
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-hud,
1033
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-dock {
1034
+ font-family: var(--wb-font-mono);
1035
+ }
1036
+
1037
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-widget__title {
1038
+ font-size: 10.5px;
1039
+ font-weight: 500;
1040
+ letter-spacing: 0.02em;
1041
+ }
1042
+
1043
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-hud,
1044
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-lock-button,
1045
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-dock {
1046
+ background: var(--wb-term-widget);
1047
+ border-color: var(--wb-term-border);
1048
+ border-radius: 6px;
1049
+ box-shadow: var(--wb-term-shadow);
1050
+ backdrop-filter: none;
1051
+ -webkit-backdrop-filter: none;
1052
+ }
1053
+
1054
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-dock {
1055
+ align-items: center;
1056
+ gap: 4px;
1057
+ padding: 6px 10px;
1058
+ }
1059
+
1060
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-dock::after {
1061
+ content: '$ theme apply terminal-chic';
1062
+ display: inline-flex;
1063
+ align-items: center;
1064
+ height: 30px;
1065
+ margin-left: 6px;
1066
+ padding: 0 10px;
1067
+ border-left: 1px solid var(--wb-term-border);
1068
+ color: var(--wb-text-muted);
1069
+ font-size: 10.5px;
1070
+ letter-spacing: 0.01em;
1071
+ white-space: nowrap;
1072
+ }
1073
+
1074
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-dock__item,
1075
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-dock__tile {
1076
+ width: 32px;
1077
+ height: 32px;
1078
+ }
1079
+
1080
+ .workbench-surface[data-workbench-theme='terminal'] .workbench-dock__tile {
1081
+ background: var(--wb-term-header);
1082
+ border: 1px solid var(--wb-term-border);
1083
+ border-radius: 4px;
1084
+ color: var(--wb-text);
1085
+ }
1086
+
1087
+ .workbench-surface[data-workbench-theme='terminal']
1088
+ .workbench-dock__item:hover
1089
+ .workbench-dock__tile,
1090
+ .workbench-surface[data-workbench-theme='terminal']
1091
+ .workbench-dock__item.is-hovered
1092
+ .workbench-dock__tile {
1093
+ border-color: var(--wb-accent);
1094
+ color: var(--wb-accent);
1095
+ box-shadow: 0 0 0 1px var(--wb-accent-soft);
1096
+ }
1097
+
1098
+ .workbench-surface[data-workbench-theme='terminal']
1099
+ .workbench-dock__item.is-active
1100
+ .workbench-dock__tile {
1101
+ background: var(--wb-accent-soft);
1102
+ border-color: var(--wb-accent);
1103
+ color: var(--wb-accent);
1104
+ box-shadow: 0 0 18px var(--wb-accent-ring);
1105
+ }
1106
+ }