Semi.Avalonia theme setup, compatibility, and package boundaries
Avalonia theme inspired by Semi Design
At a glance
- What is it?
- Semi.Avalonia applies a Semi Design-inspired theme to Avalonia applications through XAML style resources, with optional packages for several controls. Adoption requires checking Avalonia compatibility and reviewing the licensing boundary around Dock, Tabalonia, and AvaloniaEdit.
- Who is it for?
- Adopt Semi.Avalonia if your team wants Semi Design styling inside an Avalonia application and can align the project with a documented Avalonia version. Do not adopt it as a complete control suite, or assume every styled integration is covered by the repository's MIT license.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 13 days ago.
- What is it written in?
- Mainly C#, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What Semi.Avalonia changes in an Avalonia application
Semi.Avalonia addresses the visual styling layer of an Avalonia desktop application. The repository describes it as an "Avalonia Theme inspired by Semi Design," rather than as an application framework or a replacement for Avalonia. It is aimed at developers who already use Avalonia and want their interfaces to follow that visual direction without building a theme resource layer from the beginning.
The central package supplies theme styles that the application includes through XAML. Optional packages provide style integration for ColorPicker, DataGrid, TreeDataGrid, Dock, Tabalonia, and AvaloniaEdit. This split matters when judging scope. The base theme can give the application its Semi styling, but the presence of a particular control in the design system does not mean its package is included automatically.
The browser preview and downloadable demo serve different purposes. The homepage provides a browser preview for examining the visual style. The README also links to releases containing a demo executable, which is the more useful artifact when a developer needs to inspect the theme within a runnable Avalonia environment. Neither replaces checking compatibility with the Avalonia version used by the target application.
NuGet installation and the first App.xaml theme entry
Install the main package into the Avalonia project with the command documented in the README. This adds `Semi.Avalonia` as a NuGet dependency rather than copying theme files into the repository manually.
dotnet add package Semi.AvaloniaThe application then needs the Semi namespace and a `SemiTheme` entry in `Application.Styles`. The `Locale="zh-CN"` value in the documented example selects that locale. A first application can follow the README's structure:
<Application
...
xmlns:semi="https://irihi.tech/semi">
<Application.Styles>
<semi:SemiTheme Locale="zh-CN" />
</Application.Styles>
</Application>This is the actual integration point: an Avalonia application adds a themed style resource to its style collection. The README calls the result sufficient, so users do not need a second registration step for the base theme according to the documented setup. The application must still be an Avalonia project, and its Avalonia dependency must satisfy the compatibility table discussed below.
Optional control packages and the boundary of the open-source repository
The README keeps six control integrations outside the main package. Install only those that correspond to controls in the application. Each package is added with `dotnet add package`, using the exact package names published by the project.
dotnet add package Semi.Avalonia.ColorPicker
dotnet add package Semi.Avalonia.DataGrid
dotnet add package Semi.Avalonia.TreeDataGrid
dotnet add package Semi.Avalonia.Dock
dotnet add package Semi.Avalonia.Tabalonia
dotnet add package Semi.Avalonia.AvaloniaEditAfter the relevant packages are present, their theme resources are added to `Application.Styles`. This example shows the complete set documented by the project, although an application should include only the resources matching packages it uses.
<Application.Styles>
<semi:ColorPickerSemiTheme />
<semi:DataGridSemiTheme />
<semi:TreeDataGridSemiTheme />
<semi:DockSemiTheme />
<semi:TabaloniaSemiTheme />
<semi:AvaloniaEditSemiTheme />
</Application.Styles>There is an important licensing limitation here. The repository identifies the project as MIT licensed, but the README separately states that Dock, Tabalonia, and AvaloniaEdit are delivered through NuGet without open-source source code. It directs users to read those packages' licenses and contact IRIHI Technology if they need the source. Consequently, the repository's MIT designation should not be treated as proof that every optional NuGet package carries the same license or source availability. This is a package-by-package compliance check, not a judgment about how the licenses should be interpreted.
Avalonia version compatibility and upgrade work
Semi.Avalonia version selection is tied to Avalonia. The README's compatibility table maps Semi.Avalonia `11.3.7` to Avalonia `>=11.3.7`, and Semi.Avalonia `11.2.1` to Avalonia `>=11.2.1`. It marks Semi.Avalonia `11.2.0` and the `11.1.x` line as End of Life. The table does not provide a compatibility row for the listed `12.x` releases, so those releases require verification against the current package documentation or the target project's dependency resolution before adoption.
That limitation affects upgrades at two levels. First, upgrading Avalonia can force a matching Semi.Avalonia version. Second, moving to a newer Semi.Avalonia line can alter the theme resources an application loads through XAML. The README does not document a migration guide, rollback procedure, or list of breaking style changes. The repository layout contains a demo solution and source directories, but those entries alone do not establish that an upgrade is automatic or free of UI changes.
The repository is not archived, and the last push was on 2026-10-10. Recent releases include `v12.1.0.1` from 2026-07-31, `v12.1.0` from 2026-07-11, and `v11.3.22` from 2026-09-14. These facts indicate recent project activity, but the release numbering and compatibility table still need to be checked against the exact package version selected. Community support is described as limited, so the README does not promise broad migration assistance.
Where Semi.Avalonia is the wrong tool
Semi.Avalonia is the wrong choice when the requirement is a complete replacement control library rather than a theme. The README points developers who want more customized controls to Ursa, a separate project. That is a meaningful distinction: Semi.Avalonia is centered on applying Semi-inspired styles, while Ursa is positioned as a source of additional customized controls.
It is also a poor fit for a non-Avalonia interface. The documented installation and integration depend on `dotnet add package`, an Avalonia `Application`, and XAML style resources. The repository does not document a web framework, React, or native mobile integration outside the Avalonia model. Although the repository contains demo projects for Android, Desktop, DRM, Fonts, and Web, those entries do not by themselves establish that every platform has the same package support or production readiness.
The browser preview is useful for visual inspection, but it does not replace running the actual Avalonia application. Custom controls can also create styling gaps if their templates do not consume Semi.Avalonia's resources. The README does not promise automatic compatibility with every third-party Avalonia control. Teams should therefore treat the optional package list and the application's actual control inventory as the adoption boundary.
Semi.Avalonia compared with Ursa and standard Avalonia styling
The clearest project-specific alternative documented by the repository is Ursa. Both projects come from IRIHI Technology and target Avalonia users, but their stated roles differ. Semi.Avalonia supplies a Semi Design-inspired theme and separate integration packages. Ursa is presented as the place to look for more customized controls. Choosing Ursa is therefore a response to a control-library requirement, while choosing Semi.Avalonia is a response to a theme requirement.
Standard Avalonia application styling is the other approach, although the README does not provide a detailed comparison. An application can define and register its own Avalonia styles without adopting Semi.Avalonia. That avoids this package's version coupling, locale resource, and separate integration dependencies, but it also leaves the team responsible for creating the desired visual system. Semi.Avalonia packages prebuilt theme resources, so its value depends on whether that design matches the application's requirements.
Neither alternative changes the license boundary described in the README. The MIT designation applies to the repository information given here, while Dock, Tabalonia, and AvaloniaEdit have separate NuGet delivery terms. Teams evaluating Ursa or custom styles still need to inspect the licenses for any packages they add. The decision should be based on whether the application needs Semi styling, extra controls, or its own resource design.
Editorial conclusion
Adopt Semi.Avalonia if your team wants Semi Design styling inside an Avalonia application and can align the project with a documented Avalonia version. Do not adopt it as a complete control suite, or assume every styled integration is covered by the repository's MIT license. Verify the Avalonia version, the theme XAML, and the separate package licenses before making the dependency decision.
Frequently asked questions
How do I install Semi.Avalonia in an Avalonia project?
Run `dotnet add package Semi.Avalonia`, then add the `semi` XML namespace and a `semi:SemiTheme` resource inside `Application.Styles`. The documented example uses `Locale="zh-CN"`.
Which controls require separate Semi.Avalonia packages?
ColorPicker, DataGrid, TreeDataGrid, Dock, Tabalonia, and AvaloniaEdit are distributed separately from the main package. The README lists one NuGet package and one corresponding theme resource for each of them.
Are the optional Semi.Avalonia packages open source?
The README says Dock, Tabalonia, and AvaloniaEdit are delivered through NuGet without open-source source code. It instructs users to read the package licenses and contact IRIHI Technology if source code is needed.
Which Avalonia version should I use with Semi.Avalonia?
The compatibility table maps Semi.Avalonia `11.3.7` to Avalonia `>=11.3.7` and `11.2.1` to Avalonia `>=11.2.1`. It does not list compatibility for the `12.x` Semi.Avalonia releases shown in the release history.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/irihitech-semi-avalonia)Was this useful?