Skip to main content

Installation

Flowery.Uno provides DaisyUI-inspired controls for Uno Platform / WinUI applications. This guide covers everything you need to install and configure the library.

Requirements

Minimum Requirements:
  • .NET 8.0 or later
  • Uno Platform 6.x
For Building from Source:
  • .NET 9.0 SDK or later (recommended: .NET 10.0 SDK)
  • Visual Studio 2022, JetBrains Rider, or VS Code

Platform Workloads

Different platform heads require specific .NET workloads. Install them based on your target platforms:
1
Install Required Workloads
2
PowerShell
# Browser (WebAssembly)
dotnet workload install wasm-tools

# Android
dotnet workload install android

# Or restore all workloads defined in your solution
dotnet workload restore
Bash
# Browser (WebAssembly)
dotnet workload install wasm-tools

# Android
dotnet workload install android

# Or restore all workloads defined in your solution
dotnet workload restore
3
Run dotnet workload list to see currently installed workloads.
4
Install the NuGet Package
5
.NET CLI
dotnet add package Flowery.Uno
PackageReference
<PackageReference Include="Flowery.Uno" Version="*" />
Package Manager
Install-Package Flowery.Uno
6
Configure Your App.xaml
7
Flowery.Uno uses GenerateLibraryLayout=true, which means its resources are automatically included. You don’t need to manually merge Themes/Generic.xaml.
8
Your App.xaml can remain minimal:
9
<Application
    x:Class="YourApp.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Application.Resources>
        <ResourceDictionary />
    </Application.Resources>
</Application>
10
(Optional) Initialize Design Tokens Early
11
If you calculate layout before any Daisy control loads, you should seed design tokens early in your app startup:
12
using Flowery.Theming;

protected override void OnLaunched(LaunchActivatedEventArgs args)
{
    // Seed design tokens before creating windows
    DaisyResourceLookup.EnsureTokens();

    // Create your main window
    MainWindow = new MainWindow();
    MainWindow.Activate();
}
13
This is only needed if you’re doing layout calculations before any Flowery control renders. Most apps don’t need this.

Project Structure

When building from source, you’ll work with these projects:
ProjectDescription
Flowery.UnoCore library containing all controls
Flowery.Uno.Win2DOptional Win2D extension library for advanced geometry/effects
Flowery.Uno.GalleryShared Gallery UI library
Flowery.Uno.Gallery.WindowsWinUI (Windows) Gallery head
Flowery.Uno.Gallery.DesktopSkia desktop Gallery head (Windows/Linux/macOS)
Flowery.Uno.Gallery.BrowserWebAssembly Gallery head
Flowery.Uno.Gallery.AndroidAndroid Gallery head

Build Scripts

If you’re building from source, convenience scripts are available:
# Build specific platforms
pwsh ./scripts/build_desktop.ps1
pwsh ./scripts/build_windows.ps1
pwsh ./scripts/build_browser.ps1
pwsh ./scripts/build_android.ps1

# Build all platforms
pwsh ./scripts/build_all.ps1

# Build with options
pwsh ./scripts/build_windows.ps1 -Configuration Release -NoRun

Build Parameters

  • -Configuration <Debug|Release> - Build configuration
  • -NoRun - Build without running
  • -Rebuild - Clean rebuild
  • -VerboseOutput - Enable detailed logging
  • -RestoreWorkloads - Restore workloads before building (build_all.ps1 only)

Verify Installation

After installation, verify everything works by adding a simple button to your app:
MainWindow.xaml
<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:daisy="using:Flowery.Controls">

    <Grid Background="{ThemeResource DaisyBase100Brush}">
        <daisy:DaisyButton Content="Hello Flowery!" Variant="Primary" />
    </Grid>
</Window>
If you see a styled primary button, you’re all set!

Next Steps

Quickstart Guide

Build your first Flowery.Uno app with a complete example

Theming Guide

Learn how to customize themes and colors

Build docs developers (and LLMs) love