@tutti-os/workbench-surface 0.0.45 → 0.0.46

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.
@@ -14,6 +14,7 @@
14
14
  }
15
15
 
16
16
  .workbench-surface {
17
+ --workbench-chrome-active-foreground: var(--foreground);
17
18
  --workbench-chrome-inset-x: 0px;
18
19
  --workbench-chrome-inset-y: 0px;
19
20
  --workbench-mission-control-ease: cubic-bezier(0.22, 1, 0.36, 1);
@@ -34,6 +35,13 @@
34
35
  isolation: isolate;
35
36
  }
36
37
 
38
+ .workbench-surface[data-mission-control-phase="entering"],
39
+ .workbench-surface[data-mission-control-phase="open"],
40
+ .workbench-surface[data-presentation-mode="mission-control"] {
41
+ --workbench-chrome-active-foreground: var(--white-stationary);
42
+ --workbench-chrome-foreground: var(--white-stationary);
43
+ }
44
+
37
45
  .workbench-surface__wallpaper {
38
46
  position: absolute;
39
47
  inset: 0;
@@ -497,60 +505,24 @@
497
505
  transform var(--workbench-mission-control-scale-duration)
498
506
  var(--workbench-mission-control-ease);
499
507
  will-change: opacity, transform;
500
- background:
501
- radial-gradient(
502
- 110% 92% at 50% -4%,
503
- rgb(255 255 255 / 0.14) 0%,
504
- transparent 56%
505
- ),
506
- linear-gradient(
507
- 180deg,
508
- color-mix(
509
- in srgb,
510
- var(--workbench-surface-background) 54%,
511
- rgb(255 255 255 / 10%)
512
- )
513
- 0%,
514
- color-mix(in srgb, var(--workbench-window-bg) 82%, var(--workbench-panel))
515
- 100%
516
- );
517
- box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.14);
508
+ background: rgb(0 0 0 / 60%);
509
+ box-shadow: none;
518
510
  }
519
511
 
520
512
  .workbench-mission-control-backdrop::before {
521
513
  position: absolute;
522
514
  inset: 0;
523
- background:
524
- linear-gradient(135deg, rgb(255 255 255 / 0.06), transparent 34%),
525
- radial-gradient(
526
- 92% 84% at 18% 18%,
527
- color-mix(in srgb, var(--workbench-panel) 22%, transparent) 0%,
528
- transparent 48%
529
- ),
530
- radial-gradient(
531
- 68% 54% at 82% 10%,
532
- rgb(255 255 255 / 0.07),
533
- transparent 44%
534
- ),
535
- repeating-linear-gradient(
536
- 180deg,
537
- rgb(255 255 255 / 0.018) 0,
538
- rgb(255 255 255 / 0.018) 1px,
539
- transparent 1px,
540
- transparent 4px
541
- );
515
+ background: none;
542
516
  content: "";
543
- opacity: 0.92;
517
+ opacity: 0;
544
518
  }
545
519
 
546
520
  .workbench-mission-control-backdrop::after {
547
521
  position: absolute;
548
522
  inset: 0;
549
- background:
550
- linear-gradient(180deg, rgb(255 255 255 / 0.045), transparent 26%),
551
- linear-gradient(0deg, rgb(255 255 255 / 0.025), transparent 36%);
523
+ background: none;
552
524
  content: "";
553
- opacity: 0.76;
525
+ opacity: 0;
554
526
  }
555
527
 
556
528
  .workbench-mission-control-backdrop[data-phase="entering"],
@@ -87,6 +87,35 @@ test("mission control overlay lets layout controls sit above dialog overlays", (
87
87
  );
88
88
  });
89
89
 
90
+ test("mission control backdrop uses the shared dark scrim value", () => {
91
+ const css = readFileSync(resolve("src/styles/workbench.css"), "utf8");
92
+
93
+ assert.match(
94
+ css,
95
+ /\.workbench-surface\s*{[^}]*--workbench-chrome-active-foreground:\s*var\(--foreground\);/s
96
+ );
97
+ assert.match(
98
+ css,
99
+ /\.workbench-surface\[data-mission-control-phase="entering"\],[\s\S]*?\.workbench-surface\[data-presentation-mode="mission-control"\]\s*{[^}]*--workbench-chrome-active-foreground:\s*var\(--white-stationary\);[^}]*--workbench-chrome-foreground:\s*var\(--white-stationary\);/s
100
+ );
101
+ assert.match(
102
+ css,
103
+ /\.workbench-mission-control-backdrop\s*{[^}]*background:\s*rgb\(0 0 0 \/ 60%\);[^}]*box-shadow:\s*none;/s
104
+ );
105
+ assert.match(
106
+ css,
107
+ /\.workbench-mission-control-backdrop::before\s*{[^}]*background:\s*none;[^}]*opacity:\s*0;/s
108
+ );
109
+ assert.match(
110
+ css,
111
+ /\.workbench-mission-control-backdrop::after\s*{[^}]*background:\s*none;[^}]*opacity:\s*0;/s
112
+ );
113
+ assert.doesNotMatch(
114
+ css,
115
+ /\.workbench-mission-control-backdrop\s*{[^}]*var\(--workbench-surface-background\)/s
116
+ );
117
+ });
118
+
90
119
  test("dialog popover node layer sits above dialog overlays and remains clickable", () => {
91
120
  const css = readFileSync(resolve("src/styles/workbench.css"), "utf8");
92
121
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tutti-os/workbench-surface",
3
- "version": "0.0.45",
3
+ "version": "0.0.46",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.ts",
@@ -34,10 +34,10 @@
34
34
  "@tutti-os/config-tsconfig": "0.0.0"
35
35
  },
36
36
  "dependencies": {
37
- "@tutti-os/ui-i18n-runtime": "0.0.45",
38
- "@tutti-os/ui-react-hooks": "0.0.45",
39
- "@tutti-os/workbench-snapshot": "0.0.45",
40
- "@tutti-os/ui-system": "0.0.45"
37
+ "@tutti-os/ui-i18n-runtime": "0.0.46",
38
+ "@tutti-os/ui-react-hooks": "0.0.46",
39
+ "@tutti-os/workbench-snapshot": "0.0.46",
40
+ "@tutti-os/ui-system": "0.0.46"
41
41
  },
42
42
  "peerDependencies": {
43
43
  "react": "^19.1.0",