Skip to content

Conversation

@mdwigley
Copy link
Member

Description

This change restructures theming so that resources are organized per theme family rather than in a single catch‑all file.

  • Theming changes

    • Removed legacy Generic.axaml and Icons.axaml catch‑all files.
    • Introduced Themes/FluentAvalonia/Theme.axaml for brushes and geometry resources.
    • Added Themes/FluentAvalonia/Style.axaml (currently minimal/placeholder) to establish the per‑family structure.
    • Updated App.axaml.cs to merge the new theme dictionaries.
    • Refactored MainView.axaml, SettingsPluginsView.axaml, and SettingsView.axaml to consume PlugHub.* resource keys instead of hard‑coded values.
  • Plugin updates

    • Same as the what was done for the host.
    • Updated plugin views (e.g. MockSettingsView) to use PlugHub.* brushes for backgrounds, borders, and text, ensuring theme‑family consistency.
    • Fixed a sorting issue in descriptors list that was caused by incorrect index values rather than logic errors.

Related Issue

Motivation and Context

  • Moves away from a single Generic.axaml dumping ground and aligns with Avalonia’s theming conventions.
  • Establishes a clear, maintainable structure for theme families (Theme.axaml + Style.axaml).
  • Ensures plugins also respect the centralized theming model, so they look consistent across themes.
  • Corrects plugin resource ordering so that resources load deterministically.

How Has This Been Tested?

  • Verified that the application builds and runs with the new theme structure.
  • Confirmed that views (MainView, SettingsPluginsView, SettingsView) render correctly with the new brushes.
  • Tested plugin views to ensure they pick up the correct theme brushes.
  • Validated that plugin resource dictionaries load without duplication and in the correct order after the sorting fix.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Asset change (adds or updates icons, templates, or other assets)
  • Documentation change (adds or updates documentation)
  • Plugin change (adds or updates a plugin)

Checklist:

  • I have read the CONTRIBUTING document.
  • My change requires a change to the core logic.
    • I have linked the project issue above.
  • My change requires a change to the assets.
    • I have linked the asset issue above.
  • My change requires a change to the documentation.
    • I have linked the documentation issue above.
  • My change requires a change to a plugin.
    • I have linked the plugin issue above.

@mdwigley mdwigley self-assigned this Oct 19, 2025
@mdwigley mdwigley moved this to In review in PlugHub Timeline Oct 19, 2025
@mdwigley mdwigley merged commit 2990467 into enterlucent:main Oct 19, 2025
3 checks passed
@github-project-automation github-project-automation bot moved this from In review to Done in PlugHub Timeline Oct 19, 2025
@mdwigley mdwigley deleted the issue#138-mdwigley branch October 19, 2025 17:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Standardize Theming Structure for UI Assets

1 participant