@fest-lib/veela 0.1.20 → 1.0.2

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 (141) hide show
  1. package/dist/veela.js +4 -33
  2. package/package.json +9 -2
  3. package/src/scss/_layers.scss +6 -34
  4. package/src/scss/basic/{misc/_core-layout.scss → _core-layout.scss} +1 -1
  5. package/src/scss/basic/_layers.scss +1 -0
  6. package/src/scss/basic/{misc/_layout.scss → _layout.scss} +15 -15
  7. package/src/scss/basic/{misc/_normalize.scss → _normalize.scss} +5 -103
  8. package/src/scss/basic/{misc/_states.scss → _states.scss} +2 -2
  9. package/src/scss/{core/misc → basic}/_utilities.scss +4 -4
  10. package/src/scss/basic/design/_keyframes.scss +1 -1
  11. package/src/scss/basic/design/_shapes.scss +1 -1
  12. package/src/scss/basic/index.scss +14 -16
  13. package/src/scss/chrome.scss +2 -0
  14. package/src/scss/core/_color-mod.scss +24 -0
  15. package/src/scss/core/{misc/_color-properties.scss → _color-properties.scss} +1 -1
  16. package/src/scss/core/{misc/_tokens.scss → _tokens.scss} +10 -93
  17. package/src/scss/core/index.scss +13 -1
  18. package/src/scss/index.scss +7 -2
  19. package/src/scss/index.ts +1 -1
  20. package/src/scss/{core/interact → interact}/_viewport.scss +1 -1
  21. package/src/scss/interact/index.scss +18 -0
  22. package/src/scss/theme/_effects.scss +60 -0
  23. package/src/scss/theme/index.scss +8 -0
  24. package/src/scss/{advanced/index.ts → theme/loader.ts} +3 -4
  25. package/src/scss/ui/_bar.scss +268 -0
  26. package/src/scss/ui/_buttons.scss +215 -0
  27. package/src/scss/ui/_chrome-mixins.scss +104 -0
  28. package/src/scss/ui/_color.scss +3 -0
  29. package/src/scss/ui/_colorize.scss +5 -0
  30. package/src/scss/{advanced/layout → ui}/_content.scss +0 -1
  31. package/src/scss/ui/_core-layout.scss +4 -0
  32. package/src/scss/ui/_essentials-options.scss +2 -0
  33. package/src/scss/ui/_essentials.scss +707 -0
  34. package/src/scss/ui/_explorer-content.scss +417 -0
  35. package/src/scss/ui/_explorer.scss +274 -0
  36. package/src/scss/ui/_forms-bare-host-elements.scss +25 -0
  37. package/src/scss/ui/_forms-options.scss +2 -0
  38. package/src/scss/ui/_forms.scss +279 -0
  39. package/src/scss/ui/_forms_misc.scss +201 -0
  40. package/src/scss/ui/_gridbox.scss +298 -0
  41. package/src/scss/ui/_home-host.scss +192 -0
  42. package/src/scss/ui/_index.scss +23 -0
  43. package/src/scss/ui/_launcher-typography.scss +31 -0
  44. package/src/scss/ui/_layers.scss +48 -0
  45. package/src/scss/ui/_layout.scss +3 -0
  46. package/src/scss/ui/_markdown.scss +1634 -0
  47. package/src/scss/ui/_modal.scss +309 -0
  48. package/src/scss/ui/_motion.scss +3 -0
  49. package/src/scss/ui/_native-host-button-chrome.scss +31 -0
  50. package/src/scss/ui/_normalize.scss +5 -0
  51. package/src/scss/ui/_orientation-functions.scss +273 -0
  52. package/src/scss/ui/_orientbox.scss +97 -0
  53. package/src/scss/ui/_scrollbar.scss +257 -0
  54. package/src/scss/ui/_shared-overlays.scss +16 -0
  55. package/src/scss/ui/_shared.scss +4 -0
  56. package/src/scss/ui/_sidebar.scss +478 -0
  57. package/src/scss/ui/_speed-dial.scss +47 -0
  58. package/src/scss/ui/_states.scss +4 -0
  59. package/src/scss/ui/_tables.scss +28 -0
  60. package/src/scss/ui/_tabs.scss +405 -0
  61. package/src/scss/ui/_taskbar.scss +215 -0
  62. package/src/scss/ui/_toolbars.scss +167 -0
  63. package/src/scss/ui/_typography.scss +11 -0
  64. package/src/scss/ui/_utils.scss +8 -0
  65. package/src/scss/ui/_viewport.scss +470 -0
  66. package/src/scss/ui/_window-frame.scss +658 -0
  67. package/src/scss/ui/components/app-menu.scss +817 -0
  68. package/src/scss/ui/components/appearance-desktop.scss +14 -0
  69. package/src/scss/ui/components/appearance-mobile.scss +14 -0
  70. package/src/scss/ui/components/calendar/flyout.scss +194 -0
  71. package/src/scss/ui/components/calendar/index.scss +627 -0
  72. package/src/scss/ui/components/explorer-settings.scss +232 -0
  73. package/src/scss/ui/components/file-manager-content.scss +2 -0
  74. package/src/scss/ui/components/file-manager.scss +2 -0
  75. package/src/scss/ui/components/launcher-icon-mask.scss +34 -0
  76. package/src/scss/ui/components/navbar.scss +133 -0
  77. package/src/scss/ui/components/quick-settings.scss +321 -0
  78. package/src/scss/ui/components/scrollframe.scss +58 -0
  79. package/src/scss/ui/components/slider.scss +188 -0
  80. package/src/scss/ui/components/speed-dial.scss +2288 -0
  81. package/src/scss/ui/components/statusbar.scss +255 -0
  82. package/src/scss/ui/components/task.scss +118 -0
  83. package/src/scss/ui/components/taskbar.scss +514 -0
  84. package/src/scss/ui/components/text.scss +241 -0
  85. package/src/scss/ui/components/window.scss +601 -0
  86. package/src/scss/ui/home-host-apply.scss +10 -0
  87. package/src/scss/ui/index.scss +7 -0
  88. package/src/scss/ui/native-controls.scss +17 -0
  89. package/src/scss/advanced/_index.scss +0 -0
  90. package/src/scss/advanced/animation/_motion.scss +0 -323
  91. package/src/scss/advanced/color/_color.scss +0 -328
  92. package/src/scss/advanced/color/_colorize.scss +0 -325
  93. package/src/scss/advanced/design/_design-tokens.scss +0 -118
  94. package/src/scss/advanced/design/_effects.scss +0 -275
  95. package/src/scss/advanced/design/_shadow.scss +0 -359
  96. package/src/scss/advanced/design/_surfaces.scss +0 -76
  97. package/src/scss/advanced/effects/_animations.scss +0 -124
  98. package/src/scss/advanced/effects/_shadows.scss +0 -50
  99. package/src/scss/advanced/font/_typography.scss +0 -601
  100. package/src/scss/advanced/index.scss +0 -11
  101. package/src/scss/advanced/layout/_index.scss +0 -5
  102. package/src/scss/advanced/layout/_normalize.scss +0 -543
  103. package/src/scss/advanced/layout/_shared-overlays.scss +0 -162
  104. package/src/scss/advanced/md3/_md3.scss +0 -506
  105. package/src/scss/advanced/md3/_utils.scss +0 -114
  106. package/src/scss/advanced/misc/_config.scss +0 -119
  107. package/src/scss/advanced/misc/_initials.scss +0 -298
  108. package/src/scss/advanced/misc/_mixins.scss +0 -179
  109. package/src/scss/advanced/misc/_rendering.scss +0 -82
  110. package/src/scss/advanced/misc/_tokens.scss +0 -74
  111. package/src/scss/advanced/theme/_shared.scss +0 -232
  112. package/src/scss/advanced/theme/_states.scss +0 -332
  113. package/src/scss/advanced/theme/_variants.scss +0 -354
  114. package/src/scss/advanced/tokens/_material-color.scss +0 -120
  115. package/src/scss/advanced/tokens/_variables.scss +0 -171
  116. package/src/scss/basic/misc/_index.scss +0 -18
  117. package/src/scss/basic/misc/_mixins.scss +0 -179
  118. package/src/scss/basic/misc/_queries.scss +0 -34
  119. package/src/scss/basic/misc/_tokens.scss +0 -78
  120. package/src/scss/basic/misc/_veela.scss +0 -12
  121. package/src/scss/core/misc/_index.scss +0 -6
  122. /package/src/scss/basic/{misc/_motion.scss → _motion.scss} +0 -0
  123. /package/src/scss/{advanced/misc → basic}/_queries.scss +0 -0
  124. /package/src/scss/basic/{misc/_shared.scss → _shared.scss} +0 -0
  125. /package/src/scss/core/{misc/_config.scss → _config.scss} +0 -0
  126. /package/src/scss/core/{misc/_functions.scss → _functions.scss} +0 -0
  127. /package/src/scss/core/{misc/_icons.scss → _icons.scss} +0 -0
  128. /package/src/scss/core/{misc/_layout.scss → _layout.scss} +0 -0
  129. /package/src/scss/core/{misc/_mixins.scss → _mixins.scss} +0 -0
  130. /package/src/scss/core/{misc/_properties.scss → _properties.scss} +0 -0
  131. /package/src/scss/core/{misc/_utils.scss → _utils.scss} +0 -0
  132. /package/src/scss/{core/interact → interact}/_draggable.scss +0 -0
  133. /package/src/scss/{core/interact → interact}/_position.scss +0 -0
  134. /package/src/scss/{core/interact → interact}/_ps-anchor.scss +0 -0
  135. /package/src/scss/{core/interact → interact}/_ps-centered.scss +0 -0
  136. /package/src/scss/{core/interact → interact}/_ps-cursor.scss +0 -0
  137. /package/src/scss/{core/interact → interact}/_ps-draggable.scss +0 -0
  138. /package/src/scss/{core/interact → interact}/_ps-mechanic.scss +0 -0
  139. /package/src/scss/{core/interact → interact}/_ps-properties.scss +0 -0
  140. /package/src/scss/{core/interact → interact}/_ps-resizable.scss +0 -0
  141. /package/src/scss/{core/interact → interact}/_resizable.scss +0 -0
