Skip to content

feat(macOS): add Liquid Glass Light and Dark themes - #1756

Merged
kshivang merged 15 commits into
mainfrom
feature/liquid-glass-themes
Sep 28, 2026
Merged

kshivang merged 15 commits into
mainfrom
feature/liquid-glass-themes

Conversation

@kshivang

@kshivang kshivang commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Add Liquid Glass Light and Dark to the Settings and Space theme pickers, using BossTerm's Blueprint palettes and native-backdrop approach. Settings provide Off / Sidebar and bars / App surfaces coverage, Regular / Clear style, and an independently saved tint. Existing theme defaults and Space overrides are preserved.

On macOS, keep an alpha-capable Compose window and restore its native AppKit frame and traffic lights. Install NSGlassEffectView on macOS 26, otherwise NSVisualEffectView, behind AWT's original content view. Use the existing main-queue dispatcher and exact Skiko window handle; the window owns the native view and releases it on disposal. Reattach after frame changes and respect Reduce Transparency. Apply surface alpha only after successful installation, with opaque fallback on failure. The native toolbar uses the same tint. Dialog/menu palettes stay opaque.

Native material is macOS-only in this change. Windows/Linux get opaque glass palettes and their existing window decorations. Browser pages and plugin-owned opaque backgrounds remain opaque.

Validation: theme/default/Space/persistence tests, API package compatibility, composeApp and plugin-ui-core lint/Detekt pass. Opt-in macOS native smoke test passed with its own unfocusable Compose window: install, light/clear update, disable/detach. Debug build runs in the existing bottom split. Full app visual testing of light/dark, fullscreen, resize and theme switching remains pending; the UI automation provider cannot attach to the Java debug process.

The vertical sidebar follows BossTerm’s glass treatment: one tinted panel with transparent outer gaps, inset rows with fine separators, rounded stable selection fills, neutral translucent favorite tiles and hover states, and a softer active-pane map. Ordinary themes retain their existing styling. Sidebar layout and drag regression tests also pass.

Fullscreen glass now draws the current display’s cached desktop wallpaper behind the material, with aspect-fill scaling and a theme-colored fallback when no still image is available. Windowed mode detaches this layer. Native smoke coverage verifies fullscreen attach, windowed detach, and disabling glass; it does not enter a real fullscreen Space or establish visual correctness.

Native title-bar follow-ups: remove the extra Compose inset tint over the sidebar header, and retain the browser address field when Back reaches Home. Navigation chrome resolves the active tab’s bound handle independently of webpage-view composition, with cleanup on transport failure/disposal. Host-only change; ownership and browser-bridge regressions, compile, lint and Detekt pass.

Terminal transparency is supplied by companion plugin PR risa-labs-inc/boss-plugin-terminal-tab#115. It consumes the host content background alpha after successful native installation; browser pages and other opaque plugin surfaces remain opaque.

@supabase

supabase Bot commented Sep 28, 2026

Copy link
Copy Markdown

This pull request has been ignored for the connected project pcnwqamqdnsadranufjv because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@kshivang
kshivang marked this pull request as ready for review September 28, 2026 10:31
@kshivang
kshivang merged commit b2d1cc6 into main Sep 28, 2026
7 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant