Flowery.NET Component Library

Flowery.NET is an Avalonia UI component library inspired by DaisyUI.

It provides styled controls for building modern desktop applications.

Quick Start

Add the namespace to your AXAML:

xmlns:controls="clr-namespace:Flowery.Controls;assembly=Flowery.NET"

Controls Overview

Control Description
DaisyAccordion DaisyAccordion is an ItemsControl for stacked, single-open sections built from DaisyAccordionItem. It offers two indicator variants (arrow or plus) and enforces one expanded item at a time through the ExpandedIndex property. Use it to organize FAQ-style content or any list of collapsible panels where only one section should stay open.
DaisyAlert DaisyAlert is a compact callout for inline status messages. It provides 4 semantic variants (Info, Success, Warning, Error), optional icon content, and a simple two-column layout that keeps messages readable without dominating the page. Use it for persistent notices inside forms, cards, or panels; pair with DaisyToast for transient alerts.
DaisyAnimatedNumber DaisyAnimatedNumber is a numeric text display that animates value changes with a vertical slide transition. It's useful for counters, KPIs, and any UI where you want motion feedback when the number updates.
DaisyAvatar DaisyAvatar renders user/profile images or initials with 5 sizes, 3 shapes, optional status dot, and ring accent colors. It accepts any content (images, icons, initials) and can show placeholders while real media loads. Pair with DaisyAvatarGroup to overlap multiple avatars.
DaisyAvatarGroup DaisyAvatarGroup arranges multiple DaisyAvatar items in an overlapping row. It uses a custom panel that offsets each avatar by a configurable overlap while keeping earlier items on top (higher z-order). Ideal for showing participants, teams, or contributors in a compact space.
DaisyBadge DaisyBadge is a compact label for counts, statuses, or tags. It supports 10 color variants, 4 size presets, and an outline mode for low-emphasis contexts. Works standalone or nested inside other controls (e.g., buttons, lists) to highlight small bits of information without overwhelming the layout.
DaisyBreadcrumbs DaisyBreadcrumbs shows a horizontal trail of navigation steps. It auto-builds DaisyBreadcrumbItem containers, applies separators between items, and marks only the trailing item as non-clickable. Supports custom separators, icons, command execution on intermediate items, and horizontal scrolling when content overflows.
DaisyButton DaisyButton delivers DaisyUI-styled actions with 11 color variants, 4 visual styles, 5 sizes, and shape modifiers for wide, block, square, or circular buttons. It supports active state scaling, optional shadows, and link/ghost modes for text-like actions. Use it for everything from primary calls-to-action to subtle icon buttons.
DaisyButtonGroup DaisyButtonGroup arranges multiple segments (typically Button / ToggleButton) into a single joined control with shared borders and unified rounding, similar to shadcn's “Button Group”.
DaisyCard DaisyCard provides a panel for grouping content with padding, rounded corners, and optional glass effects. It supports 3 layout variants (Normal, Compact, Side), configurable body/title typography, and an opt-in glassmorphism stack with tint/blur controls. Use it for dashboards, feature tiles, or content groupings; compose headers, bodies, and action rows inside.
DaisyCarousel DaisyCarousel is a slide container with built-in previous/next buttons and directional slide transitions. It uses TransitioningContentControl under the hood to animate between items and flips the animation direction based on which arrow you press. Perfect for small galleries or showcasing featured items without autoplay.
DaisyChatBubble DaisyChatBubble renders chat-style message bubbles with alignment control, optional avatar image, header/footer text, and 9 color variants. IsEnd flips the bubble to the right side and mirrors the tail rounding for responder messages. Use it for conversation threads, comments, or inline messaging UIs.
DaisyCheckBox DaisyCheckBox is a styled checkbox with 9 color variants and 5 size presets. It uses a filled box with a checkmark when checked and inherits Avalonia's standard IsChecked/IsThreeState behavior. Use variants for semantic meaning and sizes to match surrounding controls.
DaisyCollapse DaisyCollapse is an Expander-based container for revealing content under a clickable header. It offers Arrow and Plus indicator variants with a 0.2s rotation animation, uses configurable padding/corners from the theme, and hides content when collapsed. Ideal for short disclosures, FAQs, or inline details.
DaisyColorEditor DaisyColorEditor is a comprehensive color editing control that combines RGB and HSL sliders with numeric inputs and a hex color field. It provides precise color manipulation through multiple input methods, making it ideal for professional color selection interfaces.
DaisyColorGrid DaisyColorGrid is a grid control for displaying and selecting colors from predefined or custom palettes. It supports multiple built-in palettes (Named Colors, Office 2010, Paint, Web Safe), configurable cell sizes, and a separate custom colors section for user-defined colors.
DaisyColorPickerDialog DaisyColorPickerDialog is a comprehensive color picker dialog that combines all color picker components into a single, professional interface.
DaisyColorSlider DaisyColorSlider is a slider control for selecting individual color channel values. It supports 7 color channels (RGB + Alpha + HSL) with automatic gradient rendering and a draggable thumb indicator. The slider displays a visual gradient representing the channel's range and supports both horizontal and vertical orientations.
DaisyColorWheel DaisyColorWheel is a circular color wheel control for selecting hue and saturation values in the HSL color space. It renders a full-spectrum color wheel with a draggable selection marker, allowing intuitive color picking through mouse interaction. The wheel displays colors at a configurable lightness level.
DaisyContributionGraph DaisyContributionGraph is a GitHub-style contribution heatmap graph (7 rows × 53 weeks). Provide day entries via Contributions, and the control renders a compact year overview with optional month/day labels, hover tooltips, and a “Less/More” legend.
DaisyCopyButton DaisyCopyButton is a DaisyButton that copies text to the clipboard on click and briefly switches to a success state. It's ideal for “copy invite link”, “copy token”, and similar flows where immediate feedback matters.
DaisyCountdown DaisyCountdown is a templated numeric timer that can show live clock units (hours/minutes/seconds) or run a countdown/looping counter. It supports 1–3 digit formatting, configurable tick interval, looping from a custom value, and raises CountdownCompleted when a non-looping countdown hits zero. Defaults to a monospace font for stable width.
DaisyDateTimeline DaisyDateTimeline is a horizontal scrollable date picker inspired by FadyFayezYounan's easy_date_timeline package. It displays dates in a horizontal strip where each date appears as a card showing the day name, day number, and month. Perfect for booking systems, scheduling apps, calendars, and any UI requiring date selection from a visible range.
DaisyDateTimelineItem DaisyDateTimelineItem represents a single date card within the DaisyDateTimeline control. While typically auto-generated by the parent container, understanding its properties helps with custom styling and advanced scenarios.
DaisyDiff DaisyDiff is a before/after comparison control with a draggable grip. It overlays Image1 atop Image2 and clips the top layer based on Offset (0–100%). Users can drag the grip horizontally to reveal more or less of each side; layout adjusts automatically on resize.
DaisyDivider DaisyDivider separates content with a line that can run horizontally (default) or vertically (Horizontal=True). It supports 9 color options, start/end placement to hide one side of the line, optional inline content, and adjustable margins.
DaisyDock DaisyDock arranges action buttons in a pill-shaped bar, similar to a bottom navigation dock. It supports 5 sizes, optional auto-selection that applies the dock-active class, and raises an ItemSelected event when a button is clicked. Commonly used for app bars or compact nav strips.
DaisyDrawer DaisyDrawer wraps Avalonia's SplitView to create a sidebar drawer. Defaults to an inline drawer on the left with a 300px open width and no compact pane. The template includes a slide-in animation and optional overlay support for overlay mode. Use it to host navigation or settings panels that toggle in/out of view.
DaisyDropdown DaisyDropdown is a lightweight dropdown menu control built on a Popup. It displays a trigger area with a placeholder/selection, and shows a menu (via DaisyMenu) when opened. Use it for compact menu-style pickers and small action lists.
DaisyExpandableCard DaisyExpandableCard is a versatile card component that can reveal a secondary content area when triggered. It is ideal for "Showcase" or "Detail" views where initial high-level information is presented, and additional details are revealed on demand (e.g., clicking a "Learn More" or "Play" button).
DaisyFab DaisyFab is a Floating Action Button container with built-in trigger and child action buttons. It supports Vertical stacking or Flower fan-out layouts, auto-closes when an action is clicked, and lets you customize trigger content, size, and variant. Ideal for exposing a small set of secondary actions from a single FAB.
DaisyFileInput DaisyFileInput is a button-styled file selector that displays a “Choose File” affordance with the current file name beside it. It supports DaisyButton variants, size presets, and a customizable FileName placeholder. Use it when you need a themed file picker entry point; wire it up to your file dialog logic in code-behind.
DaisyGlass DaisyGlass is a frosted-glass container with multiple blur strategies: simulated gradients, bitmap capture, or SkiaSharp GPU blur. It exposes tint/opacity controls, saturation, reflection parameters, and a toggle for real backdrop capture. Use it to create translucent panels over imagery or colorful backgrounds.
DaisyHero DaisyHero is a full-width banner container for impactful headlines. It provides padding, a large minimum height, and centers its content over a background color or image you provide. Use it for marketing hero sections, page intros, or prominent callouts.
DaisyHoverGallery DaisyHoverGallery displays one item at a time from an item collection, switching the visible item based on horizontal pointer position. It optionally renders vertical divider lines to hint at each region. Great for “hover to preview” galleries or swatches without clicks.
DaisyIndicator DaisyIndicator overlays a badge on top of any content (often an icon or card). You provide the main Content and a Badge slot; the badge is positioned via alignment properties and offset with a half-size translate to sit on the corner. Use it for notification dots, counts, or status chips.
DaisyInput DaisyInput is a styled TextBox with 10 variants and 4 size presets. It supports bordered, ghost, filled, and semantic colored borders, plus labels, helper text, icons, and inner content slots. Defaults to a padded, rounded text field that matches DaisyUI forms.
DaisyJoin DaisyJoin groups adjacent controls into a seamless, connected set by trimming internal corners and overlapping borders. It works horizontally by default and supports vertical orientation. Ideal for segmented buttons, grouped inputs, or stacked radio/button groups.
DaisyKbd DaisyKbd renders keyboard keycaps for inline hints (e.g., shortcuts). It provides 5 size presets, monospace text, a subtle 3D border, and centered content. Use it to display keys like Ctrl, Shift, or Cmd in docs and tooltips.
DaisyList DaisyList is a vertical list container with row and column primitives for structured content. DaisyListRow uses a custom panel that can designate a grow column and wrap specific columns onto new lines. Use it for media lists, stats rows, or mixed text/icon layouts with consistent spacing.
DaisyLoading DaisyLoading provides animated loading indicators with 27 different animation styles, 5 size options, and 9 color variants. The control includes standard DaisyUI animations, creative terminal-inspired variants, Matrix/retro variants, and unique special effect variants. All animations scale properly across all sizes using Viewbox-based rendering.
DaisyMask DaisyMask clips its content to preset shapes: squircle, heart, hexagon, circle, square, diamond, or triangle. It scales vector paths to the control's bounds on arrange, making it easy to mask images or backgrounds into decorative silhouettes.
DaisyMaskInput DaisyMaskInput is a MaskedTextBox styled like DaisyInput, intended for structured input such as times, dates, IDs, and payment details. It supports the same Daisy input API (variants, sizes, labels, helper text, and icons) and adds masked-editing via the built-in Mask property.
DaisyMenu DaisyMenu is a styled ListBox for navigation menus. It supports vertical or horizontal layout, size presets, and customizable active colors for selected items. Submenus can be nested via another DaisyMenu or Expander. Use it for sidebars, nav bars, and contextual menus that need DaisyUI styling.
DaisyMockup DaisyMockup frames content in simulated shells: Code, Window, or Browser. It provides the chrome (dots, toolbar/address bar) and padding so you can showcase code, UI previews, or pages in a themed wrapper.
DaisyModal DaisyModal is an overlay dialog container with backdrop and configurable corner radii. It toggles visibility via IsOpen and centers its content with a max width of 500px, default padding, and drop shadow. Use it for confirmations, forms, or focused flows that require blocking UI beneath.
DaisyModifierKeys A visual indicator that displays the current state of keyboard modifier keys (Shift, Ctrl, Alt) and lock keys (Caps Lock, Num Lock, Scroll Lock). Automatically syncs with the OS keyboard state.
DaisyNavbar DaisyNavbar is a top navigation bar with optional start, center, and end slots. It provides padding, corner radius, and an optional shadow. If no slots are set, it renders its Content as a simple fallback. Use it for headers, app bars, or hero-top navigation.
DaisyNumberFlow > Added in v1.7.1
DaisyNumericUpDown > Added in v1.0.8
DaisyOtpInput DaisyOtpInput is an OTP / verification code input composed of multiple single-character slots. It features animated focus states, auto-advance, backspace support, and digit-only filtering. It is designed for high-fidelity "Verify Code" screens with support for grouping (separators) and varying sizes.
DaisyPagination DaisyPagination renders joined page buttons with support for numeric and non-numeric items (prev/next/ellipsis). It tracks the current page, toggles IsActive on page items, and raises PageChanged when a numeric item is clicked. Orientation and size presets let you use it horizontally or vertically.
DaisyPopover DaisyPopover is a lightweight popover control that hosts content inside a Popup anchored to a trigger. It's useful for rich tooltips, small forms, contextual menus, and “more actions” surfaces.
DaisyProgress DaisyProgress is a styled progress bar with 8 color variants, 4 size presets, and indeterminate support. It inherits ProgressBar behavior for Value, Minimum, Maximum, and IsIndeterminate, using theme colors for the indicator fill.
DaisyRadialProgress DaisyRadialProgress is a circular progress indicator with 8 color variants, 3 size presets, and configurable stroke thickness. It inherits RangeBase for Minimum, Maximum, and Value, converting the range to a 0–360° sweep. Shows a percentage label by default.
DaisyRadio DaisyRadio is a styled RadioButton with 8 color variants and 5 size presets. It shows a filled inner circle when checked and supports standard radio grouping via GroupName. Use variants for semantic meaning or brand alignment in forms and option groups.
DaisyRange DaisyRange is a styled slider with 8 color variants, 4 size presets, and customizable thumb/track colors. It exposes thumb size and optional progress fill properties while inheriting standard Slider behavior for Minimum, Maximum, and Value.
DaisyRating DaisyRating is a star rating control built on RangeBase. It supports precision modes (full/half/0.1), 3 size presets, and respects Minimum/Maximum/Value (default 0–5).
DaisyScreenColorPicker DaisyScreenColorPicker is an eyedropper tool that allows picking colors from anywhere on the screen using a click-and-drag interaction. Unlike traditional color pickers that require clicking to start and clicking again to select, this control uses a more intuitive drag gesture: click and hold to start, drag anywhere on screen while watching the live color preview, then release to capture the color.
DaisySelect DaisySelect is a styled ComboBox with 9 variants and 4 size presets. It provides a chevron toggle, placeholder text, and themed dropdown. Use it for single-select dropdowns that need DaisyUI styling.
DaisySkeleton DaisySkeleton provides loading placeholders with a pulsing animation. It can render as a block (default) or animate text color when IsTextMode=True. Use it to indicate content is loading for avatars, text lines, cards, or any element you want to reserve space for.
DaisyStack DaisyStack displays children in a stacked arrangement with optional navigation. It inherits from ItemsControl so children overlap in a Grid panel. In static mode (default), theme styles apply Z-index, translation, scale, and opacity per child order creating a deck-of-cards effect. When navigation is enabled, only one item is visible at a time with animated transitions.
DaisyStat DaisyStat displays a metric with title, value, optional description, figure (icon/media), and action slot. DaisyStats groups multiple stats horizontally or vertically, adding separators between items. Variants color the value text; DescriptionVariant colors the description independently.
DaisyStatusIndicator DaisyStatusIndicator shows a status dot with 27 animation variants. It supports 9 colors and 5 sizes, making it suitable for online/offline markers, alerts, or activity indicators.
DaisySteps DaisySteps renders a sequence of step items with lines and circles. It supports horizontal or vertical layouts, 5 sizes, colored states per step, and an SelectedIndex to mark completed/active steps. Each DaisyStepItem can show custom text or icons via Content/DataContent.
DaisySwap DaisySwap is a toggle that swaps between OnContent, OffContent, and optional IndeterminateContent. It supports transition effects (none, rotate, flip) to animate the content change. Use it for icon toggles, play/pause, theme switches, or stateful actions.
DaisyTable DaisyTable provides a styled table layout with header, body, and footer sections plus row/cell primitives. It supports zebra striping, pinned headers/columns (via the template), row active/hover states, and size presets that adjust padding and font size. Use DaisyTableHead, DaisyTableBody, and DaisyTableFoot to structure content; rows/cells handle layout and styling.
DaisyTabs DaisyTabs is a styled TabControl with four header variants (None, Bordered, Lifted, Boxed) and size presets. It uses a WrapPanel for tab headers and supports standard tab behaviors (SelectedIndex, Items, TabItem content).
DaisyTagPicker DaisyTagPicker is an organized tag selection component inspired by "Animated Tags". It separates selected tags into a distinct, bordered area with "remove" icons, while keeping available tags in a separate list with "add" icons.
DaisyTextArea DaisyTextArea is a multiline variant of DaisyInput. It inherits all input variants/sizes/properties, sets AcceptsReturn/AcceptsTab=True, and enables TextWrapping. It additionally supports textarea-specific features like character counters, auto-growing, and action buttons.
DaisyTextRotate DaisyTextRotate cycles through its items with fade transitions, auto-advancing on a timer. It supports custom duration, per-transition timing, easing, pause-on-hover, and manual pausing. Ideal for rotating taglines or small sets of text snippets.
DaisyThemeController DaisyThemeController is a toggle-based switch for applying Daisy themes via DaisyThemeManager. It supports multiple display modes (toggle, checkbox, swap, text/icon variants) and syncs IsChecked with the current theme. Switching updates CheckedTheme/UncheckedTheme and can auto-adopt new themes.
DaisyThemeDropdown DaisyThemeDropdown is a ComboBox listing available themes from DaisyThemeManager. It previews theme colors in a 2×2 dot grid and applies the selected theme. It syncs selection with the current theme when themes change externally.
DaisyThemeManager DaisyThemeManager is the central theme loader/applicator for the 35 built-in DaisyUI themes. It tracks available themes, applies palette ResourceDictionaries, updates Avalonia RequestedThemeVariant, and notifies listeners via ThemeChanged. Helpers expose current/alternate theme names and light/dark metadata.
DaisyThemeRadio DaisyThemeRadio is a theme-selecting RadioButton. When checked, it applies its ThemeName via DaisyThemeManager. It can render as a standard radio or styled button (Mode=Button) and supports Daisy size presets. It syncs checked state when themes change externally.
DaisyThemeSwap DaisyThemeSwap is a themed variant of DaisySwap for toggling light/dark (or any two) themes. It defaults to a rotate transition and keeps IsChecked in sync with the current theme's light/dark status. Clicking applies LightTheme or DarkTheme via DaisyThemeManager.
DaisyTimeline DaisyTimeline lays out timeline items horizontally or vertically. Each DaisyTimelineItem can show start/end content (labels), an optional middle icon, lines before/after, boxed styles, and active states. Supports compact mode and icon snapping for consistent alignment.
DaisyToast DaisyToast is a simple toast container (ItemsControl) that stacks toast items such as DaisyAlert. You control its screen position via alignment and offset properties. Place it in an overlay/top layer to float above other content; set ZIndex accordingly.
DaisyToggle DaisyToggle is a styled ToggleSwitch with 8 color variants and 4 size presets. It offers customizable thumb size via TogglePadding (knob margin) and uses smooth knob animation on state changes. Use it for binary on/off controls.
DaisyWeatherCard DaisyWeatherCard is a flexible container that combines multiple weather display components. You can show/hide sections as needed and either bind data manually or provide an IWeatherService implementation for automatic fetching.
DaisyWeatherCurrent DaisyWeatherCurrent is a standalone widget for showing the current weather state. It features a large animated weather icon, prominent temperature display, and supporting information like "feels like" and sun times.
DaisyWeatherForecast DaisyWeatherForecast is an ItemsControl that renders a row of forecast cards. Each card shows the day name, an animated weather icon, and the temperature range. Ideal for showing 5-7 day forecasts.
DaisyWeatherIcon Animated weather condition icon with unique animations per weather type. Supports 21 weather conditions with condition-appropriate animations that can be toggled on/off.
DaisyWeatherMetrics DaisyWeatherMetrics shows supplementary weather data in a structured grid. Each metric displays a label, icon, current value, and a progress bar showing the value relative to a maximum.

