Skip to content

Follow system light and dark appearance - #10

Open
victorarias wants to merge 2 commits into
modem-dev:mainfrom
victorarias:victorarias/system-dark-mode
Open

victorarias wants to merge 2 commits into
modem-dev:mainfrom
victorarias:victorarias/system-dark-mode

Conversation

@victorarias

@victorarias victorarias commented Oct 6, 2026 •

Copy link
Copy Markdown

Ooooops!

I asked my agent to add dark mode support, and I didn't realize it took the liberty to make a PR upstream! I wanted a PR on my fork to review. Feel free to close. Sorry!!

I reviewed the code now and it seems straightforward enough, so I'm leaving the PR open. Thanks for building this, it's super useful.

What changed

Glance now follows the system's light or dark appearance, including changes while the editor is open. A shared UI palette covers the toolbar, inspectors, dropdowns, pickers, numeric inputs, tooltips and preview preparation state. Screenshot content, annotation colors, backdrops and exports keep their colors.

Uses GPUI's window appearance and change observer. There’s no theme preference to configure or new command to expose through MCP.

Light Dark
Light editor Dark editor

Validation

  • cargo fmt --check, cargo clippy --all-targets --locked -- -D warnings, and cargo test --locked pass (159 tests passed; 18 opt-in tests ignored).
  • User-visible changes are recorded under Unreleased in CHANGELOG.md.
  • Usage docs explain automatic system appearance.

On macOS 26.7.1, verified native Aqua → Dark Aqua → Aqua changes while the tools, open picker, backdrop dropdown, animation and image-tools panels remained open. Each change checked the palette and unchanged document pixels. The images above come from the native Metal renderer with the built-in practice canvas. Regression coverage also checks selected annotations, preview revision, undo/redo, backdrop rendering and label contrast.

The system-wide preference was left unchanged; native window/application appearance exercised the notification path. Linux desktop appearance and native OS dialogs were not manually verified.

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