Skip to content

enisn/UraniumUI

Repository files navigation

UraniumUI

The presentation framework for .NET MAUI.

Fill the UI gaps in plain MAUI without adopting a second app model, proprietary layer, or special coding style.

Documentation | NuGet | Templates | Discord

UraniumUI is a free and open-source presentation framework for .NET MAUI. It fills the UI gaps plain MAUI leaves to every team: polished controls, validation-aware forms, dialogs, icons, and app-ready presentation patterns without moving your app into a proprietary black box.

You keep writing regular .NET MAUI: XAML, ContentPage, bindings, styles, resources, handlers, dependency injection, MVVM, and platform APIs. UraniumUI attaches to that model instead of replacing it.

It is not just a collection of styled controls. UraniumUI provides the building blocks for real app screens: generated forms, validation mapping, dialog abstractions, theme resources, icon packs, state-aware views, layout primitives, and extensibility points for your own controls.

No Framework Tax

Some UI stacks ask you to move your app into their way of building software. UraniumUI does not.

There is no required base ViewModel, proprietary navigation model, custom application layer, generated project structure, or new UI DSL. Adopt one control, a validation-aware field set, or a full Material presentation layer. Your app remains a MAUI app.

Plain MAUI in, better UI out.

The Mental Model

.NET MAUI gives you the platform foundation. UraniumUI adds the presentation architecture that most production apps end up rebuilding.

App need UraniumUI provides
Build forms quickly AutoFormView generates editors from your model and lets you override editor mappings when needed.
Validate forms consistently InputKit validation, DataAnnotations integration, async validation, and automatic validation path mapping for generated fields.
Keep UI native and flexible Controls and handlers built on MAUI primitives instead of a closed, all-or-nothing rendering stack.
Standardize app presentation Material theme, color resources, style resources, cascading styling, icons, dialogs, and reusable page infrastructure.
Escape the defaults Replace generated editors, customize layouts, add page attachments, create themes, or use native MAUI APIs directly.

Quick Start

Start a New App

Install the templates and create a ready-to-run UraniumUI project:

dotnet new install UraniumUI.Templates
dotnet new uraniumui-app -n MyMauiApp

For a lighter starter project:

dotnet new uraniumui-blank-app -n MyMauiApp

You can also generate a UraniumContentPage item:

dotnet new uraniumcontentpage -n CustomerPage -na MyMauiApp

Templates can configure icon packages, dialog integration, and blur support during project creation.

Add UraniumUI to an Existing App

Install the Material package. It references the core UraniumUI package and configures Material controls and AutoFormView editor mappings.

dotnet add package UraniumUI.Material

Register UraniumUI in MauiProgram.cs:

using UraniumUI;

builder
    .UseMauiApp<App>()
    .UseUraniumUI()
    .UseUraniumUIMaterial();

Add Material resources in App.xaml:

<Application xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:material="http://schemas.enisn-projects.io/dotnet/maui/uraniumui/material"
             x:Class="MyMauiApp.App">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary x:Name="appColors" Source="Resources/Styles/Colors.xaml" />
                <ResourceDictionary x:Name="appStyles" Source="Resources/Styles/Styles.xaml" />
                <material:StyleResource ColorsOverride="{x:Reference appColors}" BasedOn="{x:Reference appStyles}" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>

Read the full onboarding guide: Getting Started.

Aha Moment: Dynamic Forms

Instead of hand-writing every field, binding, validation message, and layout row, describe the form with your model and let UraniumUI generate the editable UI.

using System.ComponentModel.DataAnnotations;

public class RegisterViewModel
{
    [Required]
    [EmailAddress]
    public string Email { get; set; } = string.Empty;

    [Required]
    public string FullName { get; set; } = string.Empty;

    [Range(1, 10)]
    public int NumberOfSeats { get; set; }

    [Display(Name = "I accept the terms and conditions")]
    public bool AcceptedTerms { get; set; }
}
<uranium:AutoFormView Source="{Binding .}" />

