This module implements a Material design theme for all widgets.
The stylings are following the official Material Design guidelines as close as possible. Please use these widgets in combination with the official guidelines.
The typography is taken from the Material Design guidelines. Its recommended to use a font size of 16px width and the Roboto Font.
The style are not opaque, so you can change every styling to your needs.
If you have any suggestions or improvements, be sure to leave a PR or a Issue over at the github repos.
Swaps the primary and secondary color.
Why is this needed? See the material design specification for details.
generates a "grayish 50%" color that matches the on-surface color.
generates a "grayish 14%" color that matches the on-surface color.
generates a grayer text color
Different styles for buttons have different meanings.
textButton as your default buttoncontainedButton for any important actionoutlinedButton if you have more then one important action.
Use containedButton for the most important action of the group.A contained button representing the most important action of a group.

A outlined button representing an important action within a group.

A text button representing a simple action within a group.

An single selectable icon.
![]()
Technical Remark:
A ToggleButton. Only use as a group in combination with buttonRow.
Toggle buttons should only be used with the iconButton widget, else use chips instead.

Technical Remark:
a Row of buttons.
Only use in combination with toggleButton

A boolean switch

Technical Remark:
A List styled like a card.

Technical Remark:
This is a simplification of the Material Design Card and might get replaced at a later date.
A variant of cardColumn designed for a single item.
Use this with a normal Element.column, Element.row or even a Element.el.
Chips have the same behavior as buttons but are visually less important.
In the official documentation chips have different names depending on where they are used:
textInput for this feature.toggleButton for icons with no text and chips for text with no icons.
Technical Remark:
A variant of textInput designed for Input.text.
A text input style that is included only to support input chips.

Technical Remark:
A text input style for the password Input.
An alert dialog for important decisions. Use a snackbar for less important notification.

A simple styling for a row.
A simple styling for a column.
An app bar with tabs instead of a menu

A side sheet. Has a maximal width of 360.

A bottom sheet. Has a maximal width of 360. Should be align to the bottom right corner of the screen.
A List is build from items. You way want to use special items to visually organize the content of your list.
A basic item containing some text, a button. Spans the full width.

A basic item containing some text, a button and some additional information.

A text item allowing for more text.

Similar to a textItem but with an image instead of the icon.
If the image is bigger then 40x40, the size of the item will change.

Displays a selection. This should be combined with Widget.selectItem

A divider covering the full length

A divider covering only parts of the width

A divider in the center

A header of a section of a list. Comes with a full bleed divider.

A header of a section of a list. Comes with a inset divider.

A circular progress indicator

A sortable table

A typical snackbar

Technical Remark:
A Tab bar meant for only the upper most level. Do not use a tab within a tab.

A single Tab button.

Technical Remark:
DEPRECATED
Use Material.toggleRow instead
The material design comes with customizable color palettes.
Check out the official documentation about the color system to see how these colors are used.
For the
-oncolors you can use white, for transitions into white, or black,for transitions into black. Other colors are also possible, but i've not seen any website actually using a different color.