Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3,675 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Documentation Language: English | 简体中文

Overview

AtomUI is an Ant Design 6 component system for Avalonia/.NET desktop applications. It brings Ant Design's enterprise interaction patterns, visual language, design tokens and theme customization model to native cross-platform apps on Windows, macOS and Linux.

The project includes production-oriented desktop controls, icon packages, font packages, native window integration, DataGrid, ColorPicker and source generators for custom controls, tokens and localization. Feedback, issues and pull requests are welcome.

Features

  • Ant Design 6 experience adapted for native Avalonia desktop applications.
  • A broad set of ready-to-use controls for enterprise software, including layout, navigation, data entry, feedback, data display and optional advanced packages.
  • Token-driven theming built on Avalonia's style and resource system, with support for consistent customization across controls.
  • Cross-platform desktop support for Windows, macOS and Linux with a shared .NET/XAML development model.
  • Source generators for custom controls, theme tokens and localization to reduce repetitive infrastructure code.

Requirements

.NET 8 or later (development supports .NET 10)
Avalonia 12.1.x
Windows, macOS and Linux

Latest Release Notes

AtomUI 6.1.2 adds Light, Dark and Follow System appearance modes to the Gallery, fixes Dialog and Drawer masks over drawn window chrome, and fixes Splitter measurement with an unconstrained cross axis. Review the Changelog for release details.

Incubator

Thanks to Tongming Lake Center for their incubation support of AtomUI OSS

Community

Telegram WhatsApp WeChat Group QQ Group

Get Started

Add NuGet packages

AtomUI is distributed through NuGet. Install the main desktop controls package first, then add optional packages such as DataGrid and ColorPicker only when your application needs them. The examples below use the latest project version.

The packages we have released are as follows:

Package Description
AtomUI.Native Native platform infrastructure
AtomUI.Core Core infrastructure — theme system, token system and animations
AtomUI.Fonts.AlibabaSans Alibaba Sans font package
AtomUI.Fonts.AlibabaPuHuiTi Alibaba PuHuiTi font package
AtomUI.Icons.Shared Icon infrastructure
AtomUI.Icons.AntDesign Ant Design icon package
AtomUI.Controls.Shared Shared interfaces and enums for control development
AtomUI.Controls Base controls and shared control capabilities
AtomUI.Desktop.Controls Desktop control library — the main package
AtomUI.Desktop.Controls.DataGrid DataGrid control (opt-in)
AtomUI.Desktop.Controls.ColorPicker ColorPicker control (opt-in)
AtomUI.Generator Source generators for custom controls, tokens and localization
dotnet add package AtomUI.Desktop.Controls --version 6.1.2
dotnet add package AtomUI.Desktop.Controls.DataGrid --version 6.1.2
dotnet add package AtomUI.Desktop.Controls.ColorPicker --version 6.1.2

You can also install the packages from your IDE's NuGet package manager. In Rider, open:

NuGet -> Packages

Search for "AtomUI" and install the packages your project needs.

Before installation, check "Frameworks" and "Dependencies" in the package details to confirm compatibility with your target framework and Avalonia version.

Enable AtomUI library
Project Configure
<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <OutputType>WinExe</OutputType>
        <TargetFramework>net8.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
        <BuiltInComInteropSupport>true</BuiltInComInteropSupport>
        <ApplicationManifest>app.manifest</ApplicationManifest>
    </PropertyGroup>

    <ItemGroup>
        <PackageReference Include="AtomUI.Desktop.Controls" Version="6.1.2"/>
        <PackageReference Include="AtomUI.Desktop.Controls.DataGrid" Version="6.1.2"/>
        <PackageReference Include="AtomUI.Desktop.Controls.ColorPicker" Version="6.1.2"/>
        <PackageReference Include="AvaloniaUI.DiagnosticsSupport" Version="2.2.1"/>
    </ItemGroup>
</Project>
Program.cs Configure
using Avalonia;
using System;
using AtomUI;
using ReactiveUI.Avalonia;

namespace AtomUIProgressApp;

internal class Program
{
    [STAThread]
    public static void Main(string[] args) => BuildAvaloniaApp()
        .StartWithClassicDesktopLifetime(args);

