Repository navigation
Desktop XAML
A desktop UI built on Avalonia, sharing its design language with Web UI — the same tokens generate both, so a desktop app and a web app look like the same product.
Three projects:
| Project | What it is |
|---|---|
Birko.Xaml.Core |
platform-neutral base view models and theming. No Avalonia dependency |
Birko.Xaml.Avalonia |
the Avalonia skin — token dictionaries and runtime theme switching |
Birko.Xaml.Shell |
the app shell: sidebar chrome, navigation, list/detail/split pages |
Why Core is Avalonia-free: so a future WPF skin can reference the same core rather than
duplicating it. If you write shared view-model logic, put it there.
.csproj), not shared projects (.projitems). You
reference them normally:
<ItemGroup>
<ProjectReference Include="$(BirkoSrc)\Birko.Xaml.Core\Birko.Xaml.Core.csproj" />
<ProjectReference Include="$(BirkoSrc)\Birko.Xaml.Avalonia\Birko.Xaml.Avalonia.csproj" />
</ItemGroup>$(BirkoSrc) is the same property as everywhere else — see Getting Started step 2.
Birko.Xaml.Shell mirrors the web shell's shape: sidebar chrome, navigation, and generic
list / detail / split page views bound to the Birko.Xaml.Core base view models. If you have
built a CRUD screen in Birko.Web, the desktop equivalent has the same structure.
Themes come from Birko.DesignTokens — the same tokens.json that generates the web CSS also
generates the AXAML resource dictionaries, with runtime switching (light/dark and variants).
Themes/. They are generated, and a CI gate compares them
against a fresh generation from tokens.json. Edit the tokens and regenerate.
Birko.Xaml.Gallery is a runnable gallery of the controls and themes.
- Web UI — the same design system on the web
- Core Concepts — the data layer a desktop app binds to
Start here
Data
Services
UI