Flowery.Uno 0.1.1

dotnet add package Flowery.Uno --version 0.1.1
                    
NuGet\Install-Package Flowery.Uno -Version 0.1.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Flowery.Uno" Version="0.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Flowery.Uno" Version="0.1.1" />
                    
Directory.Packages.props
<PackageReference Include="Flowery.Uno" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Flowery.Uno --version 0.1.1
                    
#r "nuget: Flowery.Uno, 0.1.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Flowery.Uno@0.1.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Flowery.Uno&version=0.1.1
                    
Install as a Cake Addin
#tool nuget:?package=Flowery.Uno&version=0.1.1
                    
Install as a Cake Tool

<div align="center">

Flowery.Uno Banner

๐ŸŒผ Flowery.Uno

An Uno Platform / WinUI port of Flowery.NET โ€” fully themed C# controls.

NuGet Downloads License Uno Platform Docs X

</div>

<div align="center">

๐ŸŒ Localized in 12 languages including:

๐Ÿ‡ฏ๐Ÿ‡ต ๆ—ฅๆœฌ่ชžใซใƒญใƒผใ‚ซใƒฉใ‚คใ‚บๆธˆใฟ  โ€ข  ๐Ÿ‡ฐ๐Ÿ‡ท ํ•œ๊ตญ์–ด๋กœ ํ˜„์ง€ํ™”๋จ  โ€ข  ๐Ÿ‡จ๐Ÿ‡ณ ๅทฒๆœฌๅœฐๅŒ–ไธบ็ฎ€ไฝ“ไธญๆ–‡

๐Ÿ‡บ๐Ÿ‡ฆ ะ›ะพะบะฐะปั–ะทะพะฒะฐะฝะพ ัƒะบั€ะฐั—ะฝััŒะบะพัŽ  โ€ข  ๐Ÿ‡ธ๐Ÿ‡ฆ ู…ุชุฑุฌู… ู„ู„ุนุฑุจูŠุฉ  โ€ข  ๐Ÿ‡ฎ๐Ÿ‡ฑ ืžืชื•ืจื’ื ืœืขื‘ืจื™ืช

</div>

Flowery.Uno provides native WinUI controls that mimic the utility-first, semantic class naming of DaisyUI, making it easy to build beautiful, themed UIs.

This is still in alpha. Features may be added/removed or need fixing. I'm just a guy with an AI! Took all of my spare time over 5+ weeks for just the initial alpha. This Flowery version has even more controls and features then the original. This repo is ~134K lines of code with 900+ files.
I hope this will be useful and fun to work with! -- tobitege

Relationship to Flowery.NET

  • Flowery.NET (Avalonia) was the starting point and the reference implementation.
  • Flowery.Uno (Uno Platform / WinUI) reuses the same DaisyUI-inspired design language:
    • semantic variants (Primary, Secondary, Accent, etc.)
    • DaisyUI theme names and runtime switching
    • similar control names (DaisyButton, DaisyInput, DaisyThemeDropdown, โ€ฆ)

Features

  • DaisyUI-inspired Controls: C# classes inheriting from WinUI primitives (e.g., DaisyButton : Button).
  • 35 DaisyUI Themes: All official DaisyUI themes included (Light, Dark, Cupcake, Dracula, Nord, Synthwave, and more).
  • Runtime Theme Switching: Use DaisyThemeDropdown to switch themes at runtime.
  • Lightweight Styling: Customize individual controls with control-specific resource keys. ๐Ÿ“– Reference
  • Localization Support: Built-in i18n with 12 languages (๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿ‡ฉ๐Ÿ‡ช ๐Ÿ‡ซ๐Ÿ‡ท ๐Ÿ‡ช๐Ÿ‡ธ ๐Ÿ‡ฎ๐Ÿ‡น ๐Ÿ‡จ๐Ÿ‡ณ ๐Ÿ‡ฐ๐Ÿ‡ท ๐Ÿ‡ฏ๐Ÿ‡ต ๐Ÿ‡ธ๐Ÿ‡ฆ ๐Ÿ‡น๐Ÿ‡ท ๐Ÿ‡บ๐Ÿ‡ฆ ๐Ÿ‡ฎ๐Ÿ‡ฑ), localizable theme names, and runtime language switching. ๐Ÿ“– Guide WinUI/Uno heads must use {Binding [Key]} with a Localization DataContext; x:Bind indexers are invalid on all heads. Desktop/Skia must force a DataContext refresh on culture change to update indexer bindings.
  • FlowKanban: Full Kanban board control with swimlanes, WIP limits, drag & drop, undo/redo history, multi-board home, and JSON persistence + migration. ๐Ÿ“– Guide
  • Variants: Supports Primary, Secondary, Accent, Ghost, etc.
  • Gallery App: Demo application showcasing all controls and features.