Enable DataAnnotations validation once:

dotnet add package UraniumUI.Validations.DataAnnotations
using UraniumUI.Options;
using UraniumUI.Validations;

builder.Services.Configure<AutoFormViewOptions>(options =>
{
    options.ValidationFactory = DataAnnotationValidation.CreateValidations;
});

The same model can now drive generated editors, display names, and validation messages. If a screen needs custom behavior, override the editor mapping, change the generated layout, or replace a generated field with your own MAUI view.

Learn more: AutoFormView and DataAnnotations validation.

Feature Map

Area What you get Docs
Dynamic forms Model-driven forms, generated editors, custom editor mapping, property name mapping, layout customization, form dialogs. AutoFormView
Validation InputKit validation, DataAnnotations package, async form validation, generated-field validation path mapping. Validations
Material presentation Text fields, picker fields, buttons, chips, checkboxes, radio buttons, containers, elevation, DataGrid, TreeView, TabView, BottomSheet, Backdrop. Material Theme
Dialogs IDialogService, default modal-page dialogs, Mopups integration, CommunityToolkit integration, prompt, confirmation, progress, custom view, and form dialogs. Dialogs
Page architecture UraniumContentPage, page attachments, StatefulContentView, DynamicContentView, GridLayout, ExpanderView, Dropdown, CalendarView. Core
Theming Color system, style resources, cascading styling, custom themes, icon packs, light and dark mode support. Color System
Effects and web components Blur effects and WebView-based code rendering. Blurs, CodeView

Package Map

Package Purpose
UraniumUI Core controls, handlers, dialogs, layouts, AutoFormView, and extensibility infrastructure.
UraniumUI.Material Material presentation layer and Material editor mappings for generated forms.
UraniumUI.Validations.DataAnnotations DataAnnotations integration for forms and generated editors.
UraniumUI.Dialogs.Mopups Dialog implementation backed by Mopups.
UraniumUI.Dialogs.CommunityToolkit Dialog implementation backed by .NET MAUI Community Toolkit.
UraniumUI.Icons.MaterialSymbols Material Symbols icon fonts and glyph helpers.
UraniumUI.Icons.FontAwesome Font Awesome icon fonts and glyph helpers.
UraniumUI.Icons.SegoeFluent Segoe Fluent icon fonts and glyph helpers.
UraniumUI.Blurs Cross-platform blur effects.
UraniumUI.WebComponents WebView-based components such as CodeView.
UraniumUI.Templates Project and item templates for new UraniumUI apps and pages.

Supported Targets

Target Support
Current versions .NET 10 LTS and .NET 9
.NET 8 Use UraniumUI v2.6 through v2.12
.NET 6 and .NET 7 Use UraniumUI v2.5

Supported MAUI platforms:

  • Android
  • iOS
  • Mac Catalyst
  • Windows
  • Tizen, with limited support and optional setup

Documentation

Contributing

We welcome contributions and suggestions. Please read the contributing guide.

You may consider checking out issues with the good first issue label to make your first contribution.

Roadmap

See the milestones section in the repository.

License

This project is licensed under the Apache License. See the LICENSE file for details.

Backers

Special thanks to project supporters 🎉
YvanBrunel
Hottemax
tjlangenkamp
C00lzer0
Eric
Volker Busch
gpproton
kmaclagan-pcl
@Geramy
Malko_Josue
Nawa
JohnStabler
jfversluis
Lucasbk123
laszlodaniel
codychaplin
Juliette Dianne Moss
Simon Brettschneider
JohnCKoenig
7 M O X D
Anonymous people 6☕️

Donations are spent on infrastructure costs such as the documentation website.

Support

If UraniumUI helps you ship .NET MAUI apps, you can support the project on BuyMeACoffee.



Activity

Repobeats analytics image

About

The presentation framework for .NET MAUI.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

 
 
 

Contributors

Languages