Switch
Switches communicate an immediate on or off state and support optional checked and unchecked icon affordances. Use presentation when the switch is only a visual indicator inside another accessible control, such as a clickable ListItem.
Anatomy
| Element | Part | Selector |
|---|---|---|
<component> | root | [data-scope="switch"][data-part="root"]LMBCopy |
<input> | inputconditional | [data-scope="switch"][data-part="input"]LMBCopy |
<span> | control | [data-scope="switch"][data-part="control"]LMBCopy |
<span> | handle | [data-scope="switch"][data-part="handle"]LMBCopy |
<span> | iconconditional | [data-scope="switch"][data-part="icon"]LMBCopy |
<span> | labelconditional | [data-scope="switch"][data-part="label"]LMBCopy |
Props
| Name | Description | Default | Control |
|---|---|---|---|
disabledOptional | Whether the switch is disabled. boolean | undefined | false | |
presentationOptional | Render only the visual switch. The parent must provide interaction semantics. boolean | undefined | false | |
checkedIconOptional | Icon name displayed when checked. string | undefined | "check" | |
uncheckedIconOptional | Icon name displayed when unchecked. string | undefined | - | |
nameOptional | Name attribute for the native checkbox input. string | undefined | - | - |
valueOptional | Value attribute for the native checkbox input. string | undefined | - | - |
ariaLabelOptional | ARIA label forwarded to the native checkbox input. string | undefined | - | - |
checkedRequired | - boolean | - |
Events1
| Name | Type | Description |
|---|---|---|
update:checked | [value: boolean] | - |
Slots1
| Name | Parameters | Description |
|---|---|---|
default | - | Optional label content rendered next to switch. |
Styling45
| Token | Description |
|---|---|
--md-switch-disabled-selected-handle-colorDisabledFallback var(--md-sys-color-surface) | Controls disabled selected handle color. |
--md-switch-disabled-selected-handle-opacityDisabledFallback 1 | Controls disabled selected handle opacity. |
--md-switch-disabled-selected-icon-colorDisabledFallback var(--md-sys-color-on-surface) | Controls disabled selected icon color. |
--md-switch-disabled-selected-icon-opacityDisabledFallback 0.38 | Controls disabled selected icon opacity. |
--md-switch-disabled-selected-track-colorDisabledFallback var(--md-sys-color-on-surface) | Controls disabled selected track color. |
--md-switch-disabled-track-opacityDisabledFallback 0.12 | Controls disabled track opacity. |
--md-switch-disabled-unselected-handle-colorDisabledFallback var(--md-sys-color-on-surface) | Controls disabled unselected handle color. |
--md-switch-disabled-unselected-handle-opacityDisabledFallback 0.38 | Controls disabled unselected handle opacity. |
--md-switch-disabled-unselected-icon-colorDisabledFallback var(--md-sys-color-surface-container-highest) | Controls disabled unselected icon color. |
--md-switch-disabled-unselected-icon-opacityDisabledFallback 0.38 | Controls disabled unselected icon opacity. |
--md-switch-disabled-unselected-track-colorDisabledFallback var(--md-sys-color-surface-container-highest) | Controls disabled unselected track color. |
--md-switch-disabled-unselected-track-outline-colorDisabledFallback var(--md-sys-color-on-surface) | Controls disabled unselected track outline color. |
--md-switch-focus-indicator-colorFocusFallback var(--md-sys-color-secondary) | Controls focus indicator color. |
--md-switch-focus-indicator-offsetFocusFallback var(--md-sys-state-focus-indicator-outer-offset) | Controls focus indicator offset. |
--md-switch-focus-indicator-thicknessFocusFallback var(--md-sys-state-focus-indicator-thickness) | Controls focus indicator thickness. |
--md-switch-handle-shapeShapeFallback var(--md-sys-shape-corner-full) | Controls handle shape. |
--md-switch-pressed-handle-heightStateFallback 1.75rem | Controls pressed handle height. |
--md-switch-pressed-handle-widthStateFallback 1.75rem | Controls pressed handle width. |
--md-switch-selected-handle-colorStateFallback var(--md-sys-color-on-primary) | Controls selected handle color. |
--md-switch-selected-handle-heightStateFallback 1.5rem | Controls selected handle height. |
--md-switch-selected-handle-widthStateFallback 1.5rem | Controls selected handle width. |
--md-switch-selected-hover-handle-colorStateFallback var(--md-sys-color-primary-container) | Controls selected hover handle color. |
--md-switch-selected-hover-track-colorStateFallback var(--md-sys-color-primary) | Controls selected hover track color. |
--md-switch-selected-icon-colorStateFallback var(--md-sys-color-primary) | Controls selected icon color. |
--md-switch-selected-icon-sizeStateFallback 1rem | Controls selected icon size. |
--md-switch-selected-pressed-handle-colorStateFallback var(--md-sys-color-primary-container) | Controls selected pressed handle color. |
--md-switch-selected-pressed-track-colorStateFallback var(--md-sys-color-primary) | Controls selected pressed track color. |
--md-switch-selected-track-colorStateFallback var(--md-sys-color-primary) | Controls selected track color. |
--md-switch-track-heightLayoutFallback 2rem | Controls track height. |
--md-switch-track-outline-widthLayoutFallback 0.125rem | Controls track outline width. |
--md-switch-track-shapeShapeFallback var(--md-sys-shape-corner-full) | Controls track shape. |
--md-switch-track-widthLayoutFallback 3.25rem | Controls track width. |
--md-switch-unselected-handle-colorStateFallback var(--md-sys-color-outline) | Controls unselected handle color. |
--md-switch-unselected-handle-heightStateFallback 1rem | Controls unselected handle height. |
--md-switch-unselected-handle-widthStateFallback 1rem | Controls unselected handle width. |
--md-switch-unselected-hover-handle-colorStateFallback var(--md-sys-color-on-surface-variant) | Controls unselected hover handle color. |
--md-switch-unselected-hover-track-colorStateFallback var(--md-sys-color-surface-container-highest) | Controls unselected hover track color. |
--md-switch-unselected-icon-colorStateFallback var(--md-sys-color-surface-container-highest) | Controls unselected icon color. |
--md-switch-unselected-icon-sizeStateFallback 1rem | Controls unselected icon size. |
--md-switch-unselected-pressed-handle-colorStateFallback var(--md-sys-color-on-surface-variant) | Controls unselected pressed handle color. |
--md-switch-unselected-pressed-track-colorStateFallback var(--md-sys-color-surface-container-highest) | Controls unselected pressed track color. |
--md-switch-unselected-track-colorStateFallback var(--md-sys-color-surface-container-highest) | Controls unselected track color. |
--md-switch-unselected-track-outline-colorStateFallback var(--md-sys-color-outline) | Controls unselected track outline color. |
--md-switch-with-icon-handle-heightLayoutFallback 1.5rem | Controls with icon handle height. |
--md-switch-with-icon-handle-widthLayoutFallback 1.5rem | Controls with icon handle width. |