Flowery.NET 1.9.1

dotnet add package Flowery.NET --version 1.9.1
                    
NuGet\Install-Package Flowery.NET -Version 1.9.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.NET" Version="1.9.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Flowery.NET" Version="1.9.1" />
                    
Directory.Packages.props
<PackageReference Include="Flowery.NET" />
                    
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.NET --version 1.9.1
                    
#r "nuget: Flowery.NET, 1.9.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.NET@1.9.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.NET&version=1.9.1
                    
Install as a Cake Addin
#tool nuget:?package=Flowery.NET&version=1.9.1
                    
Install as a Cake Tool

<div align="center">

๐ŸŒผ Flowery.NET

A C# port of the popular DaisyUI component library for Avalonia UI.

NuGet Downloads License Avalonia Docs X

</div>

Flowery.NET.Gallery Screenshot

<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.

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 DaisyThemeDropdown to 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.0 for 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

  1. Install the NuGet package:
dotnet add package Flowery.NET
  1. Add to your App.axaml:
<Application.Styles>
    <FluentTheme />
    <daisy:DaisyUITheme />
</Application.Styles>
  1. 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.
  • Clock (DaisyClock): Multi-mode time control with Clock, Timer, and Stopwatch modes.
  • 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.).
  • PasswordBox (DaisyPasswordBox): Themed password input with reveal toggle, labels, helper text, and icon slots.
  • 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.
  • Slide to Confirm (DaisySlideToConfirm): Drag-to-confirm interaction control with variants and auto-reset support.

Layout

  • Divider (DaisyDivider): Separation line with optional text.
  • Drawer (DaisyDrawer): Sidebar navigation with overlay (inherits SplitView).
  • Hero (DaisyHero): Large banner component.
  • Join (DaisyJoin): container that groups children (buttons/inputs) by merging their borders.
  • Patterned Card (DaisyPatternedCard): Decorative card with pattern backgrounds and corner ornaments.
  • 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.

  • Status Indicator (DaisyStatusIndicator): Status indicator with 33 variants including animation and glyph modes (battery, traffic lights, WiFi, cellular). Supports all theme colors and 5 sizes.

  • Loading (DaisyLoading): Animated loading indicators with 42 variants (extended from DaisyUI's original 6) across 6 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
    • Business: DocumentFlipOn, DocumentFlipOff, MailSend, CloudUpload, CloudDownload, DocumentStamp, DocumentReject, ChartPulse, CalendarTick, ApprovalFlow, BriefcaseSpin
    • Win95 retro: Win95FileCopy, Win95Delete, Win95Search, Win95EmptyRecycle
  • 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.
  • Product Theme Dropdown (DaisyProductThemeDropdown): Dropdown for selecting product-specific theme palettes.
  • 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.
  • Icon Text (DaisyIconText): Reusable icon + text composition control with placement, sizing, and spacing options.
  • 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: DaisyTabs supports a theme-independent color palette (12 fixed colors) via TabPaletteColor, 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, TabColor exposes 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) with Mode presets 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 Opacity on containers holding text
  • Use separate background layers for disabled/hover states
  • For disabled states, reduce opacity on PART_Background only

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/projects
    • scripts/build_desktop.ps1: Builds the Desktop gallery host
    • scripts/build_nuget.ps1: Builds/packaging workflow for NuGet output
  • Run scripts:
    • scripts/run-desktop.ps1: Runs the Desktop gallery host
    • scripts/run-browser.ps1: Runs the Browser (WASM) gallery host
    • scripts/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:

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 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. 
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
1.9.1 18 2/8/2026
1.9.0 30 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