Repository navigation
Keep toggles and colour swatches visible under forced colours - #900
Merged
Merged
Conversation
enaboapps
force-pushed
the
889-dialog-shell
branch
from
September 25, 2026 10:56
6534a07 to
7f8c097
Compare
enaboapps
force-pushed
the
890-dark-final-pass
branch
from
September 25, 2026 10:56
27e75e8 to
022248e
Compare
enaboapps
force-pushed
the
889-dialog-shell
branch
from
September 25, 2026 11:03
7f8c097 to
8c8ca01
Compare
enaboapps
force-pushed
the
890-dark-final-pass
branch
from
September 25, 2026 11:03
022248e to
e9f3f58
Compare
A dark mode and forced-colours pass over every view found two controls that forced colours erased: toggle tracks and knobs are drawn only with backgrounds, so they vanished, and every colour swatch and the highlight sample flattened to the same empty shape. Toggles now draw with system colours, including checked and disabled states, and swatches keep their real colours because the colour is the choice being made. Closes #890 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Disabled toggles now look disabled whether checked or not, and toggle focus uses CanvasText instead of the page's blue. Swatches get a CanvasText edge so white and yellow stay visible on a light Canvas, the chosen colour chip and selected practice block are marked with Highlight, and the setup step rail is drawn with system colours. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
enaboapps
marked this pull request as ready for review
September 25, 2026 11:49
enaboapps
force-pushed
the
889-dialog-shell
branch
from
September 25, 2026 11:50
8c8ca01 to
919c498
Compare
enaboapps
force-pushed
the
890-dark-final-pass
branch
from
September 25, 2026 11:50
e9f3f58 to
40c75cc
Compare
enaboapps
marked this pull request as draft
September 25, 2026 11:50
enaboapps
marked this pull request as ready for review
September 25, 2026 15:51
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.
Closes #890. Top of the stack tracked in #891, stacked on #899.
What the final pass covered
I rendered every view and dialog from the full stack in dark mode and under emulated forced colours, light and dark. That covered Home in setup-needed and Ready states, Switches empty and populated with an editor open, Scanning shared and Point settings, Mouse, every Settings tab, Mobile's three tabs, the profile editor, the setup guide, pairing requests and the removal confirmation.
Dark mode needed no changes beyond earlier layers. Forced colours showed two controls that became unusable:
Canvas,CanvasText,HighlightandGrayTextfor off, on and disabled.forced-color-adjust: none, because the colour is the choice being made.Both problems predate this stack, since the toggle and swatches were background-only on
main.Already correct under forced colours: the selected nav item has a Highlight outline, the selected tab a Highlight underline, and selected choices a thicker border and drawn tick. Status tiles keep their tick and exclamation badges.
Validation
On this head:
npm run lintpassednpm testpassed: 238 Vitest tests and 5 Node testsnpm run buildpassedcargo fmt --checkandcargo clippy --all-targets -D warningspassedcargo testpassed: 566 tests, 1 ignoredReview follow-up
An independent review of this layer's head raised these points, now addressed:
🤖 Generated with Claude Code
Rebase validation (2026-09-25)
Rebased onto current
main(7fb8fce, including #881) in stack order.git range-diffshows every commit in this PR is patch-equivalent to its previous head, and the intended parent remains its PR base. On the final stack tip (40c75cc), Node 24.19.0 lint, tests and build passed; Rust 1.97.1 format check, Clippy and tests passed. An independent review of the updated PR heads found no actionable findings. CI is rerunning on each new head.