Skip to content

About

A set of custom controls for the WinUI and the Uno Platform not offered out of the box by WinUI, such as Card, TabBar, NavigationBar, etc.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

110 stars

Watchers

18 watching

Forks

Latest commit

 

History

1,477 Commits

Folders and files

Repository files navigation

Uno Toolkit

Material Toolkit Design System

Open Uno in Gitpod Azure DevOps License

Uno Toolkit provides a set of higher-level UI Controls designed specifically for multi-platform, responsive applications.

Packages

Package Stable Preview
Uno.Toolkit.UI NuGet stable NuGet preview
Uno.Toolkit.UI.Material NuGet stable NuGet preview
Uno.Toolkit.UI.Cupertino NuGet stable NuGet preview
Uno.Toolkit.WinUI NuGet stable NuGet preview
Uno.Toolkit.WinUI.Material NuGet stable NuGet preview
Uno.Toolkit.WinUI.Cupertino NuGet stable NuGet preview

Getting Started

See the complete documentation for starting with this library. For a larger example and features demo, visit the Uno Gallery repository.

Sample apps

PR previews and main deployments use ToolkitSampleApp, a wrapper that hosts Material, Cupertino, and Simple in isolated assembly contexts. Use the picker to switch themes, Reload to restart a theme, or Unload to return to the empty host. A browser URL can select an initial theme with ?app=material, ?app=cupertino, or ?app=simple. The individual sample heads remain runnable on their own.

Build and run the desktop wrapper (this also builds its guests):

dotnet run --project samples/Uno.Toolkit.Samples.ThemeWrapper/ToolkitSampleApp.csproj -c Release -f net10.0-desktop -p:TargetFrameworkOverride=desktop

Build the WASM guests, then publish the combined site:

bash build/workflow/scripts/build-wasm-guest-heads.sh Release
dotnet publish samples/Uno.Toolkit.Samples.ThemeWrapper/ToolkitSampleApp.csproj -c Release -f net10.0-browserwasm -p:TargetFrameworkOverride=browserwasm -p:CompressionEnabled=false

The deployable site is under samples/Uno.Toolkit.Samples.ThemeWrapper/bin/Release/net10.0-browserwasm/publish/wwwroot. The wrapper is untrimmed because guest assemblies are loaded dynamically. Missing guest builds fail packaging instead of producing a partial site. Guest font and image assets are included in the wrapper because ms-appx paths resolve against its package root.

For the hosting smoke test, pass -- --smoke to the desktop dotnet run command or open the published site with ?smoke. It checks all themes, reload, failed/canceled loads, and unload. Desktop Release also requires guest assembly contexts to be reclaimed; WASM and Debug report reclamation diagnostically, matching the Uno Themes host. Release desktop finishes collection before starting another guest; if cleanup cannot finish, the host reports an error and lets you retry loading.

Documentation

All documentation for Uno.Toolkit.UI can be found on our website.

Where can I get support?

Support is available through GitHub Discussions or Discord Server - where our engineering team and community will be able to help you.

Contributing

Please read our contributing guide to learn about our development process and how to propose bug fixes and improvements. Come visit us on our Discord Server for help on how to contribute!

Contribute to Uno in your browser using GitPod.io, follow our guide here.

Be also mindful of our Code of Conduct.

Acknowledgments

License

This project is licensed under the Apache 2.0 license - see the LICENSE file for details.

Contributors

Thanks go to these wonderful people (List made with contrib.rocks):

Uno.Toolkit.UI Contributors

💖 Thank you.

About

A set of custom controls for the WinUI and the Uno Platform not offered out of the box by WinUI, such as Card, TabBar, NavigationBar, etc.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

110 stars

Watchers

18 watching

Forks

Releases

Packages

Used by

Contributors

Languages