Skip to content

feat: adopt native Liquid Glass - #32

Merged
ragojose merged 1 commit into
mainfrom
agent/native-liquid-glass
Aug 12, 2026
Merged

ragojose merged 1 commit into
mainfrom
agent/native-liquid-glass

Conversation

@arzafran

Copy link
Copy Markdown
Collaborator

Summary

  • replace the shell, chrome, tab pills, and transient overlays with native macOS 26 Liquid Glass surfaces
  • group tab pills in NSGlassEffectContainerView while retaining weak-linked NSVisualEffectView fallbacks for macOS 12–25
  • add persisted System, Light, and Dark appearance choices with semantic adaptive colors and geometry-derived radii
  • pin builds to the macOS 26 SDK while preserving the macOS 12 deployment target
  • add native-surface, persistence, WebGL compositor, and Accessibility smoke coverage

Why

Bro Computer forced Dark Aqua and relied on legacy HUD visual-effect views and custom colors. That prevented the shell from participating in macOS 26 native Liquid Glass behavior and made appearance changes fragile. The native tab-pill controls also need to live in each glass view’s contentView; sibling controls can be composited beneath the refractive material and become unreadable.

This implements #31 with native AppKit ownership, neutral Regular glass, one native tab container, appearance-aware fallbacks, and explicit compatibility gates.

User impact

On macOS 26, the window shell, chrome, tab pills, command palette, downloads panel, hover card, find panel, and zoom HUD now use native Liquid Glass. Users can select System, Light, or Dark appearance from the app menu, and the choice persists. Older supported macOS releases retain a functional adaptive visual-effect fallback.

Validation

  • cmake -S . -B build -G Ninja
  • cmake --build build
  • ctest --test-dir build --output-on-failure — 2/2 passed
  • swiftc -typecheck -module-cache-path /tmp/bro-swift-module-cache tests/ax_smoke.swift
  • AX smoke: real WebGL launch, New Tab 1→2, Screenshot Mode hide/restore, Dark→System persistence
  • real CEF WebGL fixture: WEBGL_OK across two tabs and screenshot mode
  • light, dark, and forced-legacy window captures inspected
  • Mach-O verification: SDK 26.2, minimum macOS 12.0, weak NSGlassEffectView and NSGlassEffectContainerView imports
  • git diff --check

Closes #31.

@arzafran
arzafran marked this pull request as ready for review August 12, 2026 11:56
@ragojose
ragojose merged commit 07309bf into main Aug 12, 2026
1 check 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.

Adopt native Liquid Glass across the chrome (macOS 26)

2 participants