feat(macOS): add Liquid Glass Light and Dark themes - #1756
Merged
Merged
Conversation
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.