Theme switch: system, light, dark, high contrast #87

Merged
littlefox merged 8 commits from issue-56-theme into main 2026-10-18 01:46:16 +00:00
Owner

Closes #56

Settings → Utseende → Tema: same as the system (default), light, dark, high contrast (white on black, yellow accent; AAA text contrast). Per-device pref (like the TLS answers), applied as data-theme on <html> at once and at start-up. theme.spec.ts checks each theme's colours, persistence across a reload, and that system follows the system again.

🤖 Generated with Claude Code

https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8

Closes #56 Settings → Utseende → Tema: same as the system (default), light, dark, high contrast (white on black, yellow accent; AAA text contrast). Per-device pref (like the TLS answers), applied as data-theme on <html> at once and at start-up. theme.spec.ts checks each theme's colours, persistence across a reload, and that system follows the system again. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Dark mode followed the system with no way to choose. Settings now has
a theme: same as the system (default), light, dark or high contrast
(white on black, yellow accent; AAA contrast for text). It's a
per-device pref like the TLS answers, applied as data-theme on <html>
at once and at start-up.

theme.spec.ts checks each theme's colours, that the choice survives a
reload, and that "system" follows the system again.

Refs #56

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Merge remote-tracking branch 'origin/main' into issue-56-theme
Some checks are pending
ci / e2e (push) Has started running
ci / check (push) Successful in 8m37s
ci / desktop (push) Successful in 10m33s
23f13cc8a9
# Conflicts:
#	app/src/i18n.rs
#	app/src/main.rs
Merge remote-tracking branch 'origin/main' into issue-56-theme
Some checks failed
packaging / arch (pull_request) Successful in 14m5s
ci / check (push) Failing after 5m7s
packaging / debian (pull_request) Successful in 18m17s
ci / desktop (push) Successful in 12m57s
packaging / nix (pull_request) Successful in 21m45s
packaging / fedora (pull_request) Successful in 27m38s
packaging / release (pull_request) Has been skipped
ci / e2e (push) Failing after 32m21s
25837d9802
# Conflicts:
#	app/src/main.rs
# Conflicts:
#	app/src/i18n.rs
#	app/src/prefs.rs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Merge remote-tracking branch 'origin/main' into issue-56-theme
Some checks are pending
ci / e2e (push) Has started running
ci / desktop (push) Has started running
ci / check (push) Successful in 8m34s
packaging / arch (pull_request) Successful in 10m11s
packaging / nix (pull_request) Successful in 22m48s
packaging / fedora (pull_request) Successful in 24m49s
packaging / debian (pull_request) Successful in 31m37s
packaging / release (pull_request) Has been skipped
7f2bbd2681
Screenshot comparison runs first, on the freshly seeded server
All checks were successful
ci / check (push) Successful in 11m5s
ci / desktop (push) Successful in 12m59s
ci / e2e (push) Successful in 23m38s
0d17367148
The references depended on what earlier specs had done (post 57's
footer grows with every reply a spec writes), so running the spec
alone, or adding a spec, changed the screens. _visual.spec.ts now runs
first in each profile, against the server as seeded; the references
are regenerated from that and match in a full run (169/169).

Refs #65

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
littlefox referenced this pull request from a commit 2026-10-18 14:33:48 +00:00
Sign in to join this conversation.
No description provided.