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.
Inputs & controls
Section titled “Inputs & controls”- 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.
Lists & data
Section titled “Lists & data”- 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 aScrollController(or aListControllerviaScrollbar.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.
Charts & meters
Section titled “Charts & meters”- Spinner — Animated loading indicator: a cycling glyph with an optional
labelbeside 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 & content
Section titled “Text & content”- Text — Displays a string of text in the terminal.
- RichText — Renders a
TextSpantree: multiple styles on a line, with the same wrapping,maxLines, andoverflowbehavior asText. - TextSpan — An inline run of styled text, optionally with
childrenthat inherit and override this span’sstyle— 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.
Agent surfaces
Section titled “Agent surfaces”- 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.
Navigation & overlays
Section titled “Navigation & overlays”- 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.
App & theming
Section titled “App & theming”- FleuryApp — The app shell: app-wide commands with shortcuts, status items, and a root navigator for its screens.
- Theme — Shares a
ThemeDatawith its subtree.
Layout
Section titled “Layout”- Row — Lays out its children in a horizontal line.
- Column — Lays out its children in a vertical line.
- Expanded — A widget that takes a
flexshare of the available main-axis space in aFlex. - Flexible — A widget that takes up to a
flexshare of the available main-axis space in aFlex. - Spacer — A flexible empty gap along the main axis of a
RoworColumn. - 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
childin anEdgeInsetsof 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
childwithin the available space according toalignment. - Stack — Overlays children at the same origin and lets later siblings overwrite earlier ones.
- Positioned — Places its
childat the given offset (and optional size) inside aStack. - IndexedStack — Shows the child at
indexand 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
childrenleft-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.
Input handling & focus
Section titled “Input handling & focus”- 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.
State & async
Section titled “State & async”- FutureBuilder — Rebuilds with the latest
AsyncSnapshotoffuture. - StreamBuilder — Rebuilds with the latest
AsyncSnapshotofstream— each event, error, and close. - Scope — Shares a value with the widgets below it.
- ScopeBuilder — Rebuilds a subtree when its nearest
Scopechanges or its value notifies. - NotifierBuilder — Builds a subtree when
notifierpublishes a change.