FlowKanban

FlowKanban is a full Kanban board system built for Flowery.Uno. It ships as a single control but includes a full ecosystem of models, dialogs, and a Home screen for managing multiple boards.

FlowKanban Highlights

  • Swimlanes with lane-aware drag and drop.
  • WIP limits with visual enforcement and warnings.
  • Undo/redo history for all board operations.
  • Multi-board Home screen (search, sort, rename, duplicate, export).
  • JSON persistence with atomic saves + migration support.
  • Command surface for common actions (add/remove/rename/zoom).
  • Search and filtering for tasks and boards.
  • Industrial sidebar layout with board-level actions.

Architecture

  • FlowKanban: Control shell + state + persistence.
  • FlowKanbanManager: Programmatic API for manipulating boards.
  • FlowKanbanHome: Multi-board Home screen control.
  • FlowTaskCard / FlowKanbanColumn: Visual task + column building blocks.

Usage

xmlns:kanban="using:Flowery.Uno.Kanban.Controls"

<kanban:FlowKanban x:Name="ProjectBoard" />

๐Ÿ“– FlowKanban Guide - Full feature list, architecture, and usage examples.

Quick Start

  1. Reference the Flowery.Uno project (or later: a NuGet package).

  2. Ensure Themes/Generic.xaml is loaded in your app. The library uses GenerateLibraryLayout=true.

  3. (Recommended) Seed design tokens early if you calculate layout before any Daisy control loads:

using Flowery.Theming;

DaisyResourceLookup.EnsureTokens();
  1. Use controls in your views:
xmlns:daisy="using:Flowery.Controls"

<daisy:DaisyButton Content="Primary Button" Variant="Primary" />
<daisy:DaisyInput PlaceholderText="Type here" Variant="Bordered" />
<daisy:DaisyThemeDropdown MinWidth="220" />

๐Ÿ“– Full Theming Guide - Detailed setup, theme switching, persistence, and custom theme loading.


Components

Actions

  • Button (DaisyButton): Buttons with variants (Primary, Secondary, Accent, Ghost, Link) and sizes (Large, Normal, Small, Tiny). Supports Outline and Active states.
  • Fab (DaisyFab): Floating Action Button (Speed Dial) with support for multiple actions.
  • Modal (DaisyModal): Dialog box with backdrop overlay.
  • Swap (DaisySwap): Toggle control that swaps between two content states with optional Rotate/Flip effects.

Data Display

  • Accordion (DaisyAccordion): Group of collapse items that ensures only one item is expanded at a time.
  • Alert (DaisyAlert): Feedback messages (Info, Success, Warning, Error).
  • Avatar (DaisyAvatar): User profile image container (Circle, Square) with online/offline status indicators.
  • Avatar Group (DaisyAvatarGroup): Groups multiple avatars with automatic overflow into "+N" placeholder.
  • Badge (DaisyBadge): Small status indicators (Primary, Secondary, Outline, etc.).
  • Card (DaisyCard): Content container with padding and shadow.
  • Carousel (DaisyCarousel): Scrollable container for items.
  • Chat Bubble (DaisyChatBubble): Message bubbles with header, footer, and alignment (Start/End).
  • Collapse (DaisyCollapse): Accordion/Expander with animated arrow or plus/minus icon.
  • Countdown (DaisyCountdown): Monospace digit display.
  • Diff (DaisyDiff): Image comparison slider (Before/After).
  • Kbd (DaisyKbd): Keyboard key visual style.
  • Stat (DaisyStat): Statistics block with Title, Value, and Description.
  • Timeline (DaisyTimeline): Vertical list of events with connecting lines.

