VOOZH about

URL: https://www.nuget.org/packages/Zafiro.Avalonia.Templates

⇱ NuGet Gallery | Zafiro.Avalonia.Templates 53.3.0




Zafiro.Avalonia.Templates 53.3.0

dotnet new install Zafiro.Avalonia.Templates@53.3.0
 
 
This package contains a .NET Template Package you can call from the shell/command line.

Zafiro.Avalonia.Templates

dotnet new templates for building Avalonia apps with the Zafiro toolkit.

Install

dotnet new install Zafiro.Avalonia.Templates

Templates

Short name Description
zafiro-shell Cross-platform Avalonia app (Desktop, Browser, Android, iOS) with the Zafiro Shell, section auto-discovery via [Section], MVVM via ReactiveUI.

Usage

dotnet new zafiro-shell -n MyApp
cd MyApp
dotnet run --project MyApp.Desktop

Options

Option Description Default
-n, --name Application/solution name (also used as namespace). ZafiroShellTemplate
--application-id Android ApplicationId and iOS CFBundleIdentifier. com.example.<name-lowercase>

What you get

  • Multi-project solution (.slnx):
    • Shared head (MyApp/) — App.axaml, App.axaml.cs bootstrap with AddZafiroShell + AddAllSectionsFromAttributes, plus Sections/ (Home / Settings / About) — each section is a ViewModel + View pair tagged with [Section] so it is auto-discovered and added to the shell.
    • MyApp.Desktop — Windows / Linux / macOS via Avalonia.Desktop.
    • MyApp.Browser — WebAssembly via Avalonia.Browser.
    • MyApp.AndroidAvalonia.Android.
    • MyApp.iOSAvalonia.iOS.
  • Central Package Management (Directory.Packages.props) with pinned Avalonia 12 + Zafiro versions.
  • Compiled bindings on by default.
  • ReactiveUI.Avalonia as the MVVM integration.
  • Zafiro.Avalonia.Mcp.AppHost wired into Desktop in Debug builds (via .UseMcpDiagnostics() under #if DEBUG) so AI agents and other MCP clients can inspect/drive the running UI.

Adding a new section

Create a ViewModel + View pair anywhere under the shared head and decorate the ViewModel with [Section]:

[Section("Profile", "fa-solid fa-user", sortIndex: 3)]
public partial class ProfileViewModel : ReactiveObject { /* ... */ }

The Zafiro source generator will register it automatically — no DI plumbing required.

Uninstall

dotnet new uninstall Zafiro.Avalonia.Templates

This package has no dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
53.3.0 63 6/17/2026
53.2.0 59 6/17/2026
53.1.0 71 6/15/2026
53.0.1 68 6/12/2026
52.3.0 107 6/2/2026
52.2.0 116 5/31/2026
52.1.0 128 5/29/2026
52.0.7 144 5/11/2026
52.0.6 146 5/11/2026
52.0.5 144 5/11/2026
52.0.4 144 5/11/2026
52.0.3 144 5/5/2026
52.0.2 150 5/3/2026
52.0.1 146 5/3/2026
52.0.0 146 5/1/2026
51.9.7 150 5/1/2026

# Changelog 53.3.0

## Changes since v31.0.11

- feat: allow hiding SlimDataGrid headers +semver:minor (`daafa47`)
- feat: gate GraphWizard back navigation +semver:minor (`7cf9364`)
- feat: add Frame content transition +semver:minor (`5c9ff1a`)
- fix: consume re-signed ReactiveUI/Splat + Zafiro.UI 47.1.1 (NU3012 recovery) +semver:fix (`b6653a3`)
- GraphWizard: step factories with fresh VM per entry; remove legacy non-generic path +semver:major (`dda0bc2`)
- feat: add hold tooltip behavior +semver:minor (`3cf4ea7`)
- feat: add outlined text control +semver:minor (`5a4a2a0`)
- Add hierarchical shell sections +semver:minor (`9c305f2`)
- fix: preserve dialog action button labels (`092bd29`)
- fix(dialogs): add dialog action padding +semver: fix (`0afed0d`)
- fix(dialogs): compact dialog actions (`636f91a`)
- fix: tolerate subpixel flex wrap overflow (`764c3a2`)
- fix(frame): show back button on mobile (`0ff9ed0`)
- fix(storage): stream storage files with length metadata (`f943b91`)
- test: cover master details frame back button (`c3a5fc4`)
- Simplify MasterDetailsView navigation +semver:major (`8afabe3`)
- fix(templates): include templates package in solutions (`68c1f98`)
- feat(templates): add Zafiro.Avalonia.Templates with cross-platform 'zafiro-shell' template (`4d7c1e4`)
- fix(SectionStrip): use TemplatedParent binding for true TwoWay SelectedSection (#233) (`ff91fda`)
- fix(FlexPanel): always remeasure children with assigned main-axis size (#231) (`02aa32e`)
- chore(android): migrate TestApp.Android to Avalonia 12 API + enable MCP (`9216adb`)
- chore(deps): bump Zafiro.Avalonia.Mcp.AppHost to 0.0.44 (`6bf951f`)
- Revert "fix(EnhancedButton): IconPresenter visibility should depend on Icon, not Content" (`c25b2b0`)
- fix(EnhancedButton): IconPresenter visibility should depend on Icon, not Content (`8859e3d`)
- Responsive ShellView: sidebar on wide, bottom strip on narrow (#230) (`6cefdc7`)
- feat(icons): add `text:` provider for emoji/glyph icons (#229) (`07f660a`)
- chore: update deployer.yaml for new single-project GitHubPages config (`90d220f`)
- Adaptive content-driven dialog sizing (#228) +semver:minor (`24334ca`)
- chore: update Zafiro.UI to 47.0.4 (`f776043`)
- fix: DataTypeViewLocatorGenerator registers interface type, not resolved concrete implementation (`66d60fc`)
- feat: add Color editor to PropertyGrid using Avalonia ColorPicker (#226) (`2a7d776`)
- Remove Avalonia.DiagnosticsSupport and developer tools from debug builds. (`b73a26e`)
- docs: add FlowEditor, PropertyGrid, and DragDeltaBehavior to AI documentation (`ae0f498`)
- Release premium features: FlowEditor, PropertyGrid & DragDelta enhancements (#225) (`b65e942`)
- Frame inherits ContentControl instead of TemplatedControl +semver:minor (`f0f287b`)
- chore: migrate deployer.yaml to ValueSourceConfig format (`b1f26a2`)
- chore: retrigger CI (NuGet CDN propagation delay for DotnetDeployer 1.0.17) (`e0d8bb6`)
- chore: retrigger CI for GitHub Pages deploy with fixed DotnetDeployer 1.0.17 (`4e19b18`)
- Fix GitHub Pages deployment: token variable name and git identity +semver:fix (`d09c4e5`)
- Configure GitHub Pages deployment for TestApp Browser (WASM) +semver:fix (`f8b1557`)
- Fix CI: remove non-buildable platform projects from slnx (#221) (`78d4961`)
- Embed MessageDialogViewModel DataTemplate in DialogControl (#220) (`7390618`)
- Replace category button strip with pill-selector ListBox in TestApp (#219) +semver:fix (`2b74ed2`)
- Update ReactiveUI ecosystem and DiagnosticsSupport for Avalonia 12 +semver:minor (`4207976`)
- chore: add Icons.Optris to .sln for NuGet publishing (`947dd9e`)
- feat!: migrate from Projektanker.Icons.Avalonia to Optris.Icons.Avalonia (#217) (`22f2575`)
- refactor: use Func<IStorageProvider> factory in AvaloniaFileSystemPicker (#216) (`37571e5`)
- feat: Upgrade to .NET 10 (#214) (`9c8984a`)
- feat: Migrate to Avalonia 12 (#213) (`c3f13ed`)
- Add AutoWrapGrid panel (#212) (`aa77740`)
- Add frame header display mode +semver:minor (`582208c`)
- test(flex-panel): add tests for bounded width layouts and unbounded main axis behavior (`cc3bae2`)
- fix: re-measure FlexPanel children after resolving flex grow/shrink (`dbff1a9`)
- Update SectionStrip axaml: streamline namespace usage and bind `ShortName`/`FriendlyName` appropriately (`d5ffd21`)
- chore: bump Zafiro.UI to 47.0.2 +semver:fix (`82f6d81`)
- Enable nullable context in `SectionsRegistrationGenerator` and add test coverage (`507fe4b`)
- Add shortName support to SectionsRegistrationGenerator and tests (`ac0c48d`)
- Update `SimpleSection` to use `Id` instead of `Name` and introduce `ShortName`. Replace `Name` references across the project with `Id` for consistency. Minor cleanup in package formatting and templates. (#210) (`7d74c81`)
- feat: add responsive layout samples (`d6da279`)
- Remove `OverflowBehavior`, `OverflowView`, `OverflowViewModel`, and unused styles and controls (`052d878`)
- Simplify `Blueprint` property usage in `LayoutBreakpoint` and clean up sample `BlueprintPanelView` (`866ba45`)
- Add `BlueprintPanel`: versatile grid layout with responsive breakpoints (`d144e9a`)
- Add `SemanticPanel` for role-based layouts with adaptive Compact, Medium, Expanded views (`aaf86e1`)
- Add conventions for idiomatic `Result<T>` and `Maybe<T>` usage in AGENTS.md and docs (`05bc1a7`)
- Add AGENTS.md with coding guidelines for AI agents and update GitVersion workflow (`3374275`)
- Fix FlexPanel (#209) (`63f0a3c`)
- Add FlexBasisConverter to support string parsing for FlexBasis values (`3d5e1e9`)
- feat(Frame): auto-hide back button on mobile, wire system back gesture (`efd38ad`)
- Improve GraphWizard (#208) (`b649223`)
- Improved TestApp with Sample Gallery (#207) (`a61a076`)
- Add `SmartDockPanelTests` and fix spacing logic in `SmartDockPanel` (`aa6a839`)
- feat(shell)!: Minimalist Shell View & AddZafiroShell shortcut +semver:major (`8b4356e`)
- Improve Notifications (#205) (`49ea543`)
- Add GraphWizard (#204) (`ac48800`)
- feat(dialogs)!: Refactored Dialog API to be strict with Maybe (#203) (`d0424d5`)
- feat(dialogs): allow selecting primary confirmation action (`b3ccec8`)
- Overhaul README and NuGet metadata for discoverability (`942ec3d`)
- Add CommandPool Observability (#202) (`1f4ddee`)
- Add `CommandPool` and `EnqueueCommandAction` for throttled and pooled command execution (`6ec074b`)
- Migrate `EdgePanel` to `SmartDockPanel` for improved layout flexibility (`fdbe441`)
- Add `SmartGrid` control and unit tests (`b53b5ae`)
- Introduce `ClassAssist` and add class forwarding support to `EdgePanel` and `HeaderedContainer` (`7692ec7`)
- Move role-specific button styles to `DialogControl` (`157de72`)
- Replace attached `Role` property with styled property in `EnhancedButton` (`f65272e`)
- Rename `Any` to `NotEmpty` and add `Empty` converter to `Enumerable` (`9c5c46f`)
- Add `FrameStylingView` sample and update Avalonia to `11.3.9` (`e8ea93b`)
- Upgrade `Svg.Controls.Skia.Avalonia` to version `11.3.9.2`. (`d25eb48`)
- Add `BoxShadow` property to `EnhancedButton` and replace `BackgroundOverlappingBorder` with `OverlayBorder` (`cf4ef27`)
- Remove `BackButtonContent` and clean up `Frame.axaml` (`c09652e`)
- Replace `BackButtonContent` with a template-based `Content` setter in `Frame.axaml` (`a6d6de6`)
- Name elements in `Frame.axaml` for improved template targeting (`bdb5f89`)
- Enhance UI components with flexible padding, styling, and samples (#201) (`d723ace`)
- Update command handling and enhance dialog APIs (#200) (`183540f`)
- Introduce `AutoHeaderFooterBehavior` to manage `Frame` header and footer bindings (#199) (`ed7ad83`)
- Add dynamic header and footer support to navigation and wizard components (#198) (`f01d465`)
- Update `Loading` control templates and improve design previews (#196) (`43be2cb`)
- Add TopLevel style with IconOptions.Fill setter (#197) (`f603c6b`)
- Set correct ClipToBounds to allow BoxShadow (#195) (`a72486b`)
- Register sections as transient in generator (#194) (`a3f783d`)
- Add ShowAndGetResult overloads for IValidatable viewModels (#193) (`fc924e0`)
- Replace factory-based initialization in NotificationService (#192) (`a49ba23`)
- Refactor dialog completion handling in AdornerDialog (`b41076e`)
- Bump Zafiro (`39de286`)
- Add `StepKind` property to `PageDesign` and update XAML bindings for `WizardNavigator` (`c647ae4`)
- - Upgrade `coverlet.collector` to 6.0.4. (`b70920a`)
- Simplify `EdgePanel` template by replacing shared size scope columns with `ColumnDefinitions="Auto * Auto"` for clearer layout definition. (`e083799`)
- Introduce advanced styling options for Icon controls and update bindings (`5dcec59`)
- Update Azure Pipelines to use DotnetDeployer for NuGet package publishing (`a8872e6`)
- Add CornerRadius, BorderBrush, and BorderThickness to EdgePanel template (`a928bda`)
- Improve border drawing by using OverlayBorder (`227743e`)
- Improve HeaderedContainer (#191) (`45415c6`)
- Switch to SlimWizard and enhance navigation functionality (#190) (`614b500`)
- Remove Foreground (`c615431`)
- Refine Navigation and Sections (#189) (`230b79d`)
- Implement better sections (#188) (`9c40ea8`)
- Fix resources (`1585db7`)
- Enable SectionStrip customizations (#187) (`66ff28c`)
- Migrate to new zafiro filesystem (#186) (`50a450b`)
- improvements/add-groups-to-shell (#185) (`c715d9b`)
- Add TestApp.Browser and TestApp.Android to solution and improve SectionStrip layout (`bdf83f0`)
- Update SectionGroupView to use `Key` instead of `GroupKey` (`ccdb96b`)
- Fix build by removing unsupported targets (#183) (`5a16f17`)
- Add grouped vertical layout to SectionStrip (#182) (`cc3cb0e`)
- Add section grouping support for TestApp samples (#181) (`23dda4b`)
- Update WASM Site (`06e037f`)
- Improve Commands and LaucherService (#180) (`0356ce1`)
- Remove HorizontalScrollBarVisibility from ScrollViewer (`8fdd5cc`)
- Translate comments and docs to English (#179) (`8a3582b`)
- Integrate titles better with Dialog and Wizard  (#177) (`2ebdeca`)
- Refactor global commands into configurable container (#174) (`8702780`)
- Introduce pluggable icon providers and Projektanker integration project (#175) (`c1e3002`)
- Upgrade to newer Zafiro.Section (`a34fb8a`)
- Update `TrueCenterPanel` to calculate `neededWidth` and adjust `finalWidth` based on available size (#173) (`7312c7a`)
- Fix regressions produced by EnhancedButton (#172) (`a68171d`)
- Fix Dialogs. Remove submodule and clean up related functionality (#171) (`ab1f8b1`)
- Improve ProgressControl (#170) (`0db2f5c`)
- Review NotificationService.cs, Commands and Progress (#169) (`7c6c851`)
- Fix wrong usings (`0f3c313`)
- Remove async initialization (`4a14575`)
- Add win icon (`552e0a1`)
- Fix versions bump gone bad +semver:fix (`32865bd`)
- Allow custom Slim wizard cancel logic (#165) (`666e5ae`)
- Update incremental generators and disable diagnostics in WASM (`c69b35c`)
- Update Zafiro version (`dd4e8dc`)
- Remove ICommandSection and IsPrimary; simplify SectionStrip to StackPanel +semver:major (`8b040d8`)
- Use correct Package Tags (`f6da569`)
- Fix OK option to close dialogs successfully (#160) (`67b5943`)
- Add ShowAndGetResult with IEnhancedCommand<Result<T>> #159 (`8bba1dd`)
- Refactor dialog controls and remove obsolete components (#158) (`faff5af`)
- Improve EnhancedButton (#157) (`edc890a`)
- Fix OptimalDisplaydecorator (#156) (`d3a84ac`)
- Improve dialog sizing (#155) (`634ed44`)
- Add adaptive dialog sizing with pluggable strategy pattern +semver:minor (`df2b70a`)
- Fabulous (`1ec0b08`)
- Add BigView dialog and update DialogSampleView for new command (`ddb86c2`)
- Slim Wizard: adopt NextWith/NextWhenValid + bump ZafiroVersion to 35.0.2 (#153) (`7413aff`)
- Add default fallback for DataContext and Value in Cell class - Set DataContext and Value to row item for CellTemplate bindings - Ensure ContentControl displays item's ToString() without a template (`3eca258`)
- Refactor ReactiveSelection to improve item selection logic and add selection count properties (#152) (`24cc6a4`)
- Update ZafiroVersion to 35.0.0 in Directory.Packages.props (`d4d1355`)
- Replace ReactiveButton with EnhancedButton in WizardView and update styles to include EnhancedButton. - Updated WizardView.axaml to use EnhancedButton for launching dialogs and new pages. - Added EnhancedButton style reference in Styles.axaml. (`576c093`)
- Restore (`cd70976`)
- Refactor AutoForegroundConverter to use FallbackBackground property (`71366dc`)
- Unify IconButton and ReactiveButton into EnhancedButton (`24f8ee9`)
- Some fixes before the musgo (`8a101a7`)
- Fix ReactiveButton loading indicator sizing (`b5ab64c`)
- Unify reactive button variants (`08c0b78`)
- Set Background property to Transparent for IconButton, ReactiveButton, and ReactiveIconButton (`25a8ab0`)
- Fix ButtonTheme (`08bf625`)
- Fix regression bug in previous version (`bb75e08`)
- Remove default header templates for ShellSplitView (`1fc75da`)
- Modify IconButton and related components to use consistent resource bindings for Background and Foreground (`aa5a1cb`)
- Attempt to fix WASM (`9147fd0`)
- Add TestApp Icon (`a070928`)
- Use same resources for both light and dark (`08caa0f`)
- Performance and layout fixes (#145) (`bfbf64d`)
- Review ShellView and related components (#144) (`e91230d`)
- Optimize ResponsivePresenter.cs (`070383d`)
- Use DockPanel in IconButtons to allow TextWrap (`3ec9834`)
- Fix CI packaging: centralize README inclusion to avoid duplicates; CPM-friendly SourceLink; disable snupkg for analyzer package to avoid NU5017 (#143) (`b825269`)
- DevOps: add repo nuget.config (nuget.org only) and package READMEs; enable README, SourceLink and symbols in Common.props (#142) (`d9919bd`)
- Decouple source generator: package Zafiro.Avalonia.Generators as analyzer; remove implicit analyzer from Zafiro.Avalonia; add buildTransitive props; conditionally reference generator for local builds (#141) (`e93d16f`)
- Fix ResponsivePresenter not showing (`c8ffb65`)
- refactor(Card): replace ContentPresenter with ContentControl for improved template binding (`c556d3f`)
- ResponsivePresenter: enforce strict template-based hosting (no public Content) (#140) (`7c87341`)
- Fix ResponsivePresenter override for Avalonia 11 and add ResponsivePresenter sample using SlimDataGrid (wide) and ItemsControl (narrow) (#139) (`3e6dfa0`)
- docs(WARP): update guidelines to avoid unnecessary compilation of TestApp.Android to improve build performance (`ab8de90`)
- feat(generator): select concrete implementation for interface x:DataType by view identifier; add diagnostics ZAV0002-ZAV0004 and keep ZAV0001 for multi-view conflicts (`1ddbaf6`)
- Bump Zafiro submodule (`c4494df`)
- Add Sections using Source Generator (#136) (`e45498a`)
- DataTypeViewLocatorGenerator: prefer view whose simple name matches the ViewModel when multiple candidates are found\n\n- Prefer <BaseName>View when multiple views are registered for <BaseName>ViewModel via x:DataType\n- Keep previous fallback (first) if no exact simple-name match is present\n- Update ZAV0001 diagnostic message to reflect the chosen view (#135) (`c06440a`)
- Use latest Zafiro (`aa92e68`)
- Remove old DragAndDropAssembly (`437526a`)
- Include generator and axaml files for Dialogs (#134) (`dbeeaa4`)
- Android AOT: behaviors via Avalonia URI; root Interactions.*; docs update; diagnostics cleanup; path normalization; remove TypeLister (`9976950`)
- feat(ui): add NestedScrollViewerBehavior to SlimWizardControl for improved scrolling (`bde7101`)
- feat(packaging): include source generator DLL in Zafiro.Avalonia NuGet under analyzers/dotnet/cs\n\nThis makes Zafiro.Avalonia implicitly enable Zafiro.Avalonia.Generators for consumers without requiring a separate package. (`1de5b1a`)
- feat(navigation): per-section navigators and simplify Shell/Frame (#129) (`cb15119`)
- Add new View Locators (#131) (`99fbb57`)
- Add Badge (`76bc52e`)
- Improve Empty infrastructure (`21bc09a`)
- Add Count converter (`f8d6d9b`)
- Fix HeaderedContainer names and styles (`16d7749`)
- Use Uri in LaunchUri (`c8e9d32`)
- Improve cards (`c64143b`)
- Add content templates (`ecf8530`)
- Add MorePanels (`de61da8`)
- Add FullLoadingReactiveButton (`69a8811`)
- Merge pull request #126 (`cb05b83`)
- simplyfy-shell-controls (#124) (`ebdf242`)
- Improve Empty contents (`d13b579`)
- Optimize WrapGrid layout and restore Empty class (#123) (`22e0542`)
- Center align StackPanel in Card.axaml (`8baae78`)
- Use StackPanel for Title and Subtitle (`024f9bb`)
- Fix SmartDockPanel (`5153a88`)
- Add WrapGrid (#122) (`551e0f0`)
- Fix dialog inter-Button spacing (`72c1567`)
- Add HeaderAndBodySpacing property and refine Cards (`1d82b00`)
- Fixed SmartDockPanel (`1475dc3`)
- Add SmartDockPanel, fix Cards (#120) (`dde4d3a`)
- Hide content presenters when content is null (`dac9d09`)
- BalancedWrapGrid: respect MaxItemWidth, invalidate layout on property changes, report natural content width and center rows when extra horizontal space is available. Add 2-item sample with MaxItemWidth to PanelsView. (#118) (`de164e1`)
- Replace TransitioningContentControl with ContentControl in ShellSplitView.axaml (`5854c15`)
- Update Avalonia version to 11.3.4 (`7328cfe`)
- Add EdgePanel styles (`d82b5a6`)
- Improve BalancedWrapGrid (#117) (`b872643`)
- Remove wrong colors in SlimDataGrid.axaml (`b9d03a9`)
- Improve SlimDataGrid (#116) (`0f42295`)
- Add Icon extension (`8dcbb05`)
- Improve responsive in DialogControl, styles in HeaderedContainer and add Border.axaml (`510c54a`)
- Update Loading and Button styles for improved visibility and aesthetics (`b772ce5`)
- Review card styles (`9ff5353`)
- Remove Nuke leftovers (`ae88840`)
- Merge pull request #114 (`cdfc739`)
- Update FlexBox to ignore invisible items (`a89f250`)
- Disable release to GitHub temporarily (`283daa1`)
- chore: replace Avalonia.Svg with Svg.Controls.Skia.Avalonia (`0ba7c2d`)
- Give some feedback on transparent button (#113) (`0ebbd3b`)
- chore: update Avalonia version to 11.3.3 (`fd33330`)
- chore: update Zafiro version to 33.0.10 (`182e8fd`)
- Modify EdgePanel (`6aaeff5`)
- Replace Nuke with dotnetdeployer; update Azure Pipelines (#112) (`0b83aae`)
- Cards and EdgePanel responsive goodness (`933c9e4`)