Themes - #3
Merged
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
Introduces an expanded theming system (new theme modes + semantic color resources) and refactors UI XAML to consume theme resources instead of hard-coded colors, aiming for more consistent styling and accessibility.
Changes:
- Added
HighContrastDarkandSofttoThemeMode, with theme switching commands/bindings and palette definitions. - Centralized color usage via
DynamicResourcekeys (background/surface/text/semantic action colors) across multiple views/components. - Added shared button styles (action/danger/restart/accent/subtle/outlined) in
App.axamland updated components to use class-based styling.
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 13 comments.
Show a summary per file
| File | Description |
|---|---|
| Views/MainWindow.axaml | Removes local button style (moved to app-level shared styles). |
| Views/LogsWindow.axaml | Replaces hard-coded colors/gradient with theme resources and shared button styles. |
| Views/Dialogs/CreateContainerDialog.axaml | Migrates dialog styling to theme resources and shared outlined button style. |
| Views/Components/VolumeCard.axaml | Uses shared danger button class instead of hard-coded styling. |
| Views/Components/StackGroup.axaml | Applies shared button classes and introduces theme resource usage for “Remove All”. |
| Views/Components/SettingsView.axaml | Adds radio options/bindings for new theme modes. |
| Views/Components/NetworkCard.axaml | Uses NetworkAccentColor resource and shared danger button class. |
| Views/Components/ImageCard.axaml | Migrates action buttons to shared classes and theme resources. |
| Views/Components/ContainerCard.axaml | Switches action foreground colors to semantic theme resources. |
| ViewModels/MainWindowViewModel.cs | Adds new theme state properties/commands and updates navigation selected color logic. |
| Services/ThemeService.cs | Extends theme variant application and populates additional semantic resource keys for all themes. |
| Models/Enums.cs | Adds HighContrastDark and Soft to ThemeMode. |
| Configuration/ThemeColors.cs | Defines new palettes + adds semantic colors for Dark/Light. |
| App.axaml | Adds global shared button styles used across views/components. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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.
Added theming and removed hard coded colors.
Robot junk follows:
Theme system enhancements:
HighContrastDarkandSofttheme modes to theThemeModeenum, and updated theme switching logic inThemeServiceto support them. [1] [2]ThemeColors.cs, including primary, accent, background, text, state, input, and navigation colors.ThemeServiceto handle all new color properties for "HighContrastDark" and "Soft" themes, as well as expanded semantic colors for existing themes. [1] [2] [3]UI styling improvements:
App.axamlfor action, danger, restart, accent, subtle, and outlined buttons, including pointer-over states for visual feedback.Navigation and property updates:
MainWindowViewModelto use the newNavigationSelectedColorfor active sections, and added properties for new theme modes to support UI binding and state updates. [1] [2] [3]Expanded semantic colors:
ThemeColors.DarkandThemeColors.Lightfor richer UI feedback and accessibility.These changes collectively make the application's UI more flexible, visually consistent, and accessible across a wider range of user preferences and needs.