Helper Classes

Class Description
ColorCollection ColorCollection is a collection class for managing colors with support for predefined palettes. It implements IList and provides factory methods for creating standard color palettes like Named Colors, Office 2010, MS Paint, Web Safe, and custom grayscale gradients.
DaisyAccessibility A static helper class providing accessibility utilities for Daisy controls. It simplifies setting up screen reader support across all controls.
DaisyPaginationItem A button control representing a single page in a DaisyPagination control. This is a helper class typically created automatically by the parent pagination control.
DaisySizeDropdown A dropdown control for selecting a global size (DaisySize) that affects (almost) all Flowery.NET controls.
FloweryComponentSidebar FloweryComponentSidebar is a navigational sidebar composed of collapsible categories and clickable items. It provides built-in search filtering, a routed ItemSelected event, optional badges per item, and persistence of expanded state/last selection to local app data. You must supply your own Categories collection - the control initializes with an empty collection.
FloweryResponsive FloweryResponsive provides responsive layout functionality via attached properties. It calculates responsive widths based on available container space and exposes standard breakpoint constants for consistent responsive behavior across your app.
FloweryScaleConverter Flowery.NET provides two approaches for responsive scaling based on window size:
FloweryScaleManager Opt-in automatic font scaling for Daisy controls based on window size. Set EnableScaling="True" on any container to make all child Daisy controls automatically scale their fonts as the window resizes.
FlowerySizeManager Static service for global size management across all Daisy controls. Provides discrete size tiers (ExtraSmall to ExtraLarge) that all controls respond to simultaneously.
HslColor HslColor is a struct representing colors in the HSL (Hue, Saturation, Lightness) color space. It provides seamless conversion between HSL and RGB color spaces, making it essential for color picker controls that need intuitive color manipulation.

Common Patterns

Shared Enums

DaisyColor - Theme colors used across many controls:
Default, Primary, Secondary, Accent, Neutral, Info, Success, Warning, Error
DaisySize - Size variants:
ExtraSmall, Small, Medium (default), Large, ExtraLarge
DaisyPlacement - Position options:
Top, Bottom, Start, End

Control-Specific Enums

Theming

Use DaisyThemeManager to switch themes:

DaisyThemeManager.ApplyTheme("dracula");
Light themes: acid, autumn, bumblebee, cmyk, corporate, cupcake, emerald, fantasy, garden, lemonade, light, lofi, nord, pastel, retro, valentine, winter, wireframe Dark themes: aqua, black, business, coffee, cyberpunk, dark, dim, dracula, forest, halloween, luxury, night, sunset, synthwave