    public static AppBuilder BuildAvaloniaApp()
    {
        return AppBuilder.Configure<App>()
                         .UseReactiveUI()
                         .UseAtomUIPlatformDetect()
                         .WithAtomUIDefaultOptions()
                         .WithDeveloperTools()
                         .LogToTrace();
    }
}
Enable AtomUI in the Application Class
using System.Globalization;
using AtomUI;
using AtomUI.Desktop.Controls;
using AtomUI.Theme;
using Avalonia;
using Avalonia.Markup.Xaml;

public partial class App : Application
{
    public override void Initialize()
    {
        AvaloniaXamlLoader.Load(this);

        this.UseAtomUI(builder =>
        {
            builder.WithDefaultCultureInfo(CultureInfo.CurrentUICulture);
            builder.WithDefaultTheme(IThemeManager.DEFAULT_THEME_ID);
            builder.UseAlibabaSansFont();
            builder.UseDesktopControls();
            builder.UseDesktopColorPicker();   // optional
            builder.UseDesktopDataGrid();      // optional
        });
    }
}

To make the first rendered frame use the dark theme, configure the initial theme algorithm in the builder:

this.UseAtomUI(builder =>
{
    builder.WithDefaultTheme(IThemeManager.DEFAULT_THEME_ID, ThemeAlgorithm.Dark);
    builder.UseDesktopControls();
});

SetDarkThemeMode(true) is intended for runtime theme switching after AtomUI has been initialized.

Start building with AtomUI

After AtomUI is registered, you can use AtomUI controls and Ant Design icons directly in XAML.

<atom:Window xmlns="https://github.com/avaloniaui"
             xmlns:atom="https://atomui.net"
             xmlns:antdicons="https://atomui.net/icons/antdesign">
  <atom:Space Orientation="Horizontal">
    <atom:Button ButtonType="Primary">Get Started</atom:Button>
    <atom:Button Icon="{antdicons:AntDesignIconProvider StarOutlined}">Star on GitHub</atom:Button>
  </atom:Space>
</atom:Window>

All Control Gallery

You can launch the gallery project locally to browse the available controls, usage patterns, examples and generated documentation.

git clone https://github.com/AtomUI/AtomUI.git
cd AtomUI
dotnet run --project controlgallery/AtomUIGallery.Desktop/AtomUIGallery.Desktop.csproj

Simple Examples

The gallery is intentionally comprehensive. If you prefer compact starter projects, visit:

AtomUI/AtomUI.Examples

These samples show smaller application setups that are easier to copy into a new project.

Acknowledgements

Ant Design

Ant Design is an enterprise-level UI design language and React component library launched by Ant Group. It provides a set of high-quality, unified React components with rich preset themes and internationalization support, dedicated to improving the design and development efficiency of enterprise applications. Its elegant design and excellent development experience make it one of the most popular front-end solutions for middle and back-end projects.

Avalonia OSS

Avalonia is a cross-platform .NET UI framework that uses XAML language for interface design. It supports multiple platforms including Windows, macOS, Linux, iOS, and Android, providing a development experience similar to WPF. With its high-performance rendering engine and rich control library, Avalonia helps enterprises quickly build modern desktop and mobile applications.

License Description

Projects using AtomUI OSS must comply with LGPL v3. Commercial applications, including internal company software, personal commercial products and outsourced projects, may use AtomUI for free when linking to the published binaries. If you customize AtomUI from source code, you must either open source the modified code under the license terms or purchase a commercial license. For commercial licensing, contact Beijing Qinware Technology Co., Ltd.

Special thanks

RoutinAI

[RoutinAI](https://routin.ai/) is an enterprise-grade unified LLM API gateway that provides a single, type-safe interface to access over 100 leading large language models from the GPT, Claude, and Gemini families, including models such as gpt-5.4, claude-opus-4-6, and gemini-3.1-pro-preview. It eliminates the complexity of managing multiple AI vendors by providing zero-latency edge routing, seamless model switching without code modifications, unified billing, and centralized governance with spending caps and access policies.

🤝 Contributing

Contributions of all types are more than welcome, if you are interested in contributing code, feel free to check out our GitHub Issues to get stuck in to show us what you’re made of.

About

An enhancement and extension library for Avalonia, bringing the Ant Design design language, modern controls, theming, native integrations, and cross-platform UI capabilities to .NET desktop apps.

Topics

Resources

Code of conduct

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages