Flutter provides a variety of visual, behioral, and motion-rich widgets that implement the Material 3 design specification. Material 3 is the default design language of Flutter, enabling you to design and build beautiful, usable apps that can adapt to any platform.
The transition to Material 3 as the default was completed in Flutter 3.16.
To learn more about this transition, how to complete it for your own widgets, or how to temporarily opt-out, check out the Migrate to Material 3 migration guide.
To catch these and other widgets in action, check out the Material 3 demo web app.
Actions Common buttonsClickable blocks that start an action, such as sending an email, sharing a document, or liking a comment.
FloatingActionButtonClickable block containing an icon that keeps a key action always in reach.
Extended FloatingActionButtonClickable block that triggers an action. These wider blocks can fit a text label and provide a larger target area.
IconButtonClickable icons to prompt app users to take supplementary actions.
SegmentedButtonSingle or multiple selected clickable blocks to help people select options, switch views, or sort elements.
Communication BadgeIcon-like block that conveys dynamic content such as counts or status. It can include labels or numbers.
LinearProgressIndicatorVertical line that changes color as an ongoing process, such as loading an app or submitting a form, completes.
SnackBarBrief messages about app processes that display at the bottom of the screen.
Containment AlertDialogHovering containers that prompt app users to provide more data or make a decision.
Bottom sheetContainers that anchor supplementary content to the bottom of the screen.
CardContainer for short, related pieces of content displayed in a box with rounded corners and a drop shadow.
DividerThin line that groups content in lists and containers.
ListTileA single fixed-height row that typically contains some text as well as a leading or trailing icon.
Nigation AppBarContainer that displays content and actions at the top of a screen.
Bottom app barContainer that displays nigation and key actions at the bottom of a screen.
NigationBarPersistent container that enables switching between primary destinations in an app.
NigationDrawerContainer that slides from the leading edge of the app to nigate to other sections in an app.
Nigation railPersistent container on the leading edge of tablet and desktop screens to nigate to parts of an app.
TabBarLayered containers that organize content across different screens, data sets, and other interactions.
Selection CheckboxForm control that app users can set or clear to select one or more options from a set.
ChipSmall blocks that simplify entering information, making selections, filtering content, or triggering actions.
DatePickerCalendar interface used to select a date or a range of dates.
MenuContainer that displays a list of choices on a temporary surface.
RadioForm control that app users can set or clear to select only one option from a set.
SliderForm control that enables selecting a range of values.
SwitchToggle control that changes the state of a single item to on or off.
TimePickerClock interface used to select and set a specific time.
Text inputs TextFieldBox into which app users can enter text. They appear in forms and dialogs.
Find more widgets in the Material 2 widget catalog and other categories of the widget catalog.
Was this page's content helpful?Unless stated otherwise, the documentation on this site reflects Flutter 3.35.5. Page last updated on 2025-10-28. View source or report an issue.