Skip to content

Introduce theming contract and window configuration#134

Merged
mdwigley merged 1 commit intoenterlucent:mainfrom
mdwigley:issue#131-mdwigley
Oct 16, 2025
Merged

Introduce theming contract and window configuration#134
mdwigley merged 1 commit intoenterlucent:mainfrom
mdwigley:issue#131-mdwigley

Conversation

@mdwigley
Copy link
Member

Description

This PR introduces a minimal theming contract for the PlugHub host, adds structured window configuration via AppConfig and AppEnv, and performs a cleanup pass on resources and formatting.

  • Theming Contract (131)

    • Added Style/Generic.axaml defining PlugHub.* resource keys for brushes, typography, and layout metrics.
    • Introduced a theme configuration pipeline in App.axaml.cs to normalize and apply IStyle additions.
    • Adjusted bootstrapper initialization order so the contract is established before pages are created.
    • Removed redundant Avalonia.Themes.Fluent dependency.
  • Window Configuration (132)

    • Extended AppConfig (global baseline) and AppEnv (runtime overrides) with window configuration values.
    • Bound MainWindow properties to these configuration sources.
    • Ensured MainView’s ViewModel drives window configuration.
    • Clarified contract: overriding MainView/MainViewModel implies responsibility for maintaining the MainWindow configuration contract.
  • Cleanup (133)

    • Removed unused geometry stream icons from Icons.axaml.
    • Standardized all .axaml files to use tab indentation.

Related Issue

Motivation and Context

  • Establishes a stable theming abstraction decoupled from FluentAvalonia while still providing a polished baseline.
  • Provides a structured, user‑first mechanism for configuring window properties through config/env.
  • Clarifies architectural boundaries: pages are free, but MainView ownership carries window responsibilities.
  • Improves maintainability and consistency by cleaning up unused resources and enforcing formatting standards.

How Has This Been Tested?

  • Verified theming contract keys resolve correctly when bound from host pages.
  • Tested theme override pipeline by injecting alternate styles.
  • Confirmed MainWindow properties update correctly from both AppConfig and AppEnv, with user overrides taking precedence.
  • Validated fallback logic when user config values are missing.
  • Manual smoke testing across supported platforms to ensure no regressions in host startup, navigation, or plugin page rendering.

Screenshots (if appropriate):

N/A

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 16, 2025
@mdwigley mdwigley moved this to In review in PlugHub Timeline Oct 16, 2025
@mdwigley mdwigley merged commit 998b874 into enterlucent:main Oct 16, 2025
3 checks passed
@github-project-automation github-project-automation bot moved this from In review to Done in PlugHub Timeline Oct 16, 2025
@mdwigley mdwigley deleted the issue#131-mdwigley branch October 16, 2025 14:59
@mdwigley mdwigley added the approved Change issue has been accepted for implementation label Oct 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Change issue has been accepted for implementation

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Codebase Cleanup and Resource Consolidation Window Configuration via Host Config Minimal theming contract for PlugHub host

1 participant

Comments