Choose Your Target
MAUI
Use DrawnUi.Maui when you are building a native cross-platform app for iOS, Android, MacCatalyst, or Windows.
Install:
dotnet add package DrawnUi.Maui
OpenTK
Use DrawnUi.OpenTk for native OpenGL desktop Window or Linux app, fully drawn or overlay for already existing projects.
Reference:
dotnet add package DrawnUi.OpenTk
Blazor
Use DrawnUi.Blazor.Wasm for browser-local rendering, or DrawnUi.Blazor.Server for server-side rendering.
Install:
dotnet add package DrawnUi.Blazor.Wasm
dotnet add package DrawnUi.Blazor.Server
WebAssembly
Use DrawnUi.Wasm for a fully drawn web app — no Blazor, no Razor, just .NET WASM + SkiaSharp for WebAssembly.
Install:
dotnet add package DrawnUi.Wasm
.NET
Use DrawnUi.Net when you need platform-agnostic rendering with SkiaSharp, server-side graphics, AI harness, tests and any other shared-logic development.
Install:
dotnet add package DrawnUi.Net
🌟 What Is DrawnUI?
DrawnUI is a rendering engine for .NET built on top of SkiaSharp that brings together a complete layout system, gesture recognition, smooth animations, and custom-drawn controls across multiple hosts, including .NET MAUI, Blazor, and platform-agnostic .NET runtimes.
Unlike traditional UI stacks that rely only on native platform widgets, DrawnUI renders everything directly to SkiaSharp-powered surfaces. This approach gives you pixel-perfect control over your app's appearance while keeping a shared rendering model that can be hosted in native apps, browser runtimes, and headless .NET workflows.
Key Architecture:
- SkiaSharp Foundation: Leverages Google's Skia graphics engine for consistent, high-performance 2D rendering
- Canvas-Based Layout: Custom layout system that positions and sizes controls on hardware-accelerated surfaces
- Gesture Engine: Multi-touch gesture recognition system with support for complex interactions
- Animation Pipeline: Smooth, performant animations using GPU acceleration and intelligent caching
- Virtual Controls: Lightweight control system without native platform overhead
Perfect for apps requiring custom UI designs, complex animations, game-like interfaces, headless rendering workflows, or pixel-perfect cross-platform consistency that traditional controls alone can't achieve.
😯 See Blazor WebAssembly sample
🏃 Master Performance
- Fast App Startup for totally drawn apps
- Caching system for retained rendering
- Hardware acceleration on all platforms
- Virtual controls - no native overhead
🎨 Unleash Creativity
- Pixel-perfect cross-platform consistency
- Gesture system with multi-touch support
- 2D/3D transforms and visual effects
- Custom shaders and filters
👨💻 Familiar Yet Powerful
- MAUI/WFP-like properties for layout etc
- Shell-like navigation on canvas (MAUI only, others soon)
- XAML + Hot Reload support
- Fluent C# syntax for code-behind UI with bindings
- Accessible canvas (Blazor only, others soon)
📔 Learn More
📖 Documentation
Complete guides and API reference
Choose Your Target →DrawnUi.Net →
OpenTK →
Getting Started →
Blazor →
DrawnUi.Wasm →
Controls Reference →
Advanced Topics →
API Reference →
By Nick Kovalsky (@taublast) and contributors