Material Components widgets
Visual, behavioral, and motion-rich widgets implementing the Material Design guidelines.
- App structure and navigation
- Buttons
- Input and selections
- Dialogs, alerts, and panels
- Information displays
- Layout
See more widgets in the widget catalog.
App structure and navigation
![](/assets/images/docs/widget-catalog/material-app-bar.png)
A Material Design app bar. An app bar consists of a toolbar and potentially other widgets, such as a TabBar and a FlexibleSpaceBar.
![](/assets/images/docs/widget-catalog/material-bottom-navigation-bar.png)
Bottom navigation bars make it easy to explore and switch between top-level views in a single tap. The BottomNavigationBar widget implements this component.
![](/assets/images/docs/widget-catalog/material-drawer.png)
A Material Design panel that slides in horizontally from the edge of a Scaffold to show navigation links in an application.
![](https://storage.googleapis.com/material-design/publish/material_v_11/assets/0Bx4BSt6jniD7Y1huOXVQdlFPMmM/materialdesign_introduction.png)
A convenience widget that wraps a number of widgets that are commonly required for applications implementing Material Design.
![](https://storage.googleapis.com/material-design/publish/material_v_11/assets/0Bx4BSt6jniD7T0hfM01sSmRyTG8/layout_structure_regions_mobile.png)
Implements the basic Material Design visual layout structure. This class provides APIs for showing drawers, snack bars, and bottom sheets.
![](/assets/images/docs/widget-catalog/material-app-bar.png)
A material design app bar that integrates with a CustomScrollView.
![](/assets/images/docs/widget-catalog/material-tab-bar.png)
A Material Design widget that displays a horizontal row of tabs.
![](/assets/images/docs/widget-catalog/material-tab-bar.png)
A page view that displays the widget which corresponds to the currently selected tab. Typically used in conjunction with a TabBar.
![](/assets/images/docs/widget-catalog/material-tab-bar.png)
Coordinates tab selection between a TabBar and a TabBarView.
![](/assets/images/docs/widget-catalog/material-tab-bar.png)
Displays a row of small circular indicators, one per tab. The selected tab's indicator is highlighted. Often used in conjunction with a TabBarView.
![](/assets/images/docs/widget-catalog/material-widgets-app.png)
A convenience class that wraps a number of widgets that are commonly required for an application.
Buttons
![](https://storage.googleapis.com/material-design/publish/material_v_11/assets/0B7WCemMG6e0VakJ6a0F2MFJaaDQ/components_menus.png)
Shows the currently selected item and an arrow that opens a menu for selecting another item.
![](/assets/images/docs/widget-catalog/material-elevated-button.png)
A Material Design elevated button. A filled button whose material elevates when pressed.
![](/assets/images/docs/widget-catalog/material-floating-action-button.png)
A floating action button is a circular icon button that hovers over content to promote a primary action in the application. Floating action buttons are...
![](https://storage.googleapis.com/material-design/publish/material_v_11/assets/0B_udO5B8pzrzdXVuTlBoOTBjcU0/components_buttons_other1.png)
An icon button is a picture printed on a Material widget that reacts to touches by filling with color (ink).
![](/assets/images/docs/widget-catalog/material-outlined-button.png)
A Material Design outlined button, essentially a TextButton with an outlined border.
![](/assets/images/docs/widget-catalog/material-popup-menu-button.png)
Displays a menu when pressed and calls onSelected when the menu is dismissed because an item was selected.
![](https://material-design.storage.googleapis.com/publish/material_v_9/0B7WCemMG6e0VNDg3V3ZjU2hsNGc/components_buttons_usage3.png)
A Material Design text button. A simple flat button without a border outline.
Input and selections
![](/assets/images/docs/widget-catalog/material-checkbox.png)
Checkboxes allow the user to select multiple options from a set. The Checkbox widget implements this component.
![](https://material-design.storage.googleapis.com/publish/material_v_9/0B7WCemMG6e0VY2h4WElGdEhPb2c/components_pickers.png)
Date pickers use a dialog window to select a single date on mobile. Time pickers use a dialog to select a single time (in the...
![](/assets/images/docs/widget-catalog/material-radio.png)
Radio buttons allow the user to select one option from a set. Use radio buttons for exclusive selection if you think that the user needs...
![](/assets/images/docs/widget-catalog/material-slider.png)
Sliders let users select from a range of values by moving the slider thumb.
![](/assets/images/docs/widget-catalog/material-switch.png)
On/off switches toggle the state of a single settings option. The Switch widget implements this component.
![](/assets/images/docs/widget-catalog/material-text-field.png)
Touching a text field places the cursor and displays the keyboard. The TextField widget implements this component.
Dialogs, alerts, and panels
![](/assets/images/docs/widget-catalog/material-alert-dialog.png)
Alerts are urgent interruptions requiring acknowledgement that inform the user about a situation. The AlertDialog widget implements this component.
![](/assets/images/docs/widget-catalog/material-bottom-sheets.png)
Bottom sheets slide up from the bottom of the screen to reveal more content. You can call showBottomSheet() to implement a persistent bottom sheet or...
![](https://material-design.storage.googleapis.com/publish/material_v_9/0B7WCemMG6e0VOXF3eEJ3azZMSjg/components_expansion_panels.png)
Expansion panels contain creation flows and allow lightweight editing of an element. The ExpansionPanel widget implements this component.
![](https://material-design.storage.googleapis.com/publish/material_v_9/0B7WCemMG6e0VVGNnN3NvMGdoQTg/components_dialogs.png)
Simple dialogs can provide additional details or actions about a list item. For example they can display avatars icons clarifying subtext or orthogonal actions (such...
![](/assets/images/docs/widget-catalog/material-snack-bar.png)
A lightweight message with an optional action which briefly displays at the bottom of the screen.
Information displays
![](/assets/images/docs/widget-catalog/material-card.png)
A Material Design card. A card has slightly rounded corners and a shadow.
![](/assets/images/docs/widget-catalog/material-chip.png)
A Material Design chip. Chips represent complex entities in small blocks, such as a contact.
![](/assets/images/docs/widget-catalog/material-circular-progress-indicator.png)
A material design circular progress indicator, which spins to indicate that the application is busy.
![](/assets/images/docs/widget-catalog/material-data-table.png)
Data tables display sets of raw data. They usually appear in desktop enterprise products. The DataTable widget implements this component.
![](https://material-design.storage.googleapis.com/publish/material_v_9/0B7WCemMG6e0VandQYXpNMG9aQUk/components_grid_lists.png)
A grid list consists of a repeated pattern of cells arrayed in a vertical and horizontal layout. The GridView widget implements this component.
![](https://flutter.github.io/assets-for-api-docs/assets/widgets/icon.png)
A Material Design icon.
A widget that displays an image.
![](/assets/images/docs/widget-catalog/material-linear-progress-indicator.png)
A material design linear progress indicator, also known as a progress bar.
![](/assets/images/docs/widget-catalog/material-tooltip.png)
Tooltips provide text labels that help explain the function of a button or other user interface action. Wrap the button in a Tooltip widget to...
Layout
![](/assets/images/docs/widget-catalog/material-divider.png)
A one logical pixel thick horizontal line, with padding on either side.
![](/assets/images/docs/widget-catalog/material-list-tile.png)
A single fixed-height row that typically contains some text as well as a leading or trailing icon.
![](https://material-design.storage.googleapis.com/publish/material_v_9/0B7WCemMG6e0VTndyUnNCR2tQREE/components_steppers.png)
A Material Design stepper widget that displays progress through a sequence of steps.
See more widgets in the widget catalog.