<mwc-button> Published on npm

IMPORTANT: The Material Web Components are a work in progress and subject to major changes until 1.0 release.

Buttons allow users to take actions, and make choices, with a single tap.

Material Design Guidelines: Button

Installation

npm install @material/mwc-button

NOTE: The Material Web Components are distributed as ES2017 JavaScript Modules, and use the Custom Elements API. They are compatible with all modern browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional tooling step is required to resolve bare module specifiers, as well as transpilation and polyfills for Edge and IE11. See here for detailed instructions.

Example Usage

Standard

<mwc-button label="standard"></mwc-button>
<mwc-button label="standard" icon="code"></mwc-button>

Outlined

<mwc-button outlined label="outlined"></mwc-button>
<mwc-button outlined label="outlined" icon="code"></mwc-button>

Raised

<mwc-button raised label="raised"></mwc-button>
<mwc-button raised label="raised" icon="code"></mwc-button>

Unelevated

<mwc-button unelevated label="unelevated"></mwc-button>
<mwc-button unelevated label="unelevated" icon="code"></mwc-button>

Dense

<mwc-button dense unelevated label="dense"></mwc-button>
<mwc-button dense unelevated label="dense" icon="code"></mwc-button>

Trailing Icon

<mwc-button label="trailing icon" icon="code" trailingIcon></mwc-button>

Disabled

<mwc-button disabled label="disabled"></mwc-button>
<mwc-button disabled label="disabled" icon="code"></mwc-button>

Customize Colors

mwc-button {
  --mdc-theme-primary: #e9437a;
  --mdc-theme-on-primary: white;
}

API

Slots

None

Properties/Attributes

Name Type Default Description
icon string '' Icon to display, and aria-label value when label is not defined.
label string '' Label to display for the button, and aria-label.
raised boolean false Creates a contained button that is elevated above the surface.
unelevated boolean false Creates a contained button that is flush with the surface.
outlined boolean false Creates an outlined button that is flush with the surface.
dense boolean false Makes the button text and container slightly smaller.
disabled boolean false Disabled buttons cannot be interacted with and have no visual interaction effect.
trailingIcon boolean false When true, icon will be displayed after label.

Methods

None

Events

None

CSS Custom Properties

Name Default Description
--mdc-icon-font Material Icons Font to use for the icon.
--mdc-theme-primary #6200ee Background color of the button.
--mdc-theme-on-primary #ffffff Text color of the button.
--mdc-button-text-transform uppercase text-transform on the button label.
--mdc-button-letter-spacing 0.0892857143em letter-spacing on the button label.
--mdc-button-horizontal-padding filled: 16px outlined: 15px default: 8px Left and right padding of the button label (for outlined buttons the outline width is automatically subtracted).
--mdc-button-outline-width 1px width of the outline of an outlined button and attempts to keep the component size constant.
--mdc-button-outline-color --mdc-theme-primary Color of the outline of an outlined element. (Overrides --mdc-theme-primary)
--mdc-button-disabled-fill-color rgba(0,0,0,0.12) Background fill color of a disabled raised or unelevated button.
--mdc-button-disabled-ink-color rgba(0,0,0,0.37) Text color of a disabled button as well as the outline color of a disabled outlined button.
--mdc-button-disabled-outline-color --mdc-button-disabled-ink-color Sets the color of the outline of a disabled outlined button. (Overrides --mdc-button-disabled-ink-color)
--mdc-button-raised-box-shadow mdc elevation 2 Sets the box shadow of the raised button.
--mdc-button-raised-box-shadow-hover mdc elevation 4 Sets the box shadow of the raised button when focused or hovered.
--mdc-button-raised-box-shadow-active mdc elevation 8 Sets the box shadow of the raised button when active.
--mdc-button-raised-box-shadow-disabled mdc elevation 0 Sets the box shadow of the raised button when disabled.

Elevation values

Elevation Level CSS Value
2 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)
4 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12)
8 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)
0 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12)

Additional references