🌐 Localized in 12 languages including:
🇯🇵 日本語にローカライズ済み • 🇰🇷 한국어로 현지화됨 • 🇨🇳 已本地化为简体中文
🇺🇦 Локалізовано українською • 🇸🇦 مترجم للعربية • 🇮🇱 מתורגם לעברית
Flowery.Uno provides native WinUI controls that mimic the utility-first, semantic class naming of DaisyUI, making it easy to build beautiful, themed UIs.
Note
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
- 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, …)
- semantic variants (
- 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
DaisyThemeDropdownto 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 aLocalizationDataContext;x:Bindindexers are invalid on all heads. Desktop/Skia must force aDataContextrefresh 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 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.
- 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.
FlowKanban: Control shell + state + persistence.FlowKanbanManager: Programmatic API for manipulating boards.FlowKanbanHome: Multi-board Home screen control.FlowTaskCard/FlowKanbanColumn: Visual task + column building blocks.
xmlns:kanban="using:Flowery.Uno.Kanban.Controls"
<kanban:FlowKanban x:Name="ProjectBoard" />📖 FlowKanban Guide - Full feature list, architecture, and usage examples.
-
Reference the
Flowery.Unoproject (or later: a NuGet package). -
Ensure
Themes/Generic.xamlis loaded in your app. The library usesGenerateLibraryLayout=true. -
(Recommended) Seed design tokens early if you calculate layout before any Daisy control loads:
using Flowery.Theming;
DaisyResourceLookup.EnsureTokens();- 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.
- 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.
- 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.
- 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.
- 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).
- 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).
- 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.
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.
- 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.
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).
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 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.ps1run-windows.ps1run-browser.ps1run-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 -VerboseOutputTo 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 restoreTip: Run
dotnet workload listto see currently installed workloads.
| 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 |
| 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 |
MIT
If you find this library useful, consider supporting its development:
See CHANGELOG.md for version history and release notes.
- Uno Platform - The cross-platform WinUI implementation.
- DaisyUI - The original Tailwind CSS component library.
- Cyotek ColorPicker - Inspiration for color picker controls.
- Easy Date Timeline - Inspiration for date timeline controls.
- HappyHues.co - Inspirations for several extra themes
Disclaimer: This project is not affiliated with, endorsed by, or sponsored by any of the above.
