Skip to content

Widget reference

This reference covers every widget exported by the bundled catalog, plus the core layout, text, async, and input primitives most apps reach for. Most pages embed the real widget running live in your browser; every page’s API tables are generated from the current Dart source.

  • TextInput — A single-line editor with selection, clipboard, history, and completion support.
  • TextArea — A multiline editor with selection, clipboard, paste, and agent-editable semantics.
  • Button — A focusable action button; activate with Enter/Space.
  • Checkbox — A controlled boolean input; toggle it with Enter or Space.
  • Toggle — A compact controlled on/off toggle.
  • Switch — An accent-tinted controlled switch for prominent settings.
  • Radio — A controlled single choice within a group of radio inputs.
  • RadioGroup — A group of radio choices: the arrow keys move the selection, and each option is its own Tab stop.
  • Select — A single-choice dropdown; open it with Enter and pick with ↑/↓.
  • MultiSelect — A keyboard-navigable list of independently checkable options.
  • RangeSlider — A two-handle slider for picking a low/high range.
  • Stepper — A compact number spinner: ↑/↓ or +/− step the value, PageUp/PageDown take large steps, and typed digits set it directly.
  • NumberInput — A numeric text field that rejects non-numeric keys and clamps to min/max when you press Enter.
  • PasswordInput — A masked text field for secrets; Ctrl+R shows or hides the text.
  • Autocomplete — A text field that filters a list of options as you type.
  • FileBrowser — A keyboard-driven directory browser with filtering, copy, and semantic rows; reads the local disk or any FileSource.
  • FilePicker — A one-directory-at-a-time picker: arrows move, Enter opens a folder or picks a file.
  • ColorPicker — A swatch grid; move with the arrow keys, choose with Enter.
  • DatePicker — A month calendar; arrow keys move days, PageUp/Down change month.
  • CommandButton — A button that resolves its label, availability, and action from an application command.
  • CompletionTextInput — A text field with inline completion suggestions as you type.
  • Form — A composable validation and submission boundary that leaves values and layout in application code.
  • FormField — One validated value with automatic control styling, semantics, and first-invalid focus.
  • FormController — An optional command surface for validating, submitting, clearing errors, and observing submission progress.
  • ListView — A scrollable, keyboard-navigable list of items, vertical by default or horizontal with scrollDirection.
  • ScrollView — A scrollable viewport onto a single child.
  • Scrollbar — A scroll indicator drawn beside child (vertical) or below it (horizontal), reflecting a ScrollController (or a ListController via Scrollbar.list).
  • DataTable — A columnar table with flex/fixed widths and row/cell selection.
  • Tree — An expandable hierarchy with keyboard navigation and type-ahead.
  • Table — A column-aligned grid of widget cells, with optional row selection.
  • TreeTable — A hierarchical, expandable table; ←/→ collapse and expand rows.
  • Spinner — Animated loading indicator: a cycling glyph with an optional label beside it.
  • Gauge — A labelled status meter (CPU, memory, disk) that changes color at thresholds you set.
  • Sparkline — A compact inline trend line with an optional trailing value.
  • LineChart — A multi-series line (or scatter) chart with sub-cell braille rendering, axes, legend, and references. For a filled look, see AreaChart.
  • AreaChart — A gradient-filled area chart — the filled sibling of LineChart.
  • BarChart — Vertical bars with a categorical palette and an optional y-axis.
  • Histogram — A frequency-distribution chart that bins raw samples for you.
  • Heatmap — A 2-D grid of values shaded by magnitude, with an optional legend.
  • Canvas — A sub-cell drawing surface for custom plots and diagrams.
  • ProgressBar — A task progress bar: a fraction fills it; null shows an indeterminate sweep.
  • Digits — Large block-character numerals for clocks, timers, and counters.
  • CalendarHeatmap — A GitHub-style contribution grid keyed by date.
  • Text — Displays a string of text in the terminal.
  • RichText — Renders a TextSpan tree: multiple styles on a line, with the same wrapping, maxLines, and overflow behavior as Text.
  • TextSpan — An inline run of styled text, optionally with children that inherit and override this span’s style — a cascade, like Flutter’s TextSpan.
  • MarkdownView — A scrollable, keyboard-navigable viewer for full Markdown documents.
  • MarkdownText — Lightweight inline Markdown for short strings — help text, labels, captions.
  • CodeView — Source with line numbers, comment dimming, and copy support.
  • JsonView — A collapsible, type-colored tree view of a JSON value.
  • Image — Renders a raster image, adapting to what the surface can do.
  • MessageList — A role-aware conversation transcript (user/assistant/tool/…).
  • ContextPanel — A panel of context items with per-item share bars and a token-usage meter.
  • TaskGraph — A compact plan / dependency graph with per-node status.
  • ApprovalPrompt — A yes/no approval card for gating risky agent actions.
  • DiffView — A unified diff with styled additions and deletions, hunk headers, and an old/new line-number gutter.
  • PatchReview — A file-by-file patch review surface over a diff.
  • ToolCallCard — A card summarizing one tool/function call and its result.
  • TraceTimeline — A vertical timeline of trace events with status and timing.
  • ConversationNavigator — A searchable list of conversations with status and unread counts.
  • ModelStatusBar — A status line for the active model: name, state, latency, and token/context usage.
  • TokenMeter — A compact context-window and token-usage indicator.
  • LogRegion — A tail-following log view with severity styling, filtering, and copy.
  • TerminalOutputRegion — Captured stdout and stderr as a structured, filterable log; stderr lines read as errors.
  • WorkflowSnapshot — A data model that bundles a workflow’s tasks, tool calls, and logs, and derives its health.
  • Navigator — A stack of screens: push screens, present dialogs, and pop them with typed results.
  • PopScope — Guards the route it sits in against a user’s request to go back.
  • Anchored — Floating content pinned to a trigger, placed by Alignment — the declarative way to build dropdowns, flyouts, and hover cards.
  • Tabs — A tab strip over swappable panels; ←/→ switch tabs.
  • Menu — A dropdown menu: a trigger that opens a floating list of actions.
  • Tooltip — A hint that appears below a widget while focus is inside it.
  • Toaster — Transient notifications in a screen corner, raised from anywhere below the host.
  • Dialog — A bordered, titled modal surface.
  • CommandPalette — A fuzzy command launcher; type to filter, Enter to invoke.
  • SearchPanel — A search box over a grouped, copyable result list.
  • FileMentionPicker — An @-mention picker for files; type to filter the project.
  • FleuryApp — The app shell: app-wide commands with shortcuts, status items, and a root navigator for its screens.
  • Theme — Shares a ThemeData with its subtree.
  • Row — Lays out its children in a horizontal line.
  • Column — Lays out its children in a vertical line.
  • Expanded — A widget that takes a flex share of the available main-axis space in a Flex.
  • Flexible — A widget that takes up to a flex share of the available main-axis space in a Flex.
  • Spacer — A flexible empty gap along the main axis of a Row or Column.
  • Container — One visual region: size, padding, margin, background, border, and alignment. Container.filled and Container.framed apply the theme’s surface and border.
  • Padding — Wraps child in an EdgeInsets of empty cells on each side.
  • SizedBox — A widget that imposes specific dimensions on its child.
  • ConstrainedBox — Forces its child to satisfy additional layout constraints.
  • AspectRatio — Sizes its child to a target width:height ratio while staying within the parent’s constraints.
  • Center — Centers its child in the available space.
  • Align — Positions a single child within the available space according to alignment.
  • Stack — Overlays children at the same origin and lets later siblings overwrite earlier ones.
  • Positioned — Places its child at the given offset (and optional size) inside a Stack.
  • IndexedStack — Shows the child at index and keeps the rest mounted but unpainted, so their state survives switching between them — the basis for tabbed or paged surfaces that must remember each page.
  • Wrap — Flows children left-to-right, wrapping to a new row when the next one won’t fit the available width.
  • LayoutBuilder — Builds its child from the constraints it actually receives, so layout can adapt to the available space — a sidebar that collapses below a width, a list that switches to a grid when wide, etc.
  • Panel — A bordered, titled pane — the standard framing for dashboards and multi-pane screens; the accent border marks the focused pane.
  • Focus — Makes a custom widget focusable, so it receives keys and joins Tab and arrow traversal.
  • FocusNode — A focus target you own: move focus to it from code, check whether it has focus, and dispose it with its state.
  • FocusScope — A focus boundary that remembers its last focused control and can trap focus inside it.
  • FocusDetector — Reports when keyboard focus enters or leaves a subtree, the signal for styling the active pane.
  • KeyBindings — Declares keyboard shortcuts and multi-key sequences for a subtree; the nearest match wins and its label feeds shortcut hints.
  • KeyDetector — Low-level key handling inside a custom control: inspect each key and consume only the ones the control handles.
  • GestureDetector — Reports taps (and right-clicks) on its child.
  • MouseRegion — Reports the pointer entering, moving within, and leaving its child.
  • SelectionArea — Enables app-wide text selection in its subtree.
  • KeyHintBar — A bar listing the keyboard shortcuts active for the current focus.
  • WhichKey — A which-key popup: press the leader (Space) and the shortcuts that continue the sequence appear.
  • FutureBuilder — Rebuilds with the latest AsyncSnapshot of future.
  • StreamBuilder — Rebuilds with the latest AsyncSnapshot of stream — each event, error, and close.
  • Scope — Shares a value with the widgets below it.
  • ScopeBuilder — Rebuilds a subtree when its nearest Scope changes or its value notifies.
  • NotifierBuilder — Builds a subtree when notifier publishes a change.