Table of Contents
DrawnUI Logo

DrawnUI for .NET

Hardware-accelerated rendering engine for .NET, including MAUI, Blazor, and OpenTK, powered by SkiaSharp

๐Ÿค– Teach your AI agent to use DrawnUI โ€” see the AI skills guide.

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

MAUI setup guide โ†’

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

OpenTK guide โ†’

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

Blazor runtime guide โ†’

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

DrawnUi.Wasm guide โ†’

.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

DrawnUi.Net guide โ†’

๐Ÿ“– Choose Your Package And Runtime

๐ŸŒŸ 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

๐Ÿ˜ƒ Don't miss the Fiddle!

๐Ÿ‘จโ€๐Ÿ’ป 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 โ†’

๐Ÿง™ Tutorials

Step-by-step practical examples

View Tutorials โ†’
Sample Apps โ†’
Fluent Syntax โ†’

๐Ÿค– AI Agents

Teach your coding agent DrawnUI

AI Skills โ†’
llms.txt โ†’
Fiddle โ†’

๐Ÿ’ฌ Community

Get help and share your creations

GitHub Discussions โ†’
Report Issues โ†’
FAQ โ†’

License NuGet Version NuGet Downloads

Nick Kovalsky (@taublast) and contributors