Data Input

  • Checkbox (DaisyCheckBox): Checkbox with themed colors.
  • File Input (DaisyFileInput): Styled button/label for file selection.
  • Input (DaisyInput): Text input field with variants (Bordered, Ghost, Primary, etc.).
  • Radio (DaisyRadio): Radio button with themed colors.
  • Range (DaisyRange): Slider control.
  • Rating (DaisyRating): Star rating control with interactivity and partial fill support.
  • Select (DaisySelect): ComboBox with themed styles.
  • Textarea (DaisyTextArea): Multiline text input.
  • Toggle (DaisyToggle): Switch toggle control.

Layout

  • Divider (DaisyDivider): Separation line with optional text.
  • Drawer (DaisyDrawer): Sidebar navigation with overlay.
  • Hero (DaisyHero): Large banner component.
  • Join (DaisyJoin): Container that groups children (buttons/inputs) by merging their borders.
  • Stack (DaisyStack): Container that stacks children visually with offsets.
  • Breadcrumbs (DaisyBreadcrumbs): Navigation path with separators.
  • Dock (DaisyDock): Bottom navigation bar (macOS-style dock) with item selection events.
  • Menu (DaisyMenu): Vertical or horizontal list of links/actions.
  • Navbar (DaisyNavbar): Top navigation bar container.
  • Pagination (DaisyPagination): Group of buttons for page navigation.
  • Steps (DaisySteps): Progress tracker steps.
  • Tabs (DaisyTabs): Tabbed navigation (Bordered, Lifted, Boxed).

Feedback & Utils

  • Indicator (DaisyIndicator): Utility to place a badge on the corner of another element.
  • Loading (DaisyLoading): Animated loading indicators with multiple variants.
  • Mask (DaisyMask): Applies shapes (Squircle, Heart, Hexagon, etc.) to content.
  • Progress (DaisyProgress): Linear progress bar.
  • Radial Progress (DaisyRadialProgress): Circular progress indicator.
  • Skeleton (DaisySkeleton): Animated placeholder for loading states.
  • Toast (DaisyToast): Container for stacking alerts (fixed positioning).

Theme Controls

  • Size Dropdown (DaisySizeDropdown): Global size selector with localized size names.
  • Theme Controller (DaisyThemeController): Flexible toggle with multiple modes.
  • Theme Dropdown (DaisyThemeDropdown): Dropdown to select from all 35+ themes.
  • Theme Manager (DaisyThemeManager): Static class for programmatic theme control.

โœจ Flowery.Uno Exclusives

Beyond DaisyUI - The following features and controls are not part of the original DaisyUI CSS specification. They are unique to Flowery, built natively for Uno Platform.

Utility Controls

  • Animated Number (DaisyAnimatedNumber): Animated numeric display with slide transitions.
  • Button Group (DaisyButtonGroup): Segmented button-group container for joined buttons.
  • Component Sidebar (FloweryComponentSidebar): Pre-built documentation/admin sidebar with categories and search.
  • Contribution Graph (DaisyContributionGraph): GitHub-style contribution heatmap.
  • Copy Button (DaisyCopyButton): Copy-to-clipboard button with temporary success state.
  • Dropdown (DaisyDropdown): Menu-style dropdown for action menus.
  • Expandable Card (DaisyExpandableCard): Card that expands to reveal secondary content.
  • OTP Input (DaisyOtpInput): Multi-slot verification-code input with auto-advance.
  • Tag Picker (DaisyTagPicker): Multi-select chip/tag picker with add/remove icons.

Color Picker Suite

