fix(ui): restore system theme and settings chrome - #879
Open
eachann1024 wants to merge 1 commit into
Open
Conversation
eachann1024
marked this pull request as ready for review
July 29, 2026 07:47
Contributor
Greptile SummaryRestores the System appearance option and strengthens Settings modal presentation.
Confidence Score: 5/5The pull request appears safe to merge with no actionable defects identified in the changed behavior. The System control matches the existing ThemeProvider contract and translation resources, every supported theme defines the newly used surface tokens, and the raised modal stacking does not obscure any currently reachable nested Settings UI.
|
| Filename | Overview |
|---|---|
| src/renderer/src/components/settings/AppearancePane.tsx | Adds a distinct, accessible System theme button while preserving all explicit preset controls. |
| src/renderer/src/assets/main.css | Raises the Settings overlay above custom window chrome and makes its principal surfaces opaque. |
| src/renderer/src/components/ThemeProvider.test.tsx | Verifies persisted System mode follows runtime OS changes and explicit presets retain their native appearance. |
| src/renderer/src/components/settings/AppearancePane.test.tsx | Verifies System selection state, resolved appearance labeling, and selection behavior. |
| lat.md/theme-selection.md | Documents persisted theme selection, runtime System resolution, native synchronization, and modal layering. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart LR
User[Appearance picker] --> Choice{Selected theme}
Choice -->|System| Media[prefers-color-scheme]
Media --> Resolved[Resolved Light or Dark]
Choice -->|Explicit preset| Preset[Preset theme and appearance]
Resolved --> CSS[data-theme]
Preset --> CSS
Resolved --> Native[Electron native appearance: system]
Preset --> NativePreset[Electron native appearance: light or dark]
Reviews (1): Last reviewed commit: "fix(ui): restore system theme and settin..." | Re-trigger Greptile
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.
What
lat.mdarchitecture documentation.Why
The theme provider still understood the persisted
systemvalue and already had the native-appearance IPC path, but the multi-theme picker no longer exposed System. Existing users with that stored choice had no selected control, and new users could not enable it.Separately, the Settings modal used lower stacking levels than the macOS drag region and browser-style conversation bar. Its translucent Light surfaces also allowed high-contrast content beneath the modal to remain visible.
User impact
Users can choose System again, existing saved themes remain compatible, and System follows OS appearance changes without restarting. The Settings modal now covers the complete window chrome and remains readable in Light mode.
Automated checks
npm run typechecknpm run buildnpm run lint: 0 errors, 21 baseline warningsnpx lat.md checkgit diff --checkManual QA limitation
The standalone renderer remained on onboarding without the Electron bridge, so full in-app Electron visual QA of Settings could not be completed without starting the installation flow.