Flowery.NET
1.8.0
See the version list below for details.
dotnet add package Flowery.NET --version 1.8.0
NuGet\Install-Package Flowery.NET -Version 1.8.0
<PackageReference Include="Flowery.NET" Version="1.8.0" />
<PackageVersion Include="Flowery.NET" Version="1.8.0" />
<PackageReference Include="Flowery.NET" />
paket add Flowery.NET --version 1.8.0
#r "nuget: Flowery.NET, 1.8.0"
#:package Flowery.NET@1.8.0
#addin nuget:?package=Flowery.NET&version=1.8.0
#tool nuget:?package=Flowery.NET&version=1.8.0
<div align="center">
๐ผ Flowery.NET
A C# port of the popular DaisyUI component library for Avalonia UI.
</div>
<div align="center">
๐ Localized in 12 languages including:
๐ฏ๐ต ๆฅๆฌ่ชใซใญใผใซใฉใคใบๆธใฟ โข ๐ฐ๐ท ํ๊ตญ์ด๋ก ํ์งํ๋จ โข ๐จ๐ณ ๅทฒๆฌๅฐๅไธบ็ฎไฝไธญๆ
๐บ๐ฆ ะะพะบะฐะปัะทะพะฒะฐะฝะพ ัะบัะฐัะฝััะบะพั โข ๐ธ๐ฆ ู ุชุฑุฌู ููุนุฑุจูุฉ โข ๐ฎ๐ฑ ืืชืืจืื ืืขืืจืืช
</div>
This library provides native Avalonia controls that mimic the utility-first, semantic class naming of DaisyUI, making it easy to build beautiful, themed UIs in Avalonia. A NuGet package is also available.
The v1.x branch has been under heavy development, but I plan to have v1.8.0 to be
the final update for it and keep it stable. Development will continue in upcoming alpha branch.
Features
- 80+ Controls: C# classes inheriting from Avalonia 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. - Localization Support: Built-in i18n with 12 languages (๐บ๐ธ ๐ฉ๐ช ๐ซ๐ท ๐ช๐ธ ๐ฎ๐น ๐จ๐ณ ๐ฐ๐ท ๐ฏ๐ต ๐ธ๐ฆ ๐น๐ท ๐บ๐ฆ ๐ฎ๐ฑ), localizable theme names, and runtime language switching. ๐ Guide
- Variants: Supports
Primary,Secondary,Accent,Ghost, etc. - Framework Support: Library targets
netstandard2.0for maximum compatibility. - Gallery App: Multi-platform demo application showcasing all controls and features (Desktop, Browser/WASM, Android, iOS).
Note: I'm looking for feedback on iOS builds, I don't have any (physical) environment to test this!
Documentation
๐ View the full documentation - Browse all controls with properties, enum values, and XAML usage examples. Also consult the Gallery's extensive example collection for code examples and comments!
Quick Start
- Install the NuGet package:
dotnet add package Flowery.NET
- Add to your
App.axaml:
<Application.Styles>
<FluentTheme />
<daisy:DaisyUITheme />
</Application.Styles>
- Use controls in your views:
xmlns:controls="clr-namespace:Flowery.Controls;assembly=Flowery.NET"
<controls:DaisyButton Content="Primary Button" Variant="Primary" />
<controls:DaisyInput Watermark="Type here" Variant="Bordered" />
<controls:DaisyThemeDropdown Width="220" />
๐ Full Installation & 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). - Hover Gallery (
DaisyHoverGallery): Image/Content gallery driven by mouse hover position. - Kbd (
DaisyKbd): Keyboard key visual style. - List (
DaisyList,DaisyListRow,DaisyListColumn): Vertical list layout with flexible row structure. Supports grow columns and wrapped content. - Number Flow (
DaisyNumberFlow): High-quality numeric display with individual digit scrolling animations. Inspired by SmoothUI. - Stat (
DaisyStat): Statistics block with Title, Value, and Description. - Table (
DaisyTable): Styled items control for tabular data. - Text Rotate (
DaisyTextRotate): Animated text that cycles through items with configurable duration and pause-on-hover. - 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 (inheritsSplitView). - 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.
Navigation
- 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.Status Indicator (
DaisyStatusIndicator): Status dot with 27 animation variants (Ping, Pulse, Ripple, Heartbeat, Orbit, Sonar, and more). Supports all theme colors and 5 sizes.Loading (
DaisyLoading): Animated loading indicators with 27 variants (extended from DaisyUI's original 6) across 4 categories:- Classic: Spinner, Dots, Ring, Ball, Bars, Infinity
- Terminal-inspired: Orbit, Snake, Pulse, Wave, Bounce
- Matrix/Colon-dot: Matrix, MatrixInward, MatrixOutward, MatrixVertical
- Special effects: MatrixRain, Hourglass, SignalSweep, BitFlip, PacketBurst, CometTrail, Heartbeat, TunnelZoom, GlitchReveal, RippleMatrix, CursorBlink, CountdownSpinner
Mask (
DaisyMask): Applies shapes (Squircle, Heart, Hexagon, etc.) to content.Mockup (
DaisyMockup): Frames for Code, Window, or Browser.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).Tooltip: Themed standard Avalonia
ToolTip.
Theme Controls
- Size Dropdown (
DaisySizeDropdown): Global size selector with localized size names and customizable options. - Theme Controller (
DaisyThemeController): Flexible toggle with multiple modes (Toggle, Checkbox, Swap, ToggleWithText, ToggleWithIcons). - Theme Dropdown (
DaisyThemeDropdown): Dropdown to select from all 35 themes. - Theme Manager (
DaisyThemeManager): Static class for programmatic theme control. - Theme Radio (
DaisyThemeRadio): Radio button for theme selection. - Theme Swap (
DaisyThemeSwap): Toggle button with animated sun/moon icons.
โจ Flowery.NET Exclusives
Beyond DaisyUI - The following features and controls are not part of the original DaisyUI CSS specification. They are unique to Flowery.NET, built natively for Avalonia, inspired by other great open source projects.
Accessibility
Controls that convey state visually include built-in screen reader support via AccessibleText:
<daisy:DaisyLoading Variant="Spinner" AccessibleText="Loading your profile" />
<daisy:DaisyStatusIndicator Color="Success" />
<daisy:DaisyProgress Value="45" AccessibleText="Upload progress" />
Supported: DaisyLoading, DaisyProgress, DaisyRadialProgress, DaisyStatusIndicator, DaisyCountdown, DaisySkeleton, DaisyRating.
Utility Controls
- Animated Number (
DaisyAnimatedNumber): Animated numeric display with slide transitions on value changes. - Button Group (
DaisyButtonGroup): new segmented button-group container for joined buttons and non-clickable parts. - Component Sidebar (
FloweryComponentSidebar): Pre-built documentation/admin sidebar with categories and search. - Contribution Graph (
DaisyContributionGraph): GitHub-style contribution heatmap (7ร53 grid) with month/day labels, tooltips, and legend. - Copy Button (
DaisyCopyButton): Copy-to-clipboard button with temporary success state feedback. - Dropdown (
DaisyDropdown): Menu-style dropdown (Popup + DaisyMenu) for action menus. - Expandable Card (
DaisyExpandableCard): Card that expands to reveal secondary content with smooth width animation. - Modifier Keys (
DaisyModifierKeys): Visualizes keyboard modifiers (Shift, Ctrl, Alt) and locks. - Number Flow (
DaisyNumberFlow): High-quality numeric display with individual digit scrolling animations. Inspired by SmoothUI. - OTP Input (
DaisyOtpInput): Multi-slot verification-code/OTP input with animated focus transitions and auto-advance. - Popover (
DaisyPopover): Popup-based popover control for rich hover/click content. - Tag Picker (
DaisyTagPicker): Multi-select chip/tag picker with add/remove icons.
Glass Effect
- Glass (
DaisyGlass): Glassmorphism/frosted effect container with multiple blur modes (Simulated, BitmapCapture, SkiaSharp GPU-accelerated).
Color Picker Suite
A complete suite rebuilt natively for Avalonia with DaisyUI styling, inspired by Cyotek's ColorPicker:
- 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. - Screen Color Picker (
DaisyScreenColorPicker): Eyedropper tool (Windows only). - Color Picker Dialog (
DaisyColorPickerDialog): Full-featured modal dialog.
Date Timeline
A horizontal scrollable date picker inspired by FadyFayezYounan's easy_date_timeline:
- Date Timeline (
DaisyDateTimeline): Scrollable date picker with selectable date items. Supports multiple header types (MonthYear, Switcher, None), sizes, disable strategies, and marked dates with tooltips. - Date Timeline Item (
DaisyDateTimelineItem): Individual date cell with day name, date number, and month. Supports selection, disable states, and marker highlights.
DaisyTabs Color Features
- Per-tab palette colors:
DaisyTabssupports a theme-independent color palette (12 fixed colors) viaTabPaletteColor, designed for end users (Purple, Indigo, Pink, SkyBlue, Blue, Lime, Green, Yellow, Orange, Red, Gray, Default). - Inline color picker: Optional tab context menu shows a two-row dot grid for quick color changes and reset (hollow dot), without leaving the tab strip.
- Semantic colors (optional): For apps that want colors to follow the active theme,
TabColorexposes the semantic Daisy colors (Primary,Success, etc.) as an alternative API.
Mask Input
- Mask Input (
DaisyMaskInput): Masked input for structured values (time, expiry date, card number, CVC) withModepresets and localized auto-watermarks.
Numeric Input
- Numeric Up/Down (
DaisyNumericUpDown): Advanced numeric input with 6 number bases (Decimal, Hex, Binary, Octal, ColorHex, IPv4). Features real-time filtering, thousand separators, prefix/suffix display.
Responsive Scaling
Automatic font scaling system for responsive UIs that adapt to window size:
- FloweryScaleManager: Opt-in automatic font scaling for all Daisy controls within a container.
- ScaleExtension: XAML markup extension for manual scaling of individual properties.
- IScalableControl: Interface for custom controls to support auto-scaling.
xmlns:services="clr-namespace:Flowery.Services;assembly=Flowery.NET"
<UserControl services:FloweryScaleManager.EnableScaling="True">
<controls:DaisyInput Label="Street" />
<controls:DaisyButton Content="Save" />
</UserControl>
<TextBlock FontSize="{services:Scale FontTitle}" />
Visual Effects
Cross-platform visual effects collection (WASM-compatible). See Effects for full documentation.
- CursorFollowBehavior: Spring-physics cursor follower element.
- RevealBehavior: Fade-in + slide animation on element attach.
- ScrambleHoverBehavior: Random character scramble on hover, resolves left-to-right.
- ScrollRevealBehavior: Viewport-aware reveal animations (triggers RevealBehavior when element enters scroll viewport).
- TypewriterBehavior: Sequential character reveal animation (typewriter effect).
- WaveTextBehavior: Infinite sine wave animation on text (supports per-character ripple).
xmlns:fx="clr-namespace:Flowery.Effects;assembly=Flowery.NET"
<Border fx:RevealBehavior.IsEnabled="True" fx:RevealBehavior.Direction="Bottom"/>
<TextBlock fx:ScrambleHoverBehavior.IsEnabled="True" Text="Hover Me!"/>
<TextBlock fx:TypewriterBehavior.IsEnabled="True" Text="Hello World"/>
Weather Widgets
Weather display widgets with animated condition icons:
- Weather Icon (
DaisyWeatherIcon): Animated weather condition icon. - Weather Card (
DaisyWeatherCard): Composite widget with current, forecast, and metrics. - Weather Current (
DaisyWeatherCurrent): Current temperature and conditions. - Weather Forecast (
DaisyWeatherForecast): Daily forecast strip. - Weather Metrics (
DaisyWeatherMetrics): UV, wind, humidity display.
Control Template Guidelines
For contributors creating or modifying control templates:
Background Border Architecture
Background borders should be siblings of content, not parents:
<Panel>
<Border x:Name="PART_Background" Background="{TemplateBinding Background}" />
<ContentPresenter Content="{TemplateBinding Content}" />
</Panel>
<Border Background="{TemplateBinding Background}">
<ContentPresenter Content="{TemplateBinding Content}" />
</Border>
Opacity Guidelines
- Never set
Opacityon containers holding text - Use separate background layers for disabled/hover states
- For disabled states, reduce opacity on
PART_Backgroundonly
Gallery App Architecture
The Gallery demo application uses a multi-platform architecture to showcase Flowery.NET controls across different platforms:
| Project | Description |
|---|---|
Flowery.NET.Gallery |
Shared library containing all UI, views, and examples |
Flowery.NET.Gallery.Desktop |
Desktop host for Windows, Linux, and macOS |
Flowery.NET.Gallery.Browser |
WebAssembly host for running in browsers |
Flowery.NET.Gallery.Android |
Android mobile app |
Flowery.NET.Gallery.iOS |
iOS mobile app (requires macOS to build) |
The shared library contains the MainView UserControl with all the demo content, while each platform host provides the entry point and platform-specific configuration. This architecture ensures the same UI runs consistently across all supported platforms.
Running the Gallery:
# Desktop (Windows/Linux/macOS)
dotnet run --project Flowery.NET.Gallery.Desktop
# Browser (WebAssembly)
dotnet run --project Flowery.NET.Gallery.Browser
# Android (requires Android SDK)
dotnet build Flowery.NET.Gallery.Android -f net9.0-android
Build & Run Scripts (PowerShell)
The scripts/ folder contains PowerShell helpers for common build and run workflows:
- Build scripts:
scripts/build_all.ps1: Builds the full solution/projectsscripts/build_desktop.ps1: Builds the Desktop gallery hostscripts/build_nuget.ps1: Builds/packaging workflow for NuGet output
- Run scripts:
scripts/run-desktop.ps1: Runs the Desktop gallery hostscripts/run-browser.ps1: Runs the Browser (WASM) gallery hostscripts/run-android.ps1: Runs/builds the Android gallery host (requires Android SDK and running emulator!)
For details and parameters, see scripts/README.md.
Technical Requirements
To use the library:
- .NET Standard 2.0 compatible framework (.NET Core 2.0+, .NET Framework 4.6.1+, .NET 5/6/7/8+)
- Avalonia UI 11.0+
To build from source:
- .NET 8.0 SDK or later
- Visual Studio 2022, JetBrains Rider, or VS Code
- Windows, macOS, or Linux
Windows SmartScreen Warning
When running the Gallery app for the first time, you may see a SmartScreen warning (app is not code-signed).
To run: Click "More info" โ "Run anyway"
Or: Right-click .exe โ Properties โ Check "Unblock" โ OK
License
MIT
Support
If you find this library useful, consider supporting its development:
Changelog
See CHANGELOG.md for version history and release notes.
Credits & References
- Avalonia UI - The cross-platform UI framework.
- DaisyUI - The original Tailwind CSS component library.
- Avalonia.Fonts.Inter - The font used in the gallery.
- Cyotek ColorPicker - Inspiration for color picker controls.
- Easy Date Timeline - Inspiration for date timeline controls.
- smoothui - Inspiration for visual effects (React/Tailwind/Framer Motion).
- @frandelfo - Multi-platform Gallery architecture (Desktop, Browser, Android, iOS).
Disclaimer: This project is not affiliated with, endorsed by, or sponsored by any of the above.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Avalonia (>= 11.3.10)
- Avalonia.Skia (>= 11.3.10)
- System.Text.Json (>= 10.0.1)
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 |
|---|---|---|
| 1.9.1 | 31 | 2/8/2026 |
| 1.9.0 | 31 | 2/7/2026 |
| 1.8.0 | 170 | 12/20/2025 |
| 1.7.2 | 203 | 12/19/2025 |
| 1.7.1 | 263 | 12/18/2025 |
| 1.7.0 | 266 | 12/18/2025 |
| 1.6.0 | 266 | 12/17/2025 |
| 1.5.1 | 249 | 12/15/2025 |
| 1.5.0 | 148 | 12/14/2025 |
| 1.4.1 | 173 | 12/13/2025 |
| 1.4.0 | 137 | 12/12/2025 |
| 1.3.1 | 423 | 12/11/2025 |
| 1.3.0 | 415 | 12/11/2025 |
| 1.2.0 | 415 | 12/10/2025 |
| 1.1.0 | 432 | 12/9/2025 |
| 1.0.9 | 424 | 12/9/2025 |
| 1.0.8 | 411 | 12/8/2025 |
| 1.0.7 | 199 | 12/7/2025 |
| 1.0.6 | 124 | 12/6/2025 |
| 1.0.5 | 197 | 12/4/2025 |
| 1.0.4 | 185 | 12/4/2025 |
| 1.0.3 | 188 | 12/4/2025 |
| 1.0.2 | 662 | 12/2/2025 |