A complete color picker suite rebuilt natively for WinUI with DaisyUI styling:

  • Color Wheel (DaisyColorWheel): Circular HSL color wheel.
  • Color Grid (DaisyColorGrid): Grid-based palette selector.
  • Color Slider (DaisyColorSlider): Channel-specific sliders (R/G/B/A/H/S/L).
  • Color Editor (DaisyColorEditor): Comprehensive RGB/HSL editor.
  • Color Picker Dialog (DaisyColorPickerDialog): Full-featured modal dialog.
  • Screen Color Picker (DaisyScreenColorPicker): Screen sampling tool (Windows/Desktop).

Date Timeline

A horizontal scrollable date picker:

  • Date Timeline (DaisyDateTimeline): Scrollable date picker with selectable date items.
  • Date Timeline Item (DaisyDateTimelineItem): Individual date cell with selection states.

Build & Run

Build scripts (PowerShell + Git Bash) exist for these heads:

  • Desktop (Skia): build_desktop.ps1 / build_desktop.sh
  • Windows (WinUI): build_windows.ps1 / build_windows.sh
  • Browser (WASM): build_browser.ps1 / build_browser.sh
  • Android: build_android.ps1 / build_android.sh
  • Kiosk Browser: build_kiosk_browser.ps1 / build_kiosk_browser.sh
  • All heads: build_all.ps1 / build_all.sh

Run scripts exist for these heads:

  • run-desktop.ps1
  • run-windows.ps1
  • run-browser.ps1
  • run-android.ps1

Common build parameters (apply to all build scripts):

  • -Configuration <Debug|Release>
  • -NoRun
  • -Rebuild
  • -VerboseOutput

Additional parameters (script-specific):

  • build_android.ps1: -AndroidSdkDirectory <path>
  • build_all.ps1: -RestoreWorkloads

Examples:

pwsh ./scripts/build_desktop.ps1
pwsh ./scripts/build_windows.ps1 -NoRun -VerboseOutput
pwsh ./scripts/build_browser.ps1 -Configuration Release
./scripts/build_desktop.sh
./scripts/build_windows.sh -NoRun -VerboseOutput

Technical Requirements

To use the library:

  • .NET 8.0+
  • Uno Platform 6.x

To build from source:

  • .NET 9.0 SDK or later (recommended: .NET 10.0 SDK)
  • Visual Studio 2022, JetBrains Rider, or VS Code
  • Windows, macOS, or Linux

Required .NET Workloads:

Different platform heads require specific workloads. Install them as needed:

# Browser (WebAssembly) - Required for Flowery.Uno.Gallery.Browser
dotnet workload install wasm-tools

# Android - Required for Flowery.Uno.Gallery.Android
dotnet workload install android

# Or restore all workloads defined in the solution
dotnet workload restore

Tip: Run dotnet workload list to see currently installed workloads.


Project Structure

Project Description
Flowery.Uno Core library containing all controls
Flowery.Uno.Win2D Optional Win2D extension library for advanced geometry/effects
Flowery.Uno.Gallery Shared Gallery UI library
Flowery.Uno.Gallery.Windows WinUI (Windows) Gallery head
Flowery.Uno.Gallery.Desktop Skia desktop Gallery head (Windows/Linux/macOS)
Flowery.Uno.Gallery.Browser WebAssembly Gallery head
Flowery.Uno.Gallery.Android Android Gallery head

Design Tokens & Styling

Documentation Purpose
Flowery.Uno/DesignTokens.md Token keys (spacing, sizing, colors) and override guidance
llms-static/StylingResources.md Control-specific styling resources for lightweight customization
THEMING.md Full theming guide, theme controls, and per-control styling patterns

License

MIT

Support

If you find this library useful, consider supporting its development:

Buy Me A Coffee Ko-Fi

Changelog

See CHANGELOG.md for version history and release notes.

Credits & References

Disclaimer: This project is not affiliated with, endorsed by, or sponsored by any of the above.

Product Compatible and additional computed target framework versions.
.NET net9.0-android35.0 is compatible.  net9.0-browserwasm1.0 is compatible.  net9.0-desktop1.0 is compatible.  net10.0-android was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.1 26 2/7/2026
0.1.0 30 2/3/2026

See CHANGELOG.md