Immediate-mode GUI framework for .NET 10, using a Vulkan renderer with a Windows-native platform backend.
Current package version: 0.1.15-preview
- 한국어 문서: README.ko.md
- Version history: docs/version-history.md · 한국어
- Immediate-mode widget API (
UiImmediateContext) withUiScreen.Render(...)lifecycle. - Vulkan backend with profile-based defaults (
Display/Render) and configurable MSAA. - Windows-native window/input backend (keyboard, mouse, wheel, IME, clipboard).
- NativeAOT-friendly runtime patterns.
- UI DSL (
.ui) parser/runtime and source-generator path.
| Package | Purpose |
|---|---|
Duxel.App |
Core app facade and shared runtime pipeline |
Duxel.Windows.App |
Windows platform runner package (DuxelWindowsApp.Run) |
Create hello.cs:
#:property TargetFramework=net10.0
#:property platform=windows
#:package Duxel.$(platform).App@*-*
using Duxel.App;
using Duxel.Core;
using Duxel.Windows.App;
DuxelWindowsApp.Run(new DuxelAppOptions
{
Window = new DuxelWindowOptions { Title = "Hello Duxel" },
Screen = new HelloScreen()
});
public sealed class HelloScreen : UiScreen
{
public override void Render(UiImmediateContext ui)
{
ui.BeginWindow("Hello");
ui.Text("Hello, Duxel!");
ui.EndWindow();
}
}Run:
dotnet run hello.cs- Project sample:
samples/Duxel.Sampledotnet run --project samples/Duxel.Sample/
- FBA samples:
samples/fba/*.csdotnet run samples/fba/all_features.cs./run-fba.ps1 samples/fba/all_features.cs(local project reference; NativeAOT by default)
Duxel supports declarative .ui files (indent-based tree) and runtime/state bindings.
- DSL reference: docs/ui-dsl.md · 한국어
- FBA getting started: docs/getting-started-fba.md · 한국어
- FBA reference guide: docs/fba-reference-guide.md · 한국어
dotnet build Duxel.slnx -c ReleaseMIT