Button
Buttons let people trigger primary, secondary, or low-emphasis actions with Material 3 visual treatments.
Action components convert title into the library tooltip. See Action Tooltips for the shared behavior.
Anatomy
| Element | Part | Selector |
|---|---|---|
<component> | root | [data-scope="button"][data-part="root"]LMBCopy |
<Icon> | leadingconditional | [data-scope="button"][data-part="leading"]LMBCopy |
<Icon> | trailingconditional | [data-scope="button"][data-part="trailing"]LMBCopy |
Props
| Name | Description | Default | Control |
|---|---|---|---|
toggleableOptional | Whether the button is toggleable (like a checkbox). When true, the button must contain an input element of type checkbox or radio. boolean | undefined | undefined | |
colorOptional | The color style of the button. elevatedfilledtonaloutlinedtext | - | |
sizeOptional | The size of the button. smalllargeextra-smallmediumextra-large | - | |
shapeOptional | The shape of the button. roundedsquare | - | |
pressShapeMorphOptional | Whether pressed-state shape morphing is enabled. boolean | undefined | undefined | |
hrefOptional | The href attribute. If provided, the button will be rendered as an anchor element. string | undefined | - | |
leadingIconOptional | Name of the leading icon. string | undefined | - | |
trailingIconOptional | Name of the trailing icon. string | undefined | - | |
disabledOptional | Whether the button is disabled. boolean | undefined | undefined |
Events0
No events documented.
Slots3
| Name | Parameters | Description |
|---|---|---|
leading | - | Slot for leading content, such as an icon. Receives `disabled` as a prop. Will not be used if `leadingIcon` prop is set. |
default | - | Default slot for the main content of the button. Receives `disabled` as a prop. |
trailing | - | Slot for trailing content, such as an icon. Receives `disabled` as a prop. Will not be used if `trailingIcon` prop is set. |
Styling123
| Token | Description |
|---|---|
--md-button-container-colorColorFallback var(--md-sys-color-primary) | Controls container color. |
--md-button-container-elevationElevationFallback var(--md-sys-elevation-level0) | Controls container elevation. |
--md-button-container-shapeShapeFallback var(--md-button-container-shape-round,var(--md-shape-action)) | Controls container shape. |
--md-button-container-shape-roundShapeFallback var(--md-shape-action) | Controls container shape round. |
--md-button-container-shape-squareShapeFallback var(--md-shape-action-square-small) | Controls container shape square. |
--md-button-disabled-container-colorDisabledFallback var(--md-sys-color-on-surface) | Controls disabled container color. |
--md-button-disabled-container-elevationDisabledFallback var(--md-sys-elevation-level0) | Controls disabled container elevation. |
--md-button-disabled-label-text-colorDisabledFallback var(--md-sys-color-on-surface) | Controls disabled label text color. |
--md-button-elevated-container-colorColorFallback var(--md-sys-color-surface-container-low) | Controls elevated container color. |
--md-button-elevated-container-elevationElevationFallback var(--md-sys-elevation-level1) | Controls elevated container elevation. |
--md-button-elevated-disabled-container-colorDisabledFallback var(--md-sys-color-on-surface) | Controls elevated disabled container color. |
--md-button-elevated-disabled-container-elevationDisabledFallback var(--md-sys-elevation-level0) | Controls elevated disabled container elevation. |
--md-button-elevated-disabled-label-text-colorDisabledFallback var(--md-sys-color-on-surface) | Controls elevated disabled label text color. |
--md-button-elevated-focused-container-elevationFocusFallback var(--md-sys-elevation-level1) | Controls elevated focused container elevation. |
--md-button-elevated-focused-label-text-colorFocusFallback var(--md-sys-color-primary) | Controls elevated focused label text color. |
--md-button-elevated-hovered-container-elevationElevationFallback var(--md-sys-elevation-level2) | Controls elevated hovered container elevation. |
--md-button-elevated-hovered-label-text-colorStateFallback var(--md-sys-color-primary) | Controls elevated hovered label text color. |
--md-button-elevated-label-text-colorColorFallback var(--md-sys-color-primary) | Controls elevated label text color. |
--md-button-elevated-pressed-container-elevationElevationFallback var(--md-sys-elevation-level1) | Controls elevated pressed container elevation. |
--md-button-elevated-pressed-label-text-colorStateFallback var(--md-sys-color-primary) | Controls elevated pressed label text color. |
--md-button-elevated-selected-container-colorStateFallback var(--md-sys-color-primary) | Controls elevated selected container color. |
--md-button-elevated-selected-label-text-colorStateFallback var(--md-sys-color-on-primary) | Controls elevated selected label text color. |
--md-button-elevated-unselected-container-colorStateFallback var(--md-sys-color-surface-container-low) | Controls elevated unselected container color. |
--md-button-elevated-unselected-label-text-colorStateFallback var(--md-sys-color-primary) | Controls elevated unselected label text color. |
--md-button-filled-container-colorColorFallback var(--md-sys-color-primary) | Controls filled container color. |
--md-button-filled-container-elevationElevationFallback var(--md-sys-elevation-level0) | Controls filled container elevation. |
--md-button-filled-disabled-container-colorDisabledFallback var(--md-sys-color-on-surface) | Controls filled disabled container color. |
--md-button-filled-disabled-container-elevationDisabledFallback var(--md-sys-elevation-level0) | Controls filled disabled container elevation. |
--md-button-filled-disabled-label-text-colorDisabledFallback var(--md-sys-color-on-surface) | Controls filled disabled label text color. |
--md-button-filled-focused-container-elevationFocusFallback var(--md-sys-elevation-level0) | Controls filled focused container elevation. |
--md-button-filled-focused-label-text-colorFocusFallback var(--md-sys-color-on-primary) | Controls filled focused label text color. |
--md-button-filled-hovered-container-elevationElevationFallback var(--md-sys-elevation-level1) | Controls filled hovered container elevation. |
--md-button-filled-hovered-label-text-colorStateFallback var(--md-sys-color-on-primary) | Controls filled hovered label text color. |
--md-button-filled-label-text-colorColorFallback var(--md-sys-color-on-primary) | Controls filled label text color. |
--md-button-filled-pressed-container-elevationElevationFallback var(--md-sys-elevation-level0) | Controls filled pressed container elevation. |
--md-button-filled-pressed-label-text-colorStateFallback var(--md-sys-color-on-primary) | Controls filled pressed label text color. |
--md-button-filled-selected-container-colorStateFallback var(--md-sys-color-primary) | Controls filled selected container color. |
--md-button-filled-selected-label-text-colorStateFallback var(--md-sys-color-on-primary) | Controls filled selected label text color. |
--md-button-filled-unselected-container-colorStateFallback var(--md-sys-color-surface-container) | Controls filled unselected container color. |
--md-button-filled-unselected-label-text-colorStateFallback var(--md-sys-color-on-surface-variant) | Controls filled unselected label text color. |
--md-button-focus-indicator-colorFocusFallback var(--md-sys-color-secondary) | Controls focus indicator color. |
--md-button-focus-indicator-outline-offsetFocusFallback var(--md-sys-state-focus-indicator-outer-offset) | Controls focus indicator outline offset. |
--md-button-focus-indicator-thicknessFocusFallback var(--md-sys-state-focus-indicator-thickness) | Controls focus indicator thickness. |
--md-button-focused-container-elevationFocusFallback var(--md-sys-elevation-level0) | Controls focused container elevation. |
--md-button-focused-label-text-colorFocusFallback var(--md-sys-color-on-primary) | Controls focused label text color. |
--md-button-hovered-container-elevationElevationFallback var(--md-button-elevated-hovered-container-elevation,var(--md-sys-elevation-level2)) | Controls hovered container elevation. |
--md-button-hovered-label-text-colorStateFallback var(--md-sys-color-on-primary) | Controls hovered label text color. |
--md-button-icon-label-spaceLayoutFallback 0.5rem | Controls icon label space. |
--md-button-icon-sizeLayoutFallback 1.25rem | Controls icon size. |
--md-button-label-text-colorColorFallback var(--md-sys-color-on-primary) | Controls label text color. |
--md-button-label-text-selected-colorStateFallback var(--md-sys-color-on-primary) | Controls label text selected color. |
--md-button-label-text-unselected-colorStateFallback var(--md-sys-color-on-surface-variant) | Controls label text unselected color. |
--md-button-large-container-shape-squareShapeFallback var(--md-shape-action-square-large) | Controls large container shape square. |
--md-button-large-icon-label-spaceLayoutFallback 0.75rem | Controls large icon label space. |
--md-button-large-icon-sizeLayoutFallback 2rem | Controls large icon size. |
--md-button-large-outlined-outline-widthLayoutFallback 0.125rem | Controls large outlined outline width. |
--md-button-large-pressed-container-shapeShapeFallback var(--md-shape-action-pressed-large) | Controls large pressed container shape. |
--md-button-large-selected-container-shape-roundShapeFallback var(--md-shape-action-selected-large) | Controls large selected container shape round. |
--md-button-medium-container-shape-squareShapeFallback var(--md-shape-action-square-medium) | Controls medium container shape square. |
--md-button-medium-icon-label-spaceLayoutFallback 0.5rem | Controls medium icon label space. |
--md-button-medium-icon-sizeLayoutFallback 1.5rem | Controls medium icon size. |
--md-button-medium-outlined-outline-widthLayoutFallback 0.0625rem | Controls medium outlined outline width. |
--md-button-medium-pressed-container-shapeShapeFallback var(--md-shape-action-pressed-medium) | Controls medium pressed container shape. |
--md-button-medium-selected-container-shape-roundShapeFallback var(--md-shape-action-selected-medium) | Controls medium selected container shape round. |
--md-button-outlined-disabled-label-text-colorDisabledFallback var(--md-sys-color-on-surface) | Controls outlined disabled label text color. |
--md-button-outlined-focused-label-text-colorFocusFallback var(--md-sys-color-on-surface-variant) | Controls outlined focused label text color. |
--md-button-outlined-hovered-label-text-colorStateFallback var(--md-sys-color-on-surface-variant) | Controls outlined hovered label text color. |
--md-button-outlined-label-text-colorColorFallback var(--md-sys-color-on-surface-variant) | Controls outlined label text color. |
--md-button-outlined-outline-colorColorFallback var(--md-sys-color-outline-variant) | Controls outlined outline color. |
--md-button-outlined-pressed-label-text-colorStateFallback var(--md-sys-color-on-surface-variant) | Controls outlined pressed label text color. |
--md-button-outlined-selected-container-colorStateFallback var(--md-sys-color-inverse-surface) | Controls outlined selected container color. |
--md-button-outlined-selected-label-text-colorStateFallback var(--md-sys-color-inverse-on-surface) | Controls outlined selected label text color. |
--md-button-outlined-unselected-label-text-colorStateFallback var(--md-sys-color-on-surface-variant) | Controls outlined unselected label text color. |
--md-button-pressed-container-elevationElevationFallback var(--md-sys-elevation-level0) | Controls pressed container elevation. |
--md-button-pressed-container-shapeShapeFallback var(--md-shape-action-pressed-small) | Controls pressed container shape. |
--md-button-pressed-label-text-colorStateFallback var(--md-sys-color-on-primary) | Controls pressed label text color. |
--md-button-selected-container-colorStateFallback var(--md-sys-color-primary) | Controls selected container color. |
--md-button-selected-container-shapeShapeFallback var(--md-button-xsmall-selected-container-shape-round,var(--md-shape-action-selected-small)) | Controls selected container shape. |
--md-button-selected-label-text-colorStateFallback var(--md-button-elevated-selected-label-text-color,var(--md-sys-color-on-primary)) | Controls selected label text color. |
--md-button-small-container-shape-squareShapeFallback var(--md-shape-action-square-small) | Controls small container shape square. |
--md-button-small-icon-label-spaceLayoutFallback 0.5rem | Controls small icon label space. |
--md-button-small-icon-sizeLayoutFallback 1.25rem | Controls small icon size. |
--md-button-small-outlined-outline-widthLayoutFallback 0.0625rem | Controls small outlined outline width. |
--md-button-small-pressed-container-shapeShapeFallback var(--md-shape-action-pressed-small) | Controls small pressed container shape. |
--md-button-small-selected-container-shape-roundShapeFallback var(--md-shape-action-selected-small) | Controls small selected container shape round. |
--md-button-text-disabled-label-text-colorDisabledFallback var(--md-sys-color-on-surface) | Controls text disabled label text color. |
--md-button-text-focused-label-text-colorFocusFallback var(--md-sys-color-primary) | Controls text focused label text color. |
--md-button-text-hovered-label-text-colorStateFallback var(--md-sys-color-primary) | Controls text hovered label text color. |
--md-button-text-label-text-colorColorFallback var(--md-sys-color-primary) | Controls text label text color. |
--md-button-text-pressed-label-text-colorStateFallback var(--md-sys-color-primary) | Controls text pressed label text color. |
--md-button-tonal-container-colorColorFallback var(--md-sys-color-secondary-container) | Controls tonal container color. |
--md-button-tonal-container-elevationElevationFallback var(--md-sys-elevation-level0) | Controls tonal container elevation. |
--md-button-tonal-disabled-container-colorDisabledFallback var(--md-sys-color-on-surface) | Controls tonal disabled container color. |
--md-button-tonal-disabled-container-elevationDisabledFallback var(--md-sys-elevation-level0) | Controls tonal disabled container elevation. |
--md-button-tonal-disabled-label-text-colorDisabledFallback var(--md-sys-color-on-surface) | Controls tonal disabled label text color. |
--md-button-tonal-focused-container-elevationFocusFallback var(--md-sys-elevation-level0) | Controls tonal focused container elevation. |
--md-button-tonal-focused-label-text-colorFocusFallback var(--md-sys-color-on-secondary-container) | Controls tonal focused label text color. |
--md-button-tonal-hovered-container-elevationElevationFallback var(--md-sys-elevation-level1) | Controls tonal hovered container elevation. |
--md-button-tonal-hovered-label-text-colorStateFallback var(--md-sys-color-on-secondary-container) | Controls tonal hovered label text color. |
--md-button-tonal-label-text-colorColorFallback var(--md-sys-color-on-secondary-container) | Controls tonal label text color. |
--md-button-tonal-pressed-container-elevationElevationFallback var(--md-sys-elevation-level0) | Controls tonal pressed container elevation. |
--md-button-tonal-pressed-label-text-colorStateFallback var(--md-sys-color-on-secondary-container) | Controls tonal pressed label text color. |
--md-button-tonal-selected-container-colorStateFallback var(--md-sys-color-secondary) | Controls tonal selected container color. |
--md-button-tonal-selected-label-text-colorStateFallback var(--md-sys-color-on-secondary) | Controls tonal selected label text color. |
--md-button-tonal-unselected-container-colorStateFallback var(--md-sys-color-secondary-container) | Controls tonal unselected container color. |
--md-button-tonal-unselected-label-text-colorStateFallback var(--md-sys-color-on-secondary-container) | Controls tonal unselected label text color. |
--md-button-unselected-container-colorStateFallback var(--md-sys-color-surface-container) | Controls unselected container color. |
--md-button-unselected-focused-label-text-colorFocusFallback var(--md-sys-color-on-surface-variant) | Controls unselected focused label text color. |
--md-button-unselected-hovered-label-text-colorStateFallback var(--md-sys-color-on-surface-variant) | Controls unselected hovered label text color. |
--md-button-unselected-label-text-colorStateFallback var(--md-button-elevated-unselected-label-text-color,var(--md-sys-color-primary)) | Controls unselected label text color. |
--md-button-unselected-pressed-label-text-colorStateFallback var(--md-sys-color-on-surface-variant) | Controls unselected pressed label text color. |
--md-button-xlarge-container-shape-squareShapeFallback var(--md-shape-action-square-large) | Controls xlarge container shape square. |
--md-button-xlarge-icon-label-spaceLayoutFallback 1rem | Controls xlarge icon label space. |
--md-button-xlarge-icon-sizeLayoutFallback 2.5rem | Controls xlarge icon size. |
--md-button-xlarge-outlined-outline-widthLayoutFallback 0.1875rem | Controls xlarge outlined outline width. |
--md-button-xlarge-pressed-container-shapeShapeFallback var(--md-shape-action-pressed-large) | Controls xlarge pressed container shape. |
--md-button-xlarge-selected-container-shape-roundShapeFallback var(--md-shape-action-selected-large) | Controls xlarge selected container shape round. |
--md-button-xsmall-container-shape-squareShapeFallback var(--md-shape-action-square-small) | Controls xsmall container shape square. |
--md-button-xsmall-icon-label-spaceLayoutFallback 0.5rem | Controls xsmall icon label space. |
--md-button-xsmall-icon-sizeLayoutFallback 1.25rem | Controls xsmall icon size. |
--md-button-xsmall-outlined-outline-widthLayoutFallback 0.0625rem | Controls xsmall outlined outline width. |
--md-button-xsmall-pressed-container-shapeShapeFallback var(--md-shape-action-pressed-small) | Controls xsmall pressed container shape. |
--md-button-xsmall-selected-container-shape-roundShapeFallback var(--md-shape-action-selected-small) | Controls xsmall selected container shape round. |
Examples
Default
Colors
Sizes
Shapes
Disabled
Toggleable
Leading Icons
Trailing Icons
Tooltip
Use title for a simple text tooltip.
Vue Router
Use RouterLink custom and pass its href and navigate values into Button. That keeps Button responsible for rendering the final anchor element.