Skip to content
This repository was archived by the owner on Sep 4, 2026. It is now read-only.

fix(macos): native window chrome — system rounded corners, shadow, traffic lights - #400

Merged
ElbertePlinio merged 4 commits into
mainfrom
fix/399-macos-native-window-chrome
Jul 31, 2026
Merged

fix(macos): native window chrome — system rounded corners, shadow, traffic lights#400
ElbertePlinio merged 4 commits into
mainfrom
fix/399-macos-native-window-chrome

Conversation

@ElbertePlinio

Copy link
Copy Markdown
Member

Closes #399

What changed

  • src-tauri/tauri.macos.conf.json: macOS platform overlay — the main window is decorated with an overlay titlebar (titleBarStyle: Overlay, hidden title, traffic lights at 14,13), so the system draws rounded corners, shadow, and traffic lights. Windows/Linux keep the existing frameless chrome (Windows 11 already rounds resizable frameless windows via DWM).
  • WindowControls and ResizeHandles render nothing on macOS — the decorated window provides controls and resize natively. The unreachable macOS ordering branch in WindowControls is removed.
  • Settings "Window controls" side picker hidden on macOS (it governed nothing there).
  • New unit test pins the macOS window entry to the base tauri.conf.json entry (the platform merge replaces the windows array wholesale — RFC 7396), plus an AGENTS.md note, README chrome docs, and an UNRELEASED.md entry.

Tested

  • tsc --noEmit, eslint + design-token check, 1641 vitest units (incl. the new config drift guard) — all green.
  • Running dev app on macOS: window capture confirms rounded corners, native shadow, traffic lights; live click test confirms nav buttons inside the native titlebar container strip still receive clicks; drag/double-click-maximize handlers unchanged.

Not tested

Review

Local review: standard risk class, one independent reviewer (Opus 5, correctness/regressions + KISS + issue conformance). No P0–P2; five P3s, all fixed in 9ab65b5^.. (README docs, dead branch, inert Settings row, drift-guard test, live nav-click verification). KISS verdict after fixes: keep.

…d corners

The main window was created frameless (decorations: false), which on macOS
produces a square, shadowless NSWindow. A macOS platform config now decorates
the window with an overlay titlebar (hidden title, traffic lights at 14,13):
the system draws rounded corners, shadow, and traffic lights, while the app
titlebar keeps its custom content and drag handling. The custom window
controls and edge resize handles no longer render on macOS - the decorated
window provides both natively. Windows 11 already rounds resizable frameless
windows via DWM; Linux compositors have no equivalent standard, so both stay
frameless.
…config

Review follow-ups: WindowControls drops its unreachable macOS ordering branch
(the component never renders on macOS now); the Settings window-controls row
hides on macOS where it governed nothing; README documents the per-platform
chrome; a unit test pins tauri.macos.conf.json to the base window entry so a
base-config edit cannot silently skip macOS (the platform merge replaces the
windows array wholesale).
@ElbertePlinio
ElbertePlinio merged commit 0e7fda3 into main Jul 31, 2026
6 checks passed
@ElbertePlinio
ElbertePlinio deleted the fix/399-macos-native-window-chrome branch July 31, 2026 18:01
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

macOS window ignores the system rounded-corner standard (square frameless window)

1 participant