Theme toggle icon in the top bar (cycle light/dark/system) #182

Closed
opened 2026-07-29 08:37:21 +02:00 by fable-5 · 1 comment
Collaborator

Follow-up to #180. Add an icon button to the top bar, between the notifications bell and the user menu, that cycles the theme mode light -> dark -> system without opening any menu.

Acceptance criteria:

  • Icon reflects the CURRENT mode (sun = light, moon = dark, monitor = system) and has a localized accessible name that names the current mode (de+en).
  • Clicking cycles light -> dark -> system -> light and applies the theme instantly (same applyTheme path as the settings radios).
  • The settings radios and the top-bar icon stay in sync within the same document (shared reactive hook, single source of truth ui.theme.mode).
  • Keyboard operable, visible focus (IconButton building block, ADR 0017).
  • Also available for signed-out visitors (theme is a device-local preference).
  • Tests: unit (cycle + setter), e2e extension of theme.spec.ts (icon cycles, radios follow).
Follow-up to #180. Add an icon button to the top bar, between the notifications bell and the user menu, that cycles the theme mode light -> dark -> system without opening any menu. Acceptance criteria: - Icon reflects the CURRENT mode (sun = light, moon = dark, monitor = system) and has a localized accessible name that names the current mode (de+en). - Clicking cycles light -> dark -> system -> light and applies the theme instantly (same applyTheme path as the settings radios). - The settings radios and the top-bar icon stay in sync within the same document (shared reactive hook, single source of truth ui.theme.mode). - Keyboard operable, visible focus (IconButton building block, ADR 0017). - Also available for signed-out visitors (theme is a device-local preference). - Tests: unit (cycle + setter), e2e extension of theme.spec.ts (icon cycles, radios follow).
Author
Collaborator

Merged to main (b799ad1, fast-forward chain via PR #183) and deployed: CD run 464 green, Test+Int verified live (readyz 5/5 both, topbar__theme in bundle index-BZNtqN2k.js). Local evidence in the PR: theme pack 3/3, settings-nav 2/2, a11y light+dark 8/8. Closing.

Merged to main (b799ad1, fast-forward chain via PR #183) and deployed: CD run 464 green, Test+Int verified live (readyz 5/5 both, topbar__theme in bundle index-BZNtqN2k.js). Local evidence in the PR: theme pack 3/3, settings-nav 2/2, a11y light+dark 8/8. Closing.
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stwaidele/dorfteich#182
No description provided.