Skip to content

General: Add dark mode, color themes, and contrast settings#405

Merged
d4rken merged 1 commit intomainfrom
feat/theme-settings
Feb 24, 2026
Merged

General: Add dark mode, color themes, and contrast settings#405
d4rken merged 1 commit intomainfrom
feat/theme-settings

Conversation

@d4rken
Copy link
Copy Markdown
Member

@d4rken d4rken commented Feb 24, 2026

What changed

Added dark mode, color theme, and contrast settings under General Settings > Appearance. Three color palettes available (Blue, Green, Amber) with default, medium, and high contrast variants. Theme mode supports System, Dark, and Light. Material You dynamic colors supported where available. Fixed white flash during screen transitions in dark mode.

Technical Context

  • Three independent theme axes: Mode (System/Dark/Light), Style (Default/Material You/Medium/High Contrast), Color (Blue/Green/Amber — disabled when Material You is active)
  • Architecture: ThemeState, ThemeColorProvider, CapodTheme composable
  • Window background color synced with Compose theme to prevent white flash during navigation transitions
  • Added safe Moshi enum fallback so corrupted preference values fall back to defaults instead of crashing
  • 4 new unit tests for onErrorFallbackToDefault behavior

Add user-facing theme preferences with three independent axes:
- Theme mode (System/Dark/Light)
- Theme style (Default/Material You/Medium Contrast/High Contrast)
- Theme color (Blue/Green/Amber)

Includes safe Moshi enum fallback for corrupted preference values,
color palettes for all combinations, and window background sync
to prevent flash during navigation transitions.
@d4rken d4rken added the enhancement Add a new feature of improve an existing feature label Feb 24, 2026
@d4rken d4rken merged commit 06f4115 into main Feb 24, 2026
9 checks passed
@d4rken d4rken deleted the feat/theme-settings branch February 24, 2026 17:33
@d4rken d4rken changed the title feat(ui): Add theme mode, style, and color settings General: Add dark mode, color themes, and contrast settings Mar 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement Add a new feature of improve an existing feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant