components
library
Classes
UiActionGroupGeometry
Solved size and child slots for one action-group frame.
UiActionGroupGeometryItem
Minimal input item for testing the geometry engine without widgets.
UiActionGroupGeometrySlot
Solved physical placement for one action-group slot.
UiActionGroupGeometrySolver
Geometry-first layout engine used by the smart action renderers.
UiAdaptiveSheetScope
Presents focused content as a bottom sheet on phones and a constrained
floating surface on tablet/desktop.
UiAlert
Inline alert banner.
UiAlertDialog
A single modal alert — shadcn's AlertDialog ported.
UiAlertDialogScope
Imperative helpers for presenting UiAlertDialog .
UiAttachment
A media attachment with metadata and deterministic transfer state.
UiAttachmentGroup
Horizontally browsable attachment collection with compact spacing.
UiAvatar
Token-driven avatar primitive.
UiAvatarEntry
UiAvatarGroup
Stacked avatar group primitive.
UiBadge
Compact label surface for statuses and counts.
UiBottomTabAccessory
A contextual control that sits beside a floating bottom tab dock.
UiBottomTabBar
UiBottomTabDrawerController
Owns presentation and a persistable order of stable destination IDs.
UiBottomTabItem
One slot in a UiBottomTabBar .
UiBottomTabRailConfig
UiBottomTabScaffold
Page shell with a UiBottomTabBar and per-tab state preservation.
UiBubble
The visual message surface. Sender identity, metadata, and row alignment
belong to UiMessage .
UiBubbleGroup
UiButton
Token-driven labeled action button.
UiButtonMetrics
Shared sizing ratios used by UiButton and any other
trigger-shaped surface (selects, menu triggers, etc.).
UiCalendarEvent
A dated event rendered by Open UI calendar components.
UiCalendarTimeGrid
Token-driven, platform-neutral calendar time grid.
UiCard
Neutral card surface.
Convenience header cell with title + optional subtitle/trailing.
UiCardSkeleton
Card-shaped loading placeholder.
UiCheckbox
UiCombobox <T >
Searchable select for larger option sets.
UiCompactChoiceFilter <T >
A compact choice control whose resting surface becomes its floating menu.
UiConfirmActionGroup
Two-button confirmation group with coordinated width and label morphs.
UiConversationTile
A conversation list row with clear identity, recency and unread hierarchy.
UiDataColumn
UiDataRow
UiDataTable
UiDatePicker
Month-grid calendar with forward/back navigation and direct
month/year selection.
UiDateRange
Inclusive date range.
UiDateRangePicker
Two-step date range picker.
UiDateTimePicker
Combined date + time picker. Emits a single DateTime on change.
UiDateTimeRange
Inclusive date-time range.
UiDateTimeRangePicker
Composite picker for a date range and a time range. Emits a
UiDateTimeRange whose start uses the range's first date + start
time, and whose end uses the last date + end time.
UiDialog
Modal dialog surface.
UiDialogScope
Imperative helpers for showing a UiDialog .
UiDraggable <T extends Object >
A typed drag source for arbitrary content.
UiDragHandle
A 44px grip with focus indication, pointer dragging and semantic move actions.
Focus the handle and press Arrow Up/Down to move one position.
UiDragPreview
Shared lifted surface for custom drag feedback and sortable proxies.
UiDrawer
Drawer content wrapper. Usually presented by UiDrawerScope.show .
UiDrawerController <T >
Controls an open modal drawer.
Standard padded footer content for a structured UiDrawer .
Standard header content for a structured UiDrawer .
UiDrawerNavigator
Accessor for the drawer stack owned by the current modal drawer route.
UiDrawerScope
Imperative helpers for showing a UiDrawer overlay.
UiDrawerSection
Labelled group for use inside the structured drawer body.
UiDrawerStackController
Controls the nested stack inside a single modal drawer route.
Dropdown menu surface and trigger.
UiDropRegion <T extends Object >
Typed destination with explicit acceptance and token-driven boundary feedback.
UiEmptyState
Placeholder shown when a view has no data.
UiErrorState
Placeholder shown when loading failed.
UiExpandingBottomTabBar
Four compact icons in a surface that expands to reveal a stationary grid.
Supply stable UiBottomTabItem.id values when persisting controller.order.
UiFileUpload
File-selection / dropzone display control.
UiFilterChip
Selectable chip for compact filters and option toggles.
UiFluidBranch
A destination surface can contain several actions, independently of the
number of surfaces participating in the split.
Compatibility name for UiDropdownMenu . New code should use UiDropdownMenu.
Retains the original fixed width and outside-tap passthrough defaults.
UiFluidMorph
Experimental V13 morph. Geometry is expressed in this widget's local
coordinate space. The parent owns available space and overlay lifecycle.
The source and destination stay mounted; visible content stays interactive during motion.
UiFluidSheetAnchor <T >
Experimental: owns the source key for showUiFluidSheet and supplies the
undimmed source copy painted during the transition.
UiFluidSplit
Experimental emergence composition: a retained source and one or more
surfaces move apart with a diminishing geometric neck. Reverse the same
controller to merge them. Uses no blur, refraction, or shader.
UiFluidSurface
Paints a fluid surface while keeping its content at a stable layout size.
Use inside a Stack with finite bounds and room for the authored overshoot.
UiFluidTrigger
Accessible press/hold/release trigger. Place over the source surface, or
use as its content. The owning composition controls destination dismissal.
UiFormatAction
UiFormattedText
Renders lightweight, operator-based rich text while preserving plain source.
UiFormattedTextController
A controller that previews formatting without hiding its source operators.
UiFormattedTextMatch
UiFormattedTextParser
Stateless parser shared by display text and composing controllers.
UiFormattedTextRule
A delimiter pair and the visual treatment of the text it encloses.
UiFormatToolbar
Horizontally scrolling formatting actions sized for native touch targets.
UiFormController
Coordinates field validation and submission over UiFormSubmitController .
UiFormControllerField
A TextEditingController -backed field to track, with an optional
validator run on every edit.
UiFormErrorSummary
Visible validation errors with actions that focus the corresponding field.
UiFormFieldController <T >
State owned by UiFormController for one typed field.
Values should be immutable; use a new collection when changing selections.
UiFormFieldView <T >
Field presentation for custom controls. Bind the child's value, onChanged,
and focus node to field ; leave its own label/helper/error slots empty.
UiFormSubmitController
Gates a form's submit button behind a single canSubmit signal, so a
button doesn't read as active before the form is actually ready.
UiFormTextField
Text adapter that synchronizes edits and form resets without recreating focus.
UiIconButton
Icon-only button primitive.
UiInput
Text input component.
UiInputState
UiIntentPalette
Rest-state colors shared by intent-aware surfaces.
UiLoadingState
Placeholder shown while data is loading.
UiMarker
UiMediaGallery
Full-screen gallery chrome for images, video, documents, or custom media.
UiMediaGalleryAction
An accessible icon action in the gallery chrome.
UiMediaGalleryItem
Application-owned media content displayed by UiMediaGallery .
UiMediaPreview
Generic media surface with an image and a centered fallback.
Bridges a held gesture from an anchor into its separately mounted popup.
Attach to one stack at a time; the anchor forwards its long-press updates.
Labelled cluster of items; renders an optional caption + items.
Single actionable row in the menu.
Base type for anything that can appear in a UiDropdownMenu .
Horizontal separator between groups/items.
Shortcut display widget (kept alongside items, not an item itself).
Bounded menu stack. Submenus morph from their selected row,
covering a retained parent at parentScale . The caller owns root overlay
placement/dismissal; Back and Escape pop one nested level.
Long-press / hover submenu. Rendered inline as a row that opens a
nested menu on tap.
Menu-specific fluid presentation: stable content is revealed by the moving
outline, while visual separation returns to the parent during contraction.
Unlike a standalone button morph, the compact endpoint owns no separate fill.
UiMessage
A conversation row that owns identity, alignment, metadata, and actions.
UiMessageGroup
UiMessageQueueBadge
Compact count displayed over the live-edge control for queued arrivals.
UiMessageReceipt
A compact timestamp and accessible delivery receipt, with optional recovery.
UiMessageReplyReturnButton
Returns to a message whose quoted reply was followed elsewhere.
UiMessageScrollControls
Animated conversation scroll controls inspired by compact messaging UIs.
UiMessageScroller
A chat viewport that follows new content only while the reader is at the
live edge and preserves their position when older items are prepended.
UiMessageScrollerController
Imperative access to a UiMessageScroller 's live-edge state.
UiMessageScrollerItem
UiMessageScrollToBottomButton
Circular control that returns a conversation to its live edge.
UiMessageUtilityAction
UiMessageUtilityStrip
A compact, keyboard-dock-friendly command surface for selected messages.
UiMultiSelect <T >
Controlled searchable multi-selection with removable values and lazy options.
UiNavigationCountBadge
Standard numeric badge used by navigation surfaces.
UiNavigationDrawer
Navigation-specific drawer composition with the same region model as
UiNavigationRail : primary destinations in the body and persistent
actions/destinations in the footer.
UiNavigationDrawerAction
Non-selectable command rendered by UiNavigationDrawer .
UiNavigationDrawerDestination
Selectable destination rendered by UiNavigationDrawer .
UiNavigationRail
Floating navigation rail for tablet/desktop shells.
UiNavigationRailAction
UiNavigationRailAvatar
UiNavigationRailDestination
UiNavigationRailGeometry
Size and spacing configuration for UiNavigationRail .
UiOtpInput
A single accessible text field rendered as grouped verification-code slots.
UiPagedBottomTabBar
A floating bottom dock that browses destinations in small, stable sets.
UiPersistentSheet
A non-modal, persistent bottom sheet that keeps the host body
visible and interactive — the design used by Apple Maps / Google
Maps filter panels and modern search sheets.
UiPersistentSheetController
Controls a UiPersistentSheet . Exposes imperative snap navigation
and observes snap changes via ChangeNotifier .
UiRadio <T >
UiRadioGroup <T >
Controlled, accessible group of radio options.
UiRadioGroupOption <T >
One selectable item rendered by UiRadioGroup .
UiRating
Star (or configurable-icon) rating input.
UiRefresher
Pull-to-refresh behavior for any vertical, non-reversed Scrollable .
UiRefresherController
Imperative companion for UiRefresher .
UiRefreshIndicator
Token-driven default indicator used by both refresher variants.
UiRefreshIndicatorDetails
Immutable input passed to a UiRefreshIndicatorBuilder .
UiReorderableList <T >
Controlled vertical sorting with stable keys, auto-scroll and keyboard moves.
UiReplyPreview
The same quoted-message vocabulary in history and above a composer.
UiResponsiveNavigationScaffold
Navigation shell that picks a different chrome strategy per
breakpoint.
UiSelect <T >
Generic dropdown select.
UiSelectOption <T >
Single item in a UiSelect .
UiSelectState <T >
UiSheet
Canonical sheet surface — use directly inside UiSheetScope.show or
drop into a route body for non-modal presentations.
UiSheetBody
Semantic wrapper used when sheet body is split across helpers.
UiSheetController <T >
Controls an open sheet. Exposed via UiSheetScope.show so callers
can dismiss the sheet from inside the sheet body.
Action row pinned to the bottom of the sheet.
UiSheetHandle
Default drag-handle affordance rendered at the top of UiSheet s.
Pre-composed header with optional title/subtitle and trailing slot.
UiSheetScope
Imperative helpers for presenting a UiSheet as a modal overlay.
UiSheetSnap
Snap-point model for UiSheet presentation.
Persistent navigation surface for tablet/desktop layouts.
Labelled cluster of items; renders an optional caption above rows.
Clickable sidebar row.
Shared node contract for sidebar children.
Static section with an optional header + arbitrary body widget.
Horizontal separator between groups/sections.
UiSkeleton
Shared loading placeholder surface and animation scope.
UiSkeletonBar
Rectangular loading mark for text, icons, chips, and media blocks.
UiSkeletonText
Stack of text-line skeleton bars with optional per-line widths.
UiSlider
A single-value range slider (min/max/value/onChanged) — think volume or
brightness, not a two-handle range selector.
UiSliverDataTable
A table that participates directly in an ancestor CustomScrollView .
UiSliverRefresher
Sliver-native refresh control for a CustomScrollView .
UiSmartActionGroup
Experimental inline action group for replacing "More" sheets with morphing
buttons.
UiSmartActionGroupAction
One command rendered by UiSmartActionGroup .
UiSwitch
UiTab
Tab list item.
UiTabs
Shadcn-style segmented tab list.
UiTabViews
Cross-fade + subtle upward slide between tab panels.
UiTextSelectionToolbar
Widgets-layer port of Flutter's Material text selection toolbar: the
floating pill with text actions that Android users expect after a long
press. iOS uses SystemContextMenu ; this covers every platform where the
system menu is unavailable without pulling Material into the kit.
UiTimeGridPicker
Compact column-based time picker inspired by popover time controls.
UiTimeline
A grouped, reverse-chronological activity timeline.
UiTimelineActor
A person or system identity associated with a timeline event.
UiTimelineChange
A before/after value shown within a timeline event.
UiTimelineEvent
Immutable content model for one UiTimeline entry.
UiTimelineTag
A compact label attached to a timeline event.
UiTimePicker
Simple hour/minute wheel picker (24-hour clock).
UiTimePickerField
Read-only form trigger that opens UiTimeGridPicker in an anchored overlay.
UiTimeRange
Inclusive time range.
UiTimeRangePicker
Pair of UiTimeGridPicker s for a start/end time range.
UiTimeValue
24-hour clock value (hour 0..23, minute 0..59).
UiToast
Sonner-like toast surface.
UiToastAction
Optional action button attached to a toast.
UiToaster
Sonner-like toaster.
UiToastOverlay
Back-compat shim for the older API.
UiTooltip
UiTypingIndicator
A compact, WhatsApp-inspired incoming bubble for active composition.
UiTypingUser
A participant currently composing a chat message.
UiUnreadMessagesMarker
A quiet, semantic boundary between previously seen and unread messages.
UiWavatar
A deterministic, locally rendered abstract avatar.
UiWavatarCharacteristics
Optional context that gently directs UiWavatar 's generated geometry.
UiWavatarParticipant
One distinct identity within a multi-participant UiWavatar .
Functions
buildUiFormattedTextSpan (BuildContext context , String source , {required List <UiFormattedTextRule > rules , required TextStyle baseStyle , bool showOperators = false , TextStyle ? operatorStyle })
→ TextSpan
selectedTime (DateTime d )
→ UiTimeValue
Imperative helper: shows a time picker inside a modal sheet and
resolves with the chosen UiTimeValue , or null on cancel.
showUiFluidSheet <T > (BuildContext context , {required GlobalKey <State <StatefulWidget > > sourceKey , required Widget builder (BuildContext , UiSheetController <T > ), WidgetBuilder ? sourceBuilder , UiSheetSnap snap = const UiSheetSnap.fit() , double ? maxWidth , BorderRadius ? sheetBorderRadius , BorderRadius ? sourceBorderRadius , Color ? surfaceColor , Color ? sourceColor , Color ? scrimColor , bool barrierDismissible = true , bool isDismissible = true , UiFluidRouteMotion motion = const UiFluidRouteMotion() , Duration transitionDuration = const Duration(milliseconds: 612) , Duration reverseTransitionDuration = const Duration(milliseconds: 480) })
→ Future <T? >
Experimental: presents a modal sheet that emerges from the widget under
sourceKey with the kit's fluid choreography instead of sliding up.
Typedefs
UiAsyncFieldValidator <T >
= Future <String ? > Function(T value )
UiBottomTabOverflowDrawerBuilder
= Widget Function(BuildContext context , UiDrawerController <void > controller )
UiBottomTabRailBuilder
= Widget Function(BuildContext context , UiBottomTabRailConfig config )
UiCalendarTimeLabelBuilder
= String Function(int hour )
UiComboboxFilter <T >
= bool Function(UiSelectOption <T > option , String query )
UiControlledDrawerBuilder <T >
= Widget Function(BuildContext context , UiDrawerController <T > controller )
UiDataRowBuilder
= UiDataRow Function(BuildContext context , int index )
UiDatePredicate
= bool Function(DateTime date )
Predicate the picker consults before accepting a date — return
true for dates that should be non-selectable (e.g. weekends).
UiDropRegionBuilder
= Widget Function(BuildContext context , UiDropState state )
UiFieldValidator <T >
= String ? Function(T value )
Compatibility name for UiMenuGestureController .
Compatibility name for UiMenuStack .
Compatibility name for UiMenuTransition .
UiFormattedTextStyleBuilder
= TextStyle Function(BuildContext context , TextStyle baseStyle )
UiFormFieldValidator
= String ? Function(String value )
Validates a single form field's current text. Returns null when valid,
otherwise an error message — same shape as UiInput.validator, so
factories like an emailField(msg) helper work as either.
UiInputValidator
= String ? Function(String value )
UiNavigationRailLeadingBuilder
= Widget Function(BuildContext context , Color foreground )
UiRefreshErrorCallback
= void Function(Object error , StackTrace stackTrace )
UiRefreshIndicatorBuilder
= Widget Function(BuildContext context , UiRefreshIndicatorDetails details )
UiReorderableItemBuilder <T >
= Widget Function(BuildContext context , T item , int index , Widget handle )
The builder receives a fully wired handle; place it beside any custom content.
UiResponsiveNavigationBuilder
= Widget Function(BuildContext context , UiNavigationFormFactor formFactor )
Builder signature for responsive navigation.
UiSelectOptionBuilder <T >
= Widget Function(BuildContext context , UiSelectOption <T > option , bool selected )
Builder for the dropdown option row.
UiSelectOptionLabelBuilder <T >
= Widget Function(BuildContext context , UiSelectOption <T > option , bool selected )
Builder for the label slot inside an option row — replaces the
default Text(option.label) while keeping the row's default chrome
(padding, hover background, selected check).
UiSelectValidator <T >
= String ? Function(T? value )
UiSelectValueBuilder <T >
= Widget Function(BuildContext context , UiSelectOption <T > ? selected )
Builder for the value shown inside the closed trigger.
UiTimelineDateLabelBuilder
= String Function(DateTime date )
UiTimelineLoadMoreLabelBuilder
= String Function(int remaining )
UiTimelineTimeLabelBuilder
= String Function(DateTime date )
UiTypingLabelBuilder
= String Function(List <UiTypingUser > users )
Builds the visible and spoken typing-state label.
UiUnreadMarkerBuilder
= Widget Function(BuildContext context )