Skip to content

fix(macos): use web's light panel backdrop and center the welcome panel - #4718

Merged
tyler-dane merged 6 commits into
mainfrom
fix/macos-panel-backdrop
Oct 22, 2026
Merged

tyler-dane merged 6 commits into
mainfrom
fix/macos-panel-backdrop

Conversation

@tyler-dane

Copy link
Copy Markdown
Contributor

Refs #4331

What and why

In the parity compare (run 39704640345), the macOS settings and onboarding-welcome surfaces sat on an opaque gray backdrop. Web's OverlayPanel backdrop is bg-background/85 backdrop-blur-sm, so the calendar shows faintly through a light, warm tint. macOS's PanelBackdropView used the dark .hudWindow material plus overlayBackdrop (hsl(40 25% 15% / 40%)), the dim web reserves for menus and confirm dialogs. Web also centers the welcome panel vertically (items-center, scrolling with py-8 only when needed); macOS pinned it 32 pt from the top.

This PR:

  • tints PanelBackdropView with panelBackdropColor (background at 85%, already used by the auth, guide and timezone panels) over a .windowBackground within-window blur. Only settings and welcome use this view.
  • centers the welcome panel in its scroll view (minHeight of the window) so it scrolls only when taller than the window
  • updates the panel-backdrop row in docs/features/desktop-web-parity-checklist.md

Settings stays top-anchored, as web's SettingsModal (anchor="top") is.

Verify

VERDICT: PASS from bun run verify --strict (type-check, lint, knip). bun cli contracts:swift --check and bun cli desktop:export --check pass.

Not run locally: this cloud session has no Swift toolchain or Xcode, so the build and UI tests only run in macOS CI. The parity-screenshots label is added separately so the settings and welcome captures show the new backdrop.


Generated by Claude Code

Web OverlayPanel dims with bg-background/85 over a small blur, so the
calendar shows faintly behind settings and welcome. PanelBackdropView
used the dark HUD material and the 40% overlay-backdrop dim meant for
menus, which read as solid gray. Tint with the 85% background over a
window-background blur instead. Web also centers the welcome panel
vertically; macOS pinned it to the top.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GKHjv2HDx1DFAnG4cfSxcr
@tyler-dane
tyler-dane marked this pull request as ready for review October 22, 2026 02:48
@tyler-dane tyler-dane added the agent-automerge Agent-loop finished; merge-guard may squash-merge label Oct 22, 2026 — with Claude
@tyler-dane
tyler-dane enabled auto-merge October 22, 2026 02:48
@tyler-dane tyler-dane added the parity-screenshots Run the web vs macOS parity screenshot workflow on this PR label Oct 22, 2026 — with Claude
The welcome modal's buttons pair a title with a keycap chip and had no
explicit label, so accessibility read "Get started for free, Enter".
The onboarding parity capture added in #4707 clicks buttons["Get started
for free"] and fails on every run since. Label each welcome button with
its title; the keycap is a visual hint.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GKHjv2HDx1DFAnG4cfSxcr
(cherry picked from commit 5d42363)
… panel

With the welcome buttons named by title, buttons["Next"] also matched the
grid's week "Next" button behind the modal, so the click failed with
multiple matches. Query the buttons inside compass-native-welcome-modal.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GKHjv2HDx1DFAnG4cfSxcr
(cherry picked from commit 77e87f4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GKHjv2HDx1DFAnG4cfSxcr
(cherry picked from commit b031ea7)
The onboarding capture exports onboarding-welcome-account-choice, but the
name was not a ParityCaptureSurface, so the debug URL never parsed and the
export timed out.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GKHjv2HDx1DFAnG4cfSxcr
(cherry picked from commit 07b3cce)
@tyler-dane
tyler-dane added this pull request to the merge queue Oct 22, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to a conflict with the base branch Oct 22, 2026
# Conflicts:
#	docs/features/desktop-web-parity-checklist.md
@tyler-dane
tyler-dane enabled auto-merge October 22, 2026 06:11
@tyler-dane
tyler-dane added this pull request to the merge queue Oct 22, 2026
Merged via the queue into main with commit c0a51dd Oct 22, 2026
26 checks passed
@tyler-dane
tyler-dane deleted the fix/macos-panel-backdrop branch October 22, 2026 07:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent-automerge Agent-loop finished; merge-guard may squash-merge parity-screenshots Run the web vs macOS parity screenshot workflow on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants