Runtime Avalonia themes
ThemeManager.Avalonia
Choose a built-in Avalonia theme family and switch its active variant through one interface.
Overview
A small runtime theme abstraction that initializes Avalonia Fluent or Simple themes and switches the application between light and dark variants.
ThemeManager.Avalonia provides one small IThemeManager abstraction over Avalonia’s built-in Fluent and Simple themes. Each implementation initializes its theme family and changes Application.RequestedThemeVariant between light and dark at runtime.
Fluent and Simple implementations
Application-level initialization
Light and dark variant switching
Small replaceable interface
Built for
Where it fits.
- Avalonia applications with light and dark settings
- Apps choosing between Fluent and Simple theme families
- Developers wanting a replaceable theme bootstrap boundary
Compatibility & status
Built-in themes
Supported
Supported
Runtime switch
In the work
Real output,
not a mockup.

Architecture
Clear layers.
Replaceable seams.
Contract
IThemeManager exposes Initialize and Switch operations.
Fluent
FluentThemeManager inserts FluentTheme and switches its application variant.
Simple
SimpleThemeManager does the same for SimpleTheme.
Application
RequestedThemeVariant propagates light or dark state through Avalonia resources.
Inside ThemeManager.Avalonia
One repository.
Multiple serious systems.
Explore the focused capabilities, their package boundaries, architecture, installation, and smallest useful example.
FluentThemeManager and SimpleThemeManager implement one IThemeManager contract and insert the corresponding Avalonia theme into the application style collection.
1 module→02 · Application-wide light and dark stateTheme Variant SwitchingBoth managers translate a compact numeric selection into Application.RequestedThemeVariant, switching the entire application between Avalonia light and dark variants at runtime.
1 module→Quick start
From package
to first frame.
Choose the package workflow used by your repository, then start from the smallest working example. Replace VERSION with the current stable or prerelease version shown on NuGet.
dotnet add package ThemeManager<PackageReference Include="ThemeManager" Version="VERSION" /><PackageVersion Include="ThemeManager" Version="VERSION" />IThemeManager themes = new FluentThemeManager();themes.Initialize(this);themes.Switch(1); // DarkPackage surface
Start focused.
Compose as needed.
Source, docs, samples, and releases
The repository is the source of truth.
Use the current documentation and samples, inspect changes, report issues, or support continued open-source maintenance.