Skip to main content

Widget catalog

The widget catalog is the fastest way to survey what the public widget surface already covers.

Do not treat it as a tutorial. Its job is to help you choose the right family of widgets and then jump to the dedicated page for the exact widget or supporting type you need.

A good rule is to choose by job first.

If you are shaping space, start with layout. If you are collecting user intent, start with inputs. If you are rendering information-heavy screens, start with display and data. If the feature needs layered interface, routing, or overlays, start with overlays and navigation. If the feature needs host-backed or custom surfaces, start with media.

Layout and structure

These widgets determine how space is allocated and how children are arranged before you worry about product-specific details.

WidgetDedicated pageTypical use
ContainerContainerConstraint, padding, size, and background wrapper for one child
RowRowHorizontal arrangement of children
ColumnColumnVertical arrangement of children
ScrollScrollScrollable region when content may exceed the viewport
SpacerSpacerFixed or flexible empty space
GridGridMatrix-style layout container
GridItemGridItemChild placement and span control inside a grid
ZStackZStackLayered children in the same visual region
PositionedPositionedExplicit placement inside layered layouts
AlignAlignChild alignment inside available space
CenterCenterSimple centered layout helper
HStackHStackHigher-level horizontal stack helper
VStackVStackHigher-level vertical stack helper
WrapWrapMulti-line wrapping layout for repeated content
SimpleGridSimpleGridHigher-level grid helper
SplitViewSplitViewResizable split-pane layout
SplitDirectionSplitDirectionSplit orientation support type
AspectRatioAspectRatioPreserve width-to-height ratio
SafeAreaSafeAreaRespect window or device insets
LayoutBuilderLayoutBuilderBuild based on current layout constraints
absolute_fill(...)absolute_fillFill the available stacked bounds
ClipClipClip child drawing to a shape or bounds
TransformTransformVisual transformation wrapper
CompositeCompositeComposition and repaint-boundary helper
FocusScopeFocusScopeFocus-boundary grouping for keyboard traversal

For a family-level overview, continue to Layout widgets.

Inputs and editing

These widgets collect intent, edit values, or wrap input flows.

WidgetDedicated pageTypical use
ButtonButtonPrimary click or tap action
ButtonVariantButtonVariantButton style selection support type
ButtonContentAlignButtonContentAlignButton content alignment support type
CheckboxCheckboxBoolean choice with visible checked state
RadioRadioSingle selection inside a group
SwitchSwitchOn or off toggle with switch affordance
SliderSliderContinuous value selection
RangeSliderRangeSliderTwo-handle continuous range selection
TextInputTextInputSingle-line or multiline text entry surface
NumberInputNumberInputNumeric entry with increment or decrement patterns
SelectSelectClosed set choice control
SelectItemSelectItemOption type for Select
ComboboxComboboxText input plus suggestion selection
SegmentedControlSegmentedControlSmall mutually exclusive option group
DatePickerDatePickerDate selection surface
DateRangePickerDateRangePickerDate range selection surface
TimePickerTimePickerTime-of-day selection surface
EditableEditableLower-level editable wrapper
GestureDetectorGestureDetectorManual gesture-driven intent capture
DraggableDraggableDraggable source surface
DragTargetDragTargetDrop acceptance target
DropzoneDropzoneFile or payload drop region
FileUploadFileUploadUpload-oriented input wrapper
FormControlFormControlLabel, helper, and validation wrapper
DropDownDropDownDropdown wrapper and helper surface

For the family-level explanation, see Input widgets.

Display and data

These widgets present information once layout and state flow are already clear.

WidgetDedicated pageTypical use
TextTextBasic text display
TextContentTextContentLiteral or keyed text content support type
RichTextRichTextMixed-style text content
RichTextRunRichTextRunSegment inside rich text
TextRunStyleTextRunStyleRich-text style support type
TextFontStyleTextFontStyleText style support type
IconIconIconographic display element
AvatarAvatarUser or entity identity surface
BadgeBadgeSmall status indicator
TagTagLabeled categorical chip
LinkLinkHyperlink-style display and action surface
CodeCodeInline or block code presentation
KbdKbdKeyboard shortcut presentation
CardCardFramed information container
DividerDividerVisual separation line
AlertAlertProminent inline message surface
AlertKindAlertKindAlert style support type
EmptyStateEmptyState"Nothing here yet" presentation
ProgressBarProgressBarLinear progress display
CircularProgressCircularProgressCircular progress display
SpinnerSpinnerIndeterminate loading motion
SkeletonSkeletonPlaceholder loading layout
StatStatLabeled metric display
StepperStepperStep-by-step process indicator
CalendarCalendarCalendar grid display
DataTableDataTableTabular data presentation
TableColumnTableColumnColumn definition for DataTable
TableRowTableRowRow definition for DataTable
TimelineTimelineChronological sequence display
TimelineItemTimelineItemEntry inside a timeline
TreeViewTreeViewHierarchical data presentation
TreeItemTreeItemEntry inside a tree view

For the family-level explanation, see Display and data widgets.

Overlays and navigation

These widgets handle layered interface, routing, menus, and movement between sections of the app.

WidgetDedicated pageTypical use
ModalModalBlocking dialog overlay
ModalActionModalActionFooter action support type for modals
PopoverPopoverAnchored floating panel
DrawerDrawerSliding side panel
DrawerSideDrawerSideDrawer side selection support type
TooltipTooltipSmall explanatory overlay
ToastToastTemporary notification overlay
ToastKindToastKindToast style support type
PortalPortalLow-level portal registration widget
flyout(...)flyoutFlyout overlay helper
MenuMenuMenu surface
MenuButtonMenuButtonButton that opens a menu
MenuItemMenuItemEntry inside a menu
TabsTabsTabbed navigation surface
TabItemTabItemTab definition
AccordionAccordionExpandable section group
AccordionItemAccordionItemOne accordion entry
BreadcrumbBreadcrumbHierarchical navigation trail
BreadcrumbItemBreadcrumbItemOne breadcrumb entry
PaginationPaginationPage-by-page navigation
RouteRouteRoute definition
RouteParamsRouteParamsRoute parameter access type
RouterRouterRoute selection widget
HeroHeroShared-element transition surface
TransitionTransitionAnimation-oriented transition wrapper

For the family-level explanation, see Overlays and navigation.

Media and custom surfaces

These widgets and helper types cover image, video, host-backed embeds, terminal surfaces, and custom drawing entry points.

Widget or helperDedicated pageTypical use
ImageImageStatic raster image display
VideoVideoVideo playback surface
WebViewWebViewEmbedded web content surface
TerminalViewTerminalViewInteractive terminal surface
TerminalLaunchConfigTerminalLaunchConfigTerminal startup configuration
TerminalSessionTerminalSessionTerminal session handle
canvas(...)canvasLightweight custom drawing helper
CanvasLowererCanvasLowererLowering helper behind canvas(...)
CustomNodeCustomNodeCustom authored node with lowerer or render object
NodeNodeThe erased authored node type
BuilderBuilderCore authoring builder helper

For the family-level explanation, see Media.