@@ -0,0 +1,514 @@
1
+ /*
2
+ * Filename: TaskBar.scss
3
+ * FullPath: modules/projects/fl.ui/src/ui/navigation/taskbar/scss/TaskBar.scss
4
+ * Change date and time: 23.09.10_23.08.2026
5
+ * Reason for changes: Mobile dock is pointer-transparent except Home FAB (apps go full-bleed).
6
+ * FIND:mobile-dock
7
+ */
8
+ /* Taskbar / env chrome (document + host). Former environment-shell/scss/chrome.scss. */
9
+ //@use "veela-lib" as m;
10
+
11
+ @layer components {
12
+ /* Fixed chrome: taskbar (desktop + mobile dock) + FL-UI `ui-statusbar` (desktop meta). */
13
+ /* WHY: `--env-z-shell-chrome` is set in environment-shell `scss/root.scss` ($z-shell-chrome). */
14
+
15
+ ui-taskbar {
16
+ padding: 0px 0px 0px 0px !important;
17
+ gap: 0px 0px !important;
18
+
19
+ &::part(taskbar) {
20
+ padding: 0px 0px 0px 0px !important;
21
+ gap: 0px 0px !important;
22
+
23
+ display: grid !important;
24
+ grid-template-columns: minmax(0, max-content) minmax(0, 1fr) minmax(0, max-content);
25
+ }
26
+
27
+ ui-task {
28
+ margin: 0px 0px 0px 0px !important;
29
+ }
30
+ }
31
+
32
+ .env-shell-chrome {
33
+ position: fixed;
34
+ inset-inline: 0;
35
+ inset-block-end: 0;
36
+ z-index: var(--env-z-shell-chrome, 2147483000);
37
+ isolation: isolate;
38
+ display: flex;
39
+ flex-direction: column;
40
+ gap: 0px !important;
41
+ padding: 0px 0px 0px 0px !important;
42
+ font: 12px ui-sans-serif, system-ui, sans-serif;
43
+ /* WHY: contrast-color(dark variant) painted white glyphs on the light dock. */
44
+ color: var(--color-on-surface, var(--wf-md-on-surface-variant, #1c1c1e));
45
+ pointer-events: none;
46
+ }
47
+
48
+ /* WHY: lure `env-shell-taskbar-under` was a 40px fixed bbox + inline z-index:0 slab. */
49
+ .env-shell-chrome[data-desktop] {
50
+ box-shadow: 0 -8px 28px rgb(0 0 0 / 0.28);
51
+ }
52
+
53
+ .env-shell-chrome > * {
54
+ pointer-events: auto;
55
+ }
56
+
57
+ /*
58
+ * Taskbar base (desktop Win10 acrylic + mobile transparent dock share the same host).
59
+ * Soft elevation lives on `.env-shell-chrome` — not on this backdrop-filter host.
60
+ */
61
+ .env-shell-taskbar {
62
+ /* WHY: #f4f4f5/#1c1c1e forked a slate dock from Settings `--sv-*` / `--base-color`. */
63
+ --env-taskbar-surface: color-mix(
64
+ in oklab,
65
+ var(--color-surface-container-high, --u2-color-mod(var(--base-color, #5a9ec8), 980)) 88%,
66
+ transparent
67
+ );
68
+ --env-taskbar-ink: var(
69
+ --color-on-surface,
70
+ light-dark(
71
+ --u2-color-mod(var(--base-color, #5a9ec8), 900),
72
+ --u2-color-mod(var(--base-color, #5a9ec8), 100)
73
+ )
74
+ );
75
+ --env-taskbar-accent: var(--wf-md-primary, var(--color-primary, #5a9ec8));
76
+ --icon-color: var(--env-taskbar-ink);
77
+ color-scheme: inherit;
78
+
79
+ order: 0;
80
+ position: relative;
81
+ display: flex;
82
+ flex-direction: row;
83
+ flex-wrap: nowrap;
84
+ align-items: stretch;
85
+ gap: 0.15rem;
86
+ block-size: 2.5rem;
87
+ min-block-size: 2.5rem;
88
+ padding: 0 0.25rem;
89
+ padding-block-end: env(safe-area-inset-bottom, 0);
90
+ background: var(--env-taskbar-surface);
91
+ border-block-start: 1px solid light-dark(
92
+ color-mix(in oklab, #000 10%, transparent),
93
+ color-mix(in oklab, #fff 14%, transparent)
94
+ );
95
+ backdrop-filter: blur(22px) saturate(1.35);
96
+ -webkit-backdrop-filter: blur(22px) saturate(1.35);
97
+ color: var(--env-taskbar-ink);
98
+ box-shadow: none;
99
+
100
+ ui-icon {
101
+ color: var(--env-taskbar-ink);
102
+ --icon-color: var(--env-taskbar-ink);
103
+ }
104
+ }
105
+
106
+ .env-shell-taskbar::part(taskbar) {
107
+ display: flex;
108
+ flex-direction: row;
109
+ flex-wrap: nowrap;
110
+ align-items: stretch;
111
+ gap: 0.15rem;
112
+ flex: 1;
113
+ min-inline-size: 0;
114
+ inline-size: 100%;
115
+ }
116
+
117
+ .env-shell-taskbar__pins,
118
+ .env-shell-taskbar__windows {
119
+ display: flex;
120
+ flex-direction: row;
121
+ flex-wrap: nowrap;
122
+ align-items: stretch;
123
+ gap: 0px 0px;
124
+ min-inline-size: 0;
125
+ margin: 0px 0px 0px 0px;
126
+ }
127
+
128
+ .env-shell-taskbar__workspaces {
129
+ display: none;
130
+ flex-direction: row;
131
+ align-items: center;
132
+ gap: 0.25rem;
133
+ margin-inline-start: 0.35rem;
134
+ }
135
+
136
+ .env-shell-taskbar__workspace {
137
+ min-inline-size: 1.35rem;
138
+ min-block-size: 1.35rem;
139
+ padding: 0 0.35rem;
140
+ border: none;
141
+ border-radius: 0.35rem;
142
+ background: color-mix(in oklab, CanvasText 10%, transparent);
143
+ color: inherit;
144
+ font: inherit;
145
+ font-size: 0.7rem;
146
+ cursor: pointer;
147
+ }
148
+
149
+ .env-shell-taskbar__workspace[data-active] {
150
+ background: color-mix(in oklab, CanvasText 22%, transparent);
151
+ font-weight: 650;
152
+ }
153
+
154
+ .env-shell-chrome[data-desktop] .env-shell-taskbar__workspaces {
155
+ display: flex;
156
+ }
157
+
158
+ .env-shell-taskbar__pins {
159
+ flex: 0 0 auto;
160
+ content-visibility: visible;
161
+ inline-size: stretch;
162
+ gap: 0px 0px;
163
+ margin: 0px 0px 0px 0px;
164
+
165
+ [data-env-home] {
166
+ content-visibility: visible;
167
+ color: inherit;
168
+ --icon-color: currentColor;
169
+
170
+ background: color-mix(in oklab, var(--env-taskbar-surface) 60%, transparent) !important;
171
+ background-color: color-mix(in oklab, var(--env-taskbar-surface) 60%, transparent) !important;
172
+ }
173
+
174
+ ui-task {
175
+ backdrop-filter: blur(22px) saturate(1.35);
176
+ -webkit-backdrop-filter: blur(22px) saturate(1.35);
177
+ box-shadow: inset 0 -2px 0 var(--env-taskbar-accent);
178
+ }
179
+
180
+ ui-task::part(icon), ui-task::part(glyph) {
181
+ color: var(--env-taskbar-ink);
182
+ --icon-color: var(--env-taskbar-ink);
183
+ }
184
+ }
185
+
186
+ .env-shell-taskbar__windows {
187
+ flex: 1 1 auto;
188
+ justify-content: flex-start;
189
+ overflow-x: auto;
190
+ scrollbar-width: thin;
191
+ inline-size: stretch;
192
+ }
193
+
194
+ .env-shell-taskbar ui-task {
195
+ cursor: pointer;
196
+ color: inherit;
197
+ align-self: stretch;
198
+ inline-size: fit-content;
199
+ min-inline-size: 2.75rem;
200
+ min-block-size: 100%;
201
+ padding-inline: 0.55rem;
202
+ border: 0;
203
+ border-radius: 0;
204
+ background: transparent;
205
+ outline: none;
206
+ opacity: 1;
207
+ /* Active underline via inset shadow so we don't fight ui-task border tokens. */
208
+ box-shadow: inset 0 -2px 0 transparent;
209
+ }
210
+
211
+ .env-shell-taskbar ui-task:hover {
212
+ background: color-mix(in oklab, var(--env-taskbar-ink) 10%, transparent);
213
+ color: var(--env-taskbar-ink);
214
+ opacity: 1;
215
+ }
216
+
217
+ .env-shell-taskbar ui-task[data-env-active="true"],
218
+ .env-shell-taskbar ui-task[data-active],
219
+ .env-shell-taskbar ui-task[data-focus] {
220
+ outline: none;
221
+ color: var(--env-taskbar-ink);
222
+ opacity: 1;
223
+ background: color-mix(in oklab, var(--env-taskbar-surface) 12%, transparent);
224
+ box-shadow: inset 0 -2px 0 var(--env-taskbar-accent);
225
+ }
226
+
227
+ .env-shell-taskbar ui-task[data-minimized] {
228
+ opacity: 0.65;
229
+ }
230
+
231
+ .env-shell-taskbar__tray-host {
232
+ margin-inline-start: auto;
233
+ display: flex;
234
+ align-items: center;
235
+ flex: 0 0 auto;
236
+ gap: 0.35rem;
237
+ padding-inline: 0.35rem;
238
+ border-inline-start: 1px solid light-dark(
239
+ color-mix(in oklab, #000 10%, transparent),
240
+ color-mix(in oklab, #fff 12%, transparent)
241
+ );
242
+ }
243
+
244
+ .env-shell-taskbar__clock {
245
+ display: flex;
246
+ flex-direction: column;
247
+ align-items: flex-end;
248
+ justify-content: center;
249
+ gap: 0.05rem;
250
+ min-inline-size: 4rem;
251
+ inline-size: fit-content;
252
+ padding-inline: 0.35rem 0.15rem;
253
+ line-height: 1.05;
254
+ user-select: none;
255
+ pointer-events: auto;
256
+ cursor: pointer;
257
+ border-radius: 0.35rem;
258
+ font-variant-numeric: tabular-nums;
259
+
260
+ .env-shell-taskbar__clock-date {
261
+ font-variant-numeric: tabular-nums;
262
+ }
263
+
264
+ .env-shell-taskbar__clock-time {
265
+ font-variant-numeric: tabular-nums;
266
+ }
267
+ }
268
+
269
+ .env-shell-taskbar__clock:hover,
270
+ .env-shell-taskbar__clock:focus-visible {
271
+ background: color-mix(in oklab, var(--env-taskbar-ink) 10%, transparent);
272
+ color: var(--env-taskbar-ink);
273
+ outline: none;
274
+ }
275
+
276
+ .env-device-tray--taskbar {
277
+ pointer-events: auto;
278
+ cursor: pointer;
279
+ border-radius: 0.35rem;
280
+ }
281
+
282
+ .env-device-tray--taskbar:hover,
283
+ .env-device-tray--taskbar:focus-visible {
284
+ background: color-mix(in oklab, var(--env-taskbar-ink) 10%, transparent);
285
+ color: var(--env-taskbar-ink);
286
+ outline: none;
287
+ }
288
+
289
+ .env-shell-taskbar__clock-time {
290
+ font-size: 0.78rem;
291
+ font-weight: 600;
292
+ font-variant-numeric: tabular-nums;
293
+ color: inherit;
294
+ }
295
+
296
+ .env-shell-taskbar__clock-date {
297
+ font-size: 0.62rem;
298
+ font-weight: 500;
299
+ color: color-mix(in oklab, currentColor 72%, transparent);
300
+ white-space: nowrap;
301
+ font-variant-numeric: tabular-nums;
302
+ }
303
+
304
+ /* Desktop: icon-only tasks (tooltip via title / aria-label). */
305
+ .env-shell-chrome[data-desktop] .env-shell-taskbar ui-task::part(title) {
306
+ display: none !important;
307
+ }
308
+
309
+ .env-shell-chrome[data-desktop] .env-shell-taskbar ui-task {
310
+ min-inline-size: 2.5rem;
311
+ padding-inline: 0.45rem;
312
+ }
313
+
314
+ .env-shell-chrome[data-desktop] .env-shell-taskbar ui-task::part(icon) {
315
+ inline-size: 1.35rem;
316
+ block-size: 1.35rem;
317
+ }
318
+
319
+ .env-shell-chrome[data-desktop] .env-shell-taskbar ui-task::part(glyph) {
320
+ inline-size: 1.35rem;
321
+ block-size: 1.35rem;
322
+ }
323
+
324
+ .env-shell-chrome[data-desktop] .env-shell-taskbar ui-task[data-env-home]::part(icon) {
325
+ inline-size: 1.75rem;
326
+ block-size: 1.75rem;
327
+ min-inline-size: 1.75rem;
328
+ min-block-size: 1.75rem;
329
+ }
330
+
331
+ .env-shell-chrome[data-desktop] .env-shell-taskbar ui-task[data-env-home]::part(glyph) {
332
+ inline-size: 100%;
333
+ block-size: 100%;
334
+ --icon-size: 100%;
335
+ --icon-padding: 0.05rem;
336
+ }
337
+
338
+ .env-shell-chrome[data-desktop] .env-shell-taskbar ui-task::part(letter) {
339
+ font-size: 0.8rem;
340
+ }
341
+
342
+ .env-shell-chrome[data-desktop] .env-shell-taskbar__pins {
343
+ border: none 0px transparent;
344
+ outline: none 0px transparent;
345
+ padding: 0px 0px 0px 0px;
346
+ margin: 0px 0px 0px 0px;
347
+ background: transparent;
348
+ background-color: transparent;
349
+ box-shadow: none 0px 0px 0px transparent;
350
+ backdrop-filter: none;
351
+ -webkit-backdrop-filter: none;
352
+ min-inline-size: 2.75rem;
353
+ margin-inline-end: 0.2rem;
354
+ border-radius: 0px;
355
+ }
356
+
357
+ /* Desktop Start — same action as a mobile Home tap (go home / show desktop). */
358
+ .env-shell-chrome[data-desktop] .env-shell-taskbar ui-task[data-env-home] {
359
+ display: inline-flex !important;
360
+ transform: none;
361
+ outline: none;
362
+ backdrop-filter: none;
363
+ -webkit-backdrop-filter: none;
364
+ min-inline-size: 2.75rem;
365
+ margin-inline-end: 0.2rem;
366
+ border-radius: 0px;
367
+ border: none 0px transparent;
368
+ outline: none 0px transparent;
369
+ box-shadow: none 0px 0px 0px transparent;
370
+
371
+ /*
372
+ background: color-mix(in oklab, var(--env-taskbar-accent) 18%, transparent);
373
+ color: var(--env-taskbar-ink);
374
+ --icon-color: currentColor;
375
+ */
376
+ }
377
+
378
+ .env-shell-chrome[data-desktop] .env-shell-taskbar ui-task[data-env-home]:hover,
379
+ .env-shell-chrome[data-desktop] .env-shell-taskbar ui-task[data-env-home]:focus-visible {
380
+ background: color-mix(in oklab, var(--env-taskbar-accent) 32%, transparent);
381
+ }
382
+
383
+ .env-shell-chrome[data-desktop] .env-shell-taskbar ui-task[data-env-home][data-env-active="true"],
384
+ .env-shell-chrome[data-desktop] .env-shell-taskbar ui-task[data-env-home][data-active],
385
+ .env-shell-chrome[data-desktop] .env-shell-taskbar ui-task[data-env-home][data-focus] {
386
+ background: color-mix(in oklab, var(--env-taskbar-accent) 28%, transparent)
387
+ }
388
+
389
+ /*
390
+ * Mobile nav bar: fully transparent; house icon at the physical right
391
+ * so workspace pager dots stay visible in the center.
392
+ * WHY: `ui-taskbar::part(taskbar)` is a 3-col grid (pins | windows | tray);
393
+ * `justify-content` on the host cannot move the slotted Home pin.
394
+ * Long-press Home → `.env-shell-navbar__switcher` (open processes).
395
+ */
396
+ .env-shell-chrome:not([data-desktop]) .env-shell-taskbar {
397
+ position: relative;
398
+ display: block;
399
+ place-self: stretch;
400
+ inline-size: 100%;
401
+ gap: 0;
402
+ block-size: 3rem;
403
+ min-block-size: 3rem;
404
+ padding: 0.15rem 0.75rem;
405
+ /* WHY: 3-button nav is already OS-reserved; extra safe-area made a second dock slab. */
406
+ padding-block-end: 0.15rem;
407
+ background: transparent;
408
+ border-block-start: none;
409
+ backdrop-filter: none;
410
+ -webkit-backdrop-filter: none;
411
+ box-shadow: none;
412
+ color: var(--env-status-fg, var(--env-taskbar-ink));
413
+ --icon-color: currentColor;
414
+ /* WHY: chrome z-index sits above apps; a full-width hit slab ate Save / explorer rows. */
415
+ pointer-events: none;
416
+ }
417
+
418
+ .env-shell-chrome:not([data-desktop]) .env-shell-taskbar::part(taskbar) {
419
+ display: block !important;
420
+ grid-template-columns: none !important;
421
+ position: relative;
422
+ inline-size: 100%;
423
+ block-size: 100%;
424
+ }
425
+
426
+ .env-shell-chrome:not([data-desktop]) .env-shell-taskbar__pins {
427
+ display: contents;
428
+ }
429
+
430
+ .env-shell-chrome:not([data-desktop]) .env-shell-taskbar__pins ui-task:not([data-env-home]) {
431
+ display: none !important;
432
+ }
433
+
434
+ .env-shell-chrome:not([data-desktop]) .env-shell-taskbar__windows {
435
+ display: none !important;
436
+ }
437
+
438
+ .env-shell-chrome:not([data-desktop]) .env-shell-taskbar__tray-host {
439
+ display: none !important;
440
+ }
441
+
442
+ .env-shell-chrome:not([data-desktop]) .env-shell-taskbar ui-task[data-env-home] {
443
+ position: absolute;
444
+ top: auto;
445
+ left: auto;
446
+ right: calc(0.7rem + env(safe-area-inset-right, 0px));
447
+ bottom: 0.22rem;
448
+ min-inline-size: 2.5rem;
449
+ min-block-size: 2.5rem;
450
+ padding: 0;
451
+ margin: 0;
452
+ border-radius: 999px;
453
+ z-index: 6;
454
+ pointer-events: auto;
455
+ background: color-mix(
456
+ in oklab,
457
+ var(--color-surface-container-high, --u2-color-mod(var(--base-color, #5a9ec8), 980)) 88%,
458
+ transparent
459
+ );
460
+ box-shadow: 0 6px 20px -8px color-mix(in oklab, #000 45%, transparent);
461
+ touch-action: manipulation;
462
+ -webkit-user-select: none;
463
+ user-select: none;
464
+ }
465
+
466
+ /* Icon-only Home (hide task title label). */
467
+ .env-shell-chrome:not([data-desktop]) .env-shell-taskbar ui-task[data-env-home]::part(title) {
468
+ display: none !important;
469
+ }
470
+
471
+ .env-shell-chrome:not([data-desktop]) .env-shell-taskbar ui-task[data-env-home]::part(icon) {
472
+ inline-size: 1.7rem;
473
+ block-size: 1.7rem;
474
+ min-inline-size: 1.7rem;
475
+ min-block-size: 1.7rem;
476
+ }
477
+
478
+ /* Prefer Phosphor glyph; letter fallback is last resort (was wrongly showing "U"). */
479
+ .env-shell-chrome:not([data-desktop]) .env-shell-taskbar ui-task[data-env-home]::part(glyph) {
480
+ inline-size: 100%;
481
+ block-size: 100%;
482
+ --icon-padding: 0.1rem;
483
+ --icon-size: 100%;
484
+ opacity: 1;
485
+ }
486
+
487
+ .env-shell-chrome:not([data-desktop]) .env-shell-taskbar ui-task[data-env-home]::part(letter) {
488
+ opacity: 0;
489
+ }
490
+
491
+ .env-shell-chrome:not([data-desktop]) .env-shell-taskbar ui-task[data-env-home]:hover,
492
+ .env-shell-chrome:not([data-desktop]) .env-shell-taskbar ui-task[data-env-home]:active {
493
+ background: color-mix(in oklch, #fff 10%, transparent);
494
+ color: contrast-color(inherit(background-color));
495
+ }
496
+
497
+ .env-shell-chrome:not([data-desktop]) .env-shell-taskbar ui-task[data-env-home][data-env-active="true"],
498
+ .env-shell-chrome:not([data-desktop]) .env-shell-taskbar ui-task[data-env-home][data-active],
499
+ .env-shell-chrome:not([data-desktop]) .env-shell-taskbar ui-task[data-env-home][data-focus] {
500
+ background: color-mix(in oklch, #fff 8%, transparent);
501
+ color: contrast-color(inherit(background-color));
502
+ /*box-shadow: inset 0 -2px 0 #60cdff;*/
503
+ }
504
+
505
+ /*
506
+ * Mobile footer statusbar is replaced by the fixed overlay band when
507
+ * `[data-status-overlay]` is set (see statusbar.scss). Without overlay
508
+ * (standalone), hide the footer copy entirely.
509
+ */
510
+ .env-shell-chrome:not([data-desktop]):not([data-status-overlay]) .env-ui-statusbar {
511
+ display: none !important;
512
+ }
513
+
514
+ }