@@ -76,9 +76,10 @@ body::before {
7676 wallpaper blurs through the window, so the painted pastel blobs step aside.
7777 html/body go fully transparent and the wash collapses to a translucent
7878 cream scrim that keeps content readable over arbitrary wallpapers — the
79- Craft look. The .workspace-shell--desktop marker comes from the host
80- bridge (App.tsx data-client-type). Browsers never match this block. */
81- html : has (.workspace-shell--desktop ) {
79+ Craft look. The desktop and darwin markers come from the host bridge
80+ (App.tsx data-client-type/data-host-platform). Windows desktop windows are
81+ opaque, so they intentionally keep the normal pastel wash. */
82+ html : has(.workspace-shell--desktop [data-host-platform = 'darwin' ]) {
8283 /* Focused window: a firm scrim so content sits on a mostly solid ground.
8384 The unfocused state below thins this back to ~21% (0.34 × 62%), which
8485 preserves the airy see-through look while the window is in the back. */
@@ -88,17 +89,17 @@ html:has(.workspace-shell--desktop) {
8889 );
8990 background : transparent;
9091}
91- html : has (.workspace-shell--desktop ) body {
92+ html : has(.workspace-shell--desktop [ data-host-platform = 'darwin' ] ) body {
9293 background : transparent;
9394}
9495/* Focus response: while the window is unfocused (App.tsx toggles
9596 .is-window-blurred on <html> in desktop mode) the scrim thins out so the
9697 wallpaper reads clearly through the glass; regaining focus fades it back
9798 to full strength. Browsers never get the class, so web mode is untouched. */
98- html : has (.workspace-shell--desktop ) body ::before {
99+ html : has(.workspace-shell--desktop [ data-host-platform = 'darwin' ] ) body::before {
99100 transition : opacity 240ms cubic-bezier (0.23 , 1 , 0.32 , 1 );
100101}
101- html .is-window-blurred : has (.workspace-shell--desktop ) body ::before {
102+ html .is-window-blurred : has (.workspace-shell--desktop [ data-host-platform = 'darwin' ] ) body::before {
102103 opacity : 0.34 ;
103104}
104105/* The top project tab strip stays flush and seamless with the page below it:
@@ -126,8 +127,8 @@ html.is-window-blurred:has(.workspace-shell--desktop) body::before {
126127 --veil-canvas : var (--bg );
127128 --veil-panel : var (--bg-panel );
128129 }
129- html : has (.workspace-shell--desktop ),
130- html : has (.workspace-shell--desktop ) body {
130+ html : has(.workspace-shell--desktop [ data-host-platform = 'darwin' ] ),
131+ html : has (.workspace-shell--desktop [ data-host-platform = 'darwin' ] ) body {
131132 background : var (--bg-app );
132133 }
133134}
@@ -143,8 +144,8 @@ html.is-window-blurred:has(.workspace-shell--desktop) body::before {
143144 --veil-canvas : var (--bg );
144145 --veil-panel : var (--bg-panel );
145146 }
146- html : has (.workspace-shell--desktop ),
147- html : has (.workspace-shell--desktop ) body {
147+ html : has(.workspace-shell--desktop [ data-host-platform = 'darwin' ] ),
148+ html : has (.workspace-shell--desktop [ data-host-platform = 'darwin' ] ) body {
148149 background : var (--bg-app );
149150 }
150151}
0 commit comments