Icon Button

Icon button can only act as a button.

Import

import "@sandlada/mdc/build/components/icon-button/icon-button.js"
import "@sandlada/mdc/build/components/icon-button/toggle-icon-button.js"

Props

Variant

The variant attributes include:

  • filled
  • filled-tonal
  • outlined
  • standard (default)
<mdc-icon-button variant="filled">
    <mdc-icon>send</mdc-icon>
</mdc-icon-button>
<mdc-icon-button variant="filled-tonal">
    <mdc-icon>send</mdc-icon>
</mdc-icon-button>
<mdc-icon-button variant="outlined">
    <mdc-icon>send</mdc-icon>
</mdc-icon-button>
<mdc-icon-button variant="outlined">
    <mdc-icon>send</mdc-icon>
</mdc-icon-button>

Size

The size attributes include:

  • extra-small
  • small
  • medium
  • large
  • extra-large
<mdc-icon-button  variant="filled" size="extra-small">
    <mdc-icon>send</mdc-icon>
</mdc-icon-button>
<mdc-icon-button  variant="filled" size="small">
    <mdc-icon>send</mdc-icon>
</mdc-icon-button>
<mdc-icon-button  variant="filled" size="medium">
    <mdc-icon>send</mdc-icon>
</mdc-icon-button>
<mdc-icon-button  variant="filled" size="large">
    <mdc-icon>send</mdc-icon>
</mdc-icon-button>
<mdc-icon-button  variant="filled" size="extra-large">
    <mdc-icon>send</mdc-icon>
</mdc-icon-button>

Width

The width attributes include:

  • narrow
  • default
  • wide
<mdc-icon-button variant="filled-tonal" width="narrow">
    <mdc-icon>send</mdc-icon>
</mdc-icon-button>
<mdc-icon-button variant="filled-tonal" width="default">
    <mdc-icon>send</mdc-icon>
</mdc-icon-button>
<mdc-icon-button variant="filled-tonal" width="wide">
    <mdc-icon>send</mdc-icon>
</mdc-icon-button>

Shape

The shape attributes include:

  • round (default)
  • square
<mdc-icon-button variant="outlined" shape="round">
    <mdc-icon>send</mdc-icon>
</mdc-icon-button>
<mdc-icon-button variant="outlined" shape="square">
    <mdc-icon>send</mdc-icon>
</mdc-icon-button>

Toggle

<mdc-toggle-icon-button variant="filled">
    <mdc-icon>send</mdc-icon>
</mdc-toggle-icon-button>
<mdc-toggle-icon-button variant="filled-tonal">
    <mdc-icon>send</mdc-icon>
</mdc-toggle-icon-button>
<mdc-toggle-icon-button variant="outlined">
    <mdc-icon>send</mdc-icon>
</mdc-toggle-icon-button>
<mdc-toggle-icon-button>
    <mdc-icon>send</mdc-icon>
</mdc-toggle-icon-button>

Disabled

<mdc-icon-button disabled variant="filled">
    <mdc-icon>send</mdc-icon>
</mdc-icon-button>
<mdc-icon-button disabled variant="filled-tonal">
    <mdc-icon>send</mdc-icon>
</mdc-icon-button>
<mdc-icon-button disabled variant="outlined">
    <mdc-icon>send</mdc-icon>
</mdc-icon-button>
<mdc-icon-button disabled variant="outlined">
    <mdc-icon>send</mdc-icon>
</mdc-icon-button>

Form & Type

mdc-icon-button behaves like a native button. Its type field can have the following values:

  • submit (default)
  • reset
  • button
<form id="my-form">
    <!-- ... -->
</form>

<mdc-icon-button form="my-form" type="reset">
    <mdc-icon>send</mdc-icon>
</mdc-icon-button>
<mdc-icon-button form="my-form">
    <mdc-icon>send</mdc-icon>
</mdc-icon-button>

The mdc-toggle-icon-button element is part of a form, and its type differs from the type of the mdc-icon-button element. The values for mdc-toggle-icon-button are as follows:

  • radio
  • checkbox

When a type is specified, it behaves like a native input element. Note that default-checked is used to mark the state after reset.

<mdc-toggle-icon-button name="form-field-type-checkbox" size="medium" variant="filled" type="checkbox" value="v1">
    <mdc-icon>delete</mdc-icon>
</mdc-toggle-icon-button>
<mdc-toggle-icon-button name="form-field-type-checkbox" size="medium" variant="filled" type="checkbox" value="v2">
    <mdc-icon>delete</mdc-icon>
</mdc-toggle-icon-button>
<mdc-toggle-icon-button name="form-field-type-radio" size="medium" variant="filled" type="radio" value="v3" default-checked>
    <mdc-icon>delete</mdc-icon>
</mdc-toggle-icon-button>
<mdc-toggle-icon-button name="form-field-type-radio" size="medium" variant="filled" type="radio" value="v4">
    <mdc-icon>delete</mdc-icon>
</mdc-toggle-icon-button>

Slots

Default Slot

You need to import the icon library yourself.

<mdc-icon>send</mdc-icon>
<span class="your-icon-library">send</span>
<mdc-icon-button>
    <mdc-icon>send</mdc-icon>
</mdc-icon-button>