@flyos/design-system 2.6.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flyos/design-system",
3
- "version": "2.6.0",
3
+ "version": "3.0.0",
4
4
  "description": "FlyOS design system — shared components, directives, pipes, services, and models for Business App developers.",
5
5
  "keywords": [
6
6
  "flyos",
@@ -247,21 +247,15 @@ html.light-theme {
247
247
  --mat-menu-solid-a: rgb(238 242 247);
248
248
  --mat-menu-solid-b: rgb(222 229 238);
249
249
 
250
- // The agent aside — the PANEL hue on its own alpha ramp, top-to-bottom. It was a
251
- // hardcoded literal inside `_nova-glass.scss`'s `agent` branch, and that literal
252
- // was `rgb(56 54 60)` byte-identical to the DARK `--mat-panel`, so the aside
253
- // painted the dark panel colour in both themes and could never flip. Every sibling
254
- // branch (`panel`, `menu`) already routed through a theme-aware token; this pair is
255
- // that same shape, so the aside stops being the one surface outside the system.
256
- // 0.52 -> 0.60 (S6.-1 fan-in ruling). The aside is painted straight against the
257
- // WALLPAPER, exactly like `--window-bg`, and 22 of the 26 shipped wallpapers are
258
- // dark: at 0.52 the top stop composited to 4.06:1 for body ink over the darkest
259
- // one — sub-AA, and measured as such by `theme-contrast.spec`. The window plate
260
- // solves this with the adaptive `--fly-glass-alpha` knob; this pair is not in that
261
- // set, so it takes the static equivalent instead. 0.60 is not arbitrary: it leaves
262
- // 40% transmission, the same as the window plate's ratified floor, so the aside
263
- // and the window beside it now let the wallpaper through by the same amount.
264
- --mat-agent-a-alpha: 0.6;
250
+ // The agent aside — the design's translucent vertical ramp, verbatim (fidelity
251
+ // ruling, 2026-08-17): `Home.dc.html` draws `--mat-agent-a/-b` at 52% 65% of the
252
+ // theme hue, and the desktop must look as the design does, full stop. The top stop
253
+ // spent a day at 0.60 (the S6.-1 fan-in bump: at 0.52 body ink measured 4.06:1
254
+ // over the darkest wallpaper) that legibility debt now rides the same rails as
255
+ // the pinned `--mat-*` chrome plates: a measured `exempt` row in
256
+ // `theme-contrast.ts` SURFACES on the adverse pairing, not a value the design
257
+ // never drew. Do not re-thicken these; the sanctioned exit is DS-side ink work.
258
+ --mat-agent-a-alpha: 0.52;
265
259
  --mat-agent-a: rgb(230 236 243 / calc(var(--mat-agent-a-alpha) * 100%));
266
260
  --mat-agent-b-alpha: 0.65;
267
261
  --mat-agent-b: rgb(230 236 243 / calc(var(--mat-agent-b-alpha) * 100%));
@@ -297,9 +291,22 @@ html.light-theme {
297
291
  // Selector matches `_theme-dark.scss`.
298
292
  html.dark-theme {
299
293
  // ── Chrome + nav rail ──────────────────────────────────────────────────────
300
- --chrome-ink: rgb(255 255 255 / 65%);
294
+ // 90%, not the design mock's 65% (RULED 2026-08-17). The `--mat-*` plates are
295
+ // PINNED at the mock's static alphas under the fidelity ruling — the adaptive
296
+ // thickening that briefly compensated for a weak ink was itself the "bar and rail
297
+ // are darker than Home" defect — so the ink is the ONLY legibility lever this
298
+ // chrome has left. At the pinned `--mat-rail-alpha: .38`, 65% ink measures 4.45:1
299
+ // over a mid-luminance wallpaper (sub-AA) where 90% measures 6.81:1, and it
300
+ // roughly halves the depth of the bright-room exemption cells that remain
301
+ // (`theme-contrast.ts` SURFACES carries them, measured). Weakening this back
302
+ // toward the mock's 65% re-fails the mid rooms — `theme-contrast.spec.ts` pins
303
+ // exactly that recomputation.
304
+ // —
305
+ // Hover affordance is unaffected: both the rail item and the header buttons carry
306
+ // hover on the BACKGROUND (`--w05` / `--tint-hover`), not on this ink delta.
307
+ --chrome-ink: rgb(255 255 255 / 90%);
301
308
  --chrome-ink-hover: #fff;
302
- --rail-ink: rgb(255 255 255 / 65%);
309
+ --rail-ink: rgb(255 255 255 / 90%);
303
310
  --rail-stroke: rgb(255 255 255 / 12%);
304
311
 
305
312
  // Selection family — accent-derived (the 2026-08-17 two-purples ruling, the
@@ -414,22 +421,21 @@ html.dark-theme {
414
421
  --mat-menu-solid-a: rgb(32 31 37);
415
422
  --mat-menu-solid-b: rgb(26 25 30);
416
423
 
417
- // Translucent again (2026-08-16), on S6W's COOL hues half of that ruling reversed, half
418
- // kept, and the split is deliberate. S6W found the aside compositing muddy brown over warm
419
- // wallpapers and went alpha-1 on the menu pair's stops. Two facts have changed since:
420
- // · the warm rgb(56 54 60) hue was half the mud, and it stays gone these stops remain
421
- // the cool menu-pair hues, which tint cool-neutral rather than brown;
422
- // · the model now knows about the shell's 35% black wallpaper scrim (`shellBackdrop`),
423
- // which darkens and mutes whatever shows through the "wallpaper tints the plate"
424
- // dose S6W measured was computed against a backdrop the browser does not paint.
425
- // At 0.6/0.68 every aside row clears AA through the scrim over the WORST shipped backdrop
426
- // (primary 7.36/9.15, secondary 4.99/5.99 theme-contrast gate), and the aside once again
427
- // matches the design's translucent panel (the mock's aside was 0.52→0.65) and its light-theme
428
- // sibling right above (0.6/0.65) instead of being the one opaque slab in the shell.
429
- --mat-agent-a-alpha: 0.6;
430
- --mat-agent-a: rgb(32 31 37 / calc(var(--mat-agent-a-alpha) * 100%));
431
- --mat-agent-b-alpha: 0.68;
432
- --mat-agent-b: rgb(26 25 30 / calc(var(--mat-agent-b-alpha) * 100%));
424
+ // The design's aside, verbatim (fidelity ruling, 2026-08-17): ONE huethe panel's
425
+ // rgb(56 54 60) at 52% 65%, exactly as `Home.dc.html` draws it. This pair has
426
+ // been alpha-1 on the menu hues (S6W: "muddy brown over warm wallpapers"), then
427
+ // translucent on the menu hues at 0.6/0.68 and both retunes were measured through
428
+ // layers that no longer exist: the 35% wallpaper scrim their AA numbers assumed was
429
+ // removed by the raw-wallpaper ruling, and the mud S6W saw was the UNBLURRED
430
+ // wallpaper showing through (dark used to neutralise the aside's backdrop-filter;
431
+ // the fidelity pass restored the design's blur(16) saturate(180) brightness(.95),
432
+ // which is what actually averages a warm backdrop to neutral). Sub-AA cells at
433
+ // these values are measured `exempt` rows in `theme-contrast.ts` SURFACES, same
434
+ // rails as the pinned `--mat-*` chrome do not re-thicken or re-cool these stops.
435
+ --mat-agent-a-alpha: 0.52;
436
+ --mat-agent-a: rgb(56 54 60 / calc(var(--mat-agent-a-alpha) * 100%));
437
+ --mat-agent-b-alpha: 0.65;
438
+ --mat-agent-b: rgb(56 54 60 / calc(var(--mat-agent-b-alpha) * 100%));
433
439
  --mat-tip-a-alpha: 0.82;
434
440
  --mat-tip-a: rgb(46 44 52 / calc(var(--mat-tip-a-alpha) * 100%));
435
441
  --mat-tip-b-alpha: 0.86;
@@ -32,15 +32,32 @@
32
32
  @mixin app-surface-on-glass {
33
33
  // Surfaces: the window chrome supplies the material, so the app's own page
34
34
  // background is nothing at all; cards/tracks are lifts ON that plate.
35
- --bg: transparent;
36
- --bg-2: var(--surface-card);
37
- --bg-3: var(--fill-tertiary);
38
- --bg-hover: var(--surface-active);
39
35
 
40
- // Hairlines.
36
+ // LIFTS COME FROM THE NOVA RAMP, NOT FROM `--surface-card`. The design canon
37
+ // for content regions inside a window (MainContent.dc.html — the signals
38
+ // listing) is a `--w03` plate with `--w06` header bars, `--w05` row hover and
39
+ // `--w07` hairlines: a barely-there ink wash the window glass glows through.
40
+ // `--surface-card` is a different design element — the CHROME card (home
41
+ // widgets), which in dark is a 55% smoke (`rgb(28 28 32 / .55)`). Stacked on
42
+ // an already-dark window plate that composites to a near-opaque black slab —
43
+ // measured live on PPM's `fly-data-table`, and exactly the mismatch a
44
+ // side-by-side with the design shows. The ramp flips polarity per theme
45
+ // (white-lift on dark glass, ink-wash on light), which is also what the
46
+ // design's own components do — they never branch on theme.
47
+ --bg: transparent;
48
+ --bg-2: var(--w03);
49
+ --bg-3: var(--w06);
50
+ --bg-hover: var(--w05);
51
+
52
+ // Hairlines. `--line`/`--line-2` stay on the chrome separators (14% ≈ the
53
+ // design's `--w14` CONTROL border — FormField.dc.html inputs), which is the
54
+ // role `--line` now serves: containers and header underlines draw their own
55
+ // canon ramp step (`--w08`/`--w1`) directly in the components, the same way
56
+ // detail-card/detail-shell already did. Row dividers drop to the design's
57
+ // hairline step so they read as hairlines on a `--w03` plate.
41
58
  --line: var(--separator);
42
59
  --line-2: var(--surface-border);
43
- --line-3: var(--separator);
60
+ --line-3: var(--w07);
44
61
 
45
62
  // Ink — opaque label tokens, never a surface token. Aliasing a translucent
46
63
  // surface onto an ink slot is what turns a control into an empty coloured
@@ -138,59 +138,50 @@ html.dark-theme {
138
138
  --card-padding: 20px;
139
139
  --card-gap: 14px;
140
140
 
141
- // ── Apps launcher card tokens dark glass variant ──────────────────────────
142
- --launcher-card-bg: rgb(28 28 32 / 45%);
143
- --launcher-card-border: rgb(255 255 255 / 12%);
144
- --launcher-card-blur: 50px;
145
- --launcher-card-radius: 16px;
146
- --launcher-card-icon-bg: rgb(255 255 255 / 8%);
147
- --launcher-card-icon-border: rgb(255 255 255 / 14%);
148
- --launcher-card-icon-blur: 4px;
149
- --launcher-card-title: rgb(255 255 255 / 92%);
150
- --launcher-card-desc: rgb(255 255 255 / 58%);
141
+ // ── `--launcher-card-*`DELETED (2026-08-18) ─────────────────────────────
142
+ // The nine-token "dark glass variant" of a launcher tile that paints
143
+ // `--surface-card` inside `--window-bg` and takes its ink from the label
144
+ // family. No consumers in either theme; see `_theme-light.scss`.
151
145
 
152
146
  // ── Window chrome ───────────────────────────────────────────────────────────
153
- // 0.55, down from 0.70 (2026-08-16), and the history matters: 42% was genuinely too thin
154
- // (white body text ~2.9:1 over `alpine-lake`), but the 70% that fixed it was solved against
155
- // the RAW wallpaper — a backdrop the browser never paints. Every dark surface sits on the
156
- // shell's 35% black scrim (`.desktop-wallpaper.dark-theme::after`), and through it the full
157
- // window ink ladder passes at 0.55: primary 7.35:1, secondary 4.99:1, tertiary 3.30:1 over
158
- // the brightest shipped backdrop (theme-contrast gate, measured per row). 0.55 is alpha
159
- // parity with `--mat-panel`, so a window and Home read as the same glass the fork where a
160
- // maximized window sat visibly thicker than the launcher beside it is what this closes.
161
- --window-bg: rgb(20 20 24 / 55%);
147
+ // ONE GLASS FAMILY (RULED 2026-08-17, second window ruling of the day): the
148
+ // window wears the CHROME material the magic bar / nav rail recipe — not the
149
+ // mock's content-panel plate. The first fidelity pass shipped `panelStyle`
150
+ // verbatim (quartet glow + sheen over `--mat-panel` .55, blur 72), and it WAS
151
+ // byte-exact a pixel-accurate render over `tropical.jpg` reproduced the shell
152
+ // to the digit but the .55 plate over the darker wallpaper midfield read as a
153
+ // separate, muddier glass beside the .38 chrome, and the owner ruled the shell
154
+ // shows one family: flat `--mat-rail` fill, `--w16` hairline, the `--w2`
155
+ // half-pixel inset, `blur(36px) saturate(180%)`. The drop pair stays the
156
+ // design's window shadow (16/40 + 4/10) — a floating window still needs a
157
+ // window's elevation, and the shadow does not touch the plate colour.
158
+ // The AA ladder re-measures on the thinner plate; sub-AA cells ride the exempt
159
+ // rails in `theme-contrast.ts` as measured rows, same as every other pin.
160
+ --window-bg: var(--mat-rail);
162
161
  --window-radius: 24px;
163
- --window-blur: 30px;
164
- --window-backdrop-saturate: 160%;
165
- --window-shadow: 0 36px 120px rgb(0 0 0 / 52%);
166
- --window-border: var(--material-glass-stroke);
167
- --window-specular: inset 0 1px 0 rgb(255 255 255 / 12%),
168
- inset 0 -1px 0 rgb(255 255 255 / 6%);
162
+ --window-blur: 36px;
163
+ --window-backdrop-saturate: 180%;
164
+ --window-shadow: 0 16px 40px rgb(0 0 0 / 20%), 0 4px 10px rgb(0 0 0 / 10%);
165
+ --window-border: var(--w16);
166
+ --window-specular: inset 0 0.5px 0 var(--w2);
169
167
  --window-content-scrim: transparent;
170
168
 
171
169
  // ── Titlebar ────────────────────────────────────────────────────────────────
172
- --titlebar-bg: transparent;
170
+ // The design's in-window header row (`MainContent.dc.html`): a `--w06` strip
171
+ // over a `--w1` bottom hairline (the hairline is authored in
172
+ // `_window-titlebar.scss` — it is structure, not a theme value).
173
+ --titlebar-bg: var(--w06);
173
174
  --titlebar-height: 44px;
174
175
  --titlebar-padding: 0 14px;
175
176
 
176
- // ── Dock ────────────────────────────────────────────────────────────────────
177
- --dock-bg: rgb(18 18 22 / 60%);
178
- --dock-border: var(--material-glass-stroke);
179
- --dock-blur: 50px;
180
-
181
- // ── Menubar ─────────────────────────────────────────────────────────────────
182
- --menubar-bg: rgb(14 14 18 / 80%);
183
- --menubar-border: var(--material-glass-stroke);
184
- --menubar-text: var(--label-primary);
185
- --menubar-blur: 40px;
186
- --menubar-radius: 24px;
187
-
188
- // ── Sidebar ─────────────────────────────────────────────────────────────────
189
- --sidebar-bg: rgb(18 18 22 / 72%);
190
- --sidebar-border: var(--material-glass-stroke);
191
- --sidebar-width: 60px;
192
- --sidebar-icon-size: 36px;
193
- --sidebar-radius: 28px;
177
+ // ── `--dock-*` / `--menubar-*` / `--sidebar-*` — DELETED (2026-08-18) ───────
178
+ // Three surfaces this shell does not have, described in fifteen tokens. The
179
+ // mobile dock is `bottom-nav` and it takes `glass.chrome`; there is no menubar
180
+ // and no sidebar. Their last references — `--dock-bg` in ~300 lines of dead
181
+ // CSS in `desktop-icons.component.scss`, `--dock-blur`/`--dock-border` in
182
+ // `tasks-panel` went in the same sweep. See `_theme-light.scss` for why they
183
+ // were deleted rather than left: 40px/50px blurs and 60–80% fills advertised
184
+ // to whoever goes looking for a shell plate, beside the three ratified tiers.
194
185
  --focus-ring: color-mix(in srgb, var(--accent) 60%, transparent);
195
186
 
196
187
  // ── Button selected state — white-tint pill on dark surface ─────────────────
@@ -214,12 +205,5 @@ html.dark-theme {
214
205
  --window-bg: #141416;
215
206
  --window-blur: 0px;
216
207
  --window-backdrop-saturate: 100%;
217
- --dock-bg: #121214;
218
- --dock-blur: 0px;
219
- --menubar-bg: #0e0e10;
220
- --menubar-blur: 0px;
221
- --sidebar-bg: #121214;
222
- --launcher-card-bg: #1c1c1f;
223
- --launcher-card-blur: 0px;
224
208
  }
225
209
  }
@@ -78,8 +78,9 @@ html.light-theme {
78
78
  --surface-section: rgb(255 255 255 / 35%);
79
79
  --surface-card: rgb(255 255 255 / 20%);
80
80
 
81
- // The substrate plate alpha — ONE knob, three consumers (`--window-bg`, `--glass-bg`,
82
- // `--dock-bg`). 0.6 is the ratified static plate; `WallpaperGlassService` overrides it at
81
+ // The substrate plate alpha — ONE knob, two consumers (`--window-bg`, `--glass-bg`; the
82
+ // third, `--dock-bg`, went with the dead dock tokens below).
83
+ // 0.6 is the ratified static plate; `WallpaperGlassService` overrides it at
83
84
  // runtime with the thinnest alpha in [0.6, 0.7] that keeps the WEAKEST substrate body ink
84
85
  // (`--text-color-secondary`, 78%) at AA over the ACTIVE wallpaper. Over bright and mid rooms
85
86
  // that is 0.6 itself; over a starfield-dark room it steps to 0.62 (0.6 measures 4.51:1 there —
@@ -151,55 +152,67 @@ html.light-theme {
151
152
  --card-padding: 20px;
152
153
  --card-gap: 14px;
153
154
 
154
- // Apps launcher card tokens matches Figma frosted glass card spec
155
- --launcher-card-bg: rgb(224 224 224 / 30%);
156
- --launcher-card-border: rgb(255 255 255 / 40%);
157
- --launcher-card-blur: 50px;
158
- --launcher-card-radius: 16px;
159
- --launcher-card-icon-bg: rgb(255 255 255 / 10%);
160
- --launcher-card-icon-border: rgb(255 255 255 / 10%);
161
- --launcher-card-icon-blur: 4px;
162
-
163
- // The tile paints `--surface-card` inside `--window-bg`, so its ink follows the label family
164
- // rather than keeping a private white. (`--launcher-card-bg` above has no consumers.)
165
- --launcher-card-title: var(--label-primary);
166
- --launcher-card-desc: var(--label-secondary);
167
-
168
- // Window chrome light frosted glass similar to Figma spec (soft white plate,
169
- // strong background blur, subtle luminous border).
170
- // The app window plate. At 6% this was the single biggest cause of the reported failure:
171
- // every app's body text was effectively painted on the wallpaper. Matches `--glass-bg`,
172
- // including its adaptive-knob composition.
155
+ // ── `--launcher-card-*`DELETED (2026-08-18) ─────────────────────────────
156
+ // Nine tokens "matching the Figma frosted glass card spec" for a launcher tile
157
+ // that paints `--surface-card` inside `--window-bg` and reads its ink from the
158
+ // label family. A note here already recorded that `--launcher-card-bg` had no
159
+ // consumers; the truth was that none of the nine did. They carried a 50px blur
160
+ // and a 30–45% fill — a plate recipe nothing painted, next to the three tiers
161
+ // the language actually has.
162
+
163
+ // ── Window chrome ───────────────────────────────────────────────────────────
164
+ // ONE GLASS FAMILY, light half (2026-08-18). Dark's ruling put the window on
165
+ // the CHROME material the magic bar / nav rail recipe — and this block kept
166
+ // the panel family whole: `.46`-class fill, the 72px panel blur, the `--w18`
167
+ // rim and the `--w22` inset. Only the FILL ever had a reason.
168
+ // —
169
+ // The fill genuinely diverges and stays: the mock's static `--mat-panel` plate
170
+ // (.46 pale slate) measures 2.74:1 for window BODY text over the dark-wallpaper
171
+ // majority 2.0:1 for tertiary which is app content unreadable in the light
172
+ // theme's common case, not a label on an adverse pairing. The exemption
173
+ // mechanism is for edges, not for the main reading surface, so the adaptive
174
+ // white `--fly-glass-alpha` composition stays: the thinnest white plate that
175
+ // holds the weakest body ink at AA over the CURRENT wallpaper (0.6 floor, one
176
+ // step more white over a dark room). Over bright rooms — the pairing the mock
177
+ // actually draws — the two plates are near-identical anyway.
178
+ // —
179
+ // The other three carried NO contrast argument. Blur radius, rim step and
180
+ // specular step do not enter a contrast calculation at all — they came along
181
+ // because the panel recipe was copied whole — and while they stayed, a light
182
+ // window read as a different glass from the light rail beside it: the exact
183
+ // complaint the dark ruling answered, still live on the other theme. They now
184
+ // match `glass.chrome`: 36px tier, `--w16` hairline, `--w2` inset.
185
+ // —
186
+ // What is left is one honest divergence (the fill, with a measured floor)
187
+ // instead of four, three of which nobody had decided.
173
188
  --window-bg: rgb(255 255 255 / calc(var(--fly-glass-alpha) * 100%));
174
189
  --window-radius: 24px;
175
- --window-blur: 24px;
176
- --window-backdrop-saturate: 175%;
177
- --window-shadow: 0 28px 96px rgb(0 0 0 / 18%);
178
- --window-border: rgb(17 24 39 / 10%);
179
- --window-specular: inset 0 1px 0 rgb(255 255 255 / 30%),
180
- inset 0 -1px 0 rgb(255 255 255 / 16%);
190
+ --window-blur: 36px;
191
+ --window-backdrop-saturate: 180%;
192
+ --window-shadow: 0 16px 40px rgb(0 0 0 / 20%), 0 4px 10px rgb(0 0 0 / 10%);
193
+ --window-border: var(--w16);
194
+ --window-specular: inset 0 0.5px 0 var(--w2);
181
195
  --window-content-scrim: transparent;
182
196
  --app-content-plate: transparent;
183
- --titlebar-bg: transparent;
197
+ --titlebar-bg: var(--w06);
184
198
  --titlebar-height: 44px;
185
199
  --titlebar-padding: 0 14px;
186
200
 
187
- // Backs BOTH the dock and the top Finder bar (`.topbar-glass`), which is why it needs a real
188
- // substrate: at 15% the bar's labels and icons sat on the wallpaper like everything else.
189
- // Same plate as the window, same adaptive knob.
190
- --dock-bg: rgb(255 255 255 / calc(var(--fly-glass-alpha) * 100%));
191
- --dock-border: rgb(17 24 39 / 12%);
192
- --dock-blur:50px;
193
- --menubar-bg: rgb(255 255 255 / 60%);
194
- --menubar-border: rgb(17 24 39 / 10%);
195
- --menubar-text: var(--label-primary);
196
- --menubar-blur: 40px;
197
- --menubar-radius: 24px;
198
- --sidebar-bg: rgb(255 255 255 / 60%);
199
- --sidebar-border: rgb(17 24 39 / 10%);
200
- --sidebar-width: 60px;
201
- --sidebar-icon-size: 36px;
202
- --sidebar-radius: 28px;
201
+ // ── `--dock-*` / `--menubar-*` / `--sidebar-*` DELETED (2026-08-18) ───────
202
+ // Fifteen tokens describing three surfaces this shell does not have. The
203
+ // "dock" and "top Finder bar (`.topbar-glass`)" the comment here named were
204
+ // gone; the menubar and sidebar never shipped at all. The last three
205
+ // references were `--dock-bg` in ~300 lines of dead CSS in
206
+ // `desktop-icons.component.scss`, and `--dock-blur`/`--dock-border` in
207
+ // `tasks-panel`, both fixed in the same sweep. (`--dock-dd-gap` is a
208
+ // different, live token it is defined locally in `magic-bar-cluster`, not
209
+ // here.)
210
+ //
211
+ // Deleted rather than left harmless because they were not harmless: they
212
+ // advertised 40px/50px blurs and 60–80% fills to anyone who went looking for a
213
+ // shell plate a menu of answers the Nova language does not contain, next to
214
+ // the three tiers it does. The same reasoning retired the pre-Nova
215
+ // `glass-panel` mixin family in `src/styles/_mixins.scss`.
203
216
  --focus-ring: color-mix(in srgb, var(--accent) 50%, transparent);
204
217
 
205
218
  // Segmented `.fos-btn.selected` / `.active` (Settings theme row, clock, weather, etc.): dark pill on light UI.
@@ -259,12 +272,5 @@ html.light-theme {
259
272
  --window-bg: #f7f8fa;
260
273
  --window-blur: 0px;
261
274
  --window-backdrop-saturate: 100%;
262
- --dock-bg: #f4f5f7;
263
- --dock-blur: 0px;
264
- --menubar-bg: #f7f8fa;
265
- --menubar-blur: 0px;
266
- --sidebar-bg: #f4f5f7;
267
- --launcher-card-bg: #fff;
268
- --launcher-card-blur: 0px;
269
275
  }
270
276
  }