mirror of
https://github.com/material-components/material-web.git
synced 2026-01-09 07:21:09 +08:00
Updates API docs in our markdown files with Lit Analyzer by manually running `npm run update-docs` COPYBARA_INTEGRATE_REVIEW=https://github.com/material-components/material-web/pull/4946 from material-components:api-docs 1322ca962041a4b1f30ef7ad3ef2c7eb9087f42b PiperOrigin-RevId: 566834596
8.7 KiB
8.7 KiB
Switch
This documentation is fully rendered on the Material Web catalog.
Switches toggle the state of an item on or off.
- Design article
- API Documentation (coming soon)
- Source code
Usage
Switches are similar to checkboxes, and can be unselected or selected.
<md-switch></md-switch>
<md-switch selected></md-switch>
Icons
Icons can be used to visually emphasize the switch's selected state. Switches can choose to display both icons or only selected icons.
<md-switch icons></md-switch>
<md-switch icons selected></md-switch>
<md-switch icons show-only-selected-icon></md-switch>
<md-switch icons show-only-selected-icon selected></md-switch>
Label
Associate a label with a switch using the <label> element.
<label>
Wi-Fi
<md-switch selected></md-switch>
</label>
<label for="switch">Bluetooth</label>
<md-switch id="switch"></md-switch>
Accessibility
Add an
aria-label
attribute to switches without labels or switches whose labels need to be more
descriptive.
<md-switch aria-label="Lights"></md-switch>
<label>
All
<md-switch aria-label="All notifications"></md-switch>
</label>
Note: switches are not automatically labelled by
<label>elements and always need anaria-label. See b/294081528.
Theming
Switches supports Material theming and can be customized in terms of color and shape.
Tokens
| Token | Default value |
|---|---|
--md-switch-handle-color |
--md-sys-color-outline |
--md-switch-handle-shape |
9999px |
--md-switch-track-color |
--md-sys-color-surface-container-highest |
--md-switch-track-shape |
9999px |
--md-switch-selected-handle-color |
--md-sys-color-on-primary |
--md-switch-selected-track-color |
--md-sys-color-primary |
Example
<style>
:root {
/* System tokens */
--md-sys-color-primary: #006a6a;
--md-sys-color-on-primary: #ffffff;
--md-sys-color-outline: #6f7979;
--md-sys-color-surface-container-highest: #dde4e3;
/* Component tokens */
--md-switch-handle-shape: 0px;
--md-switch-track-shape: 0px;
}
</style>
<md-switch></md-switch>
<md-switch selected></md-switch>
API
MdSwitch
Properties
| Property | Attribute | Type | Default | Description |
|---|---|---|---|---|
disabled |
disabled |
boolean |
false |
Disables the switch and makes it non-interactive. |
selected |
selected |
boolean |
false |
Puts the switch in the selected state and sets the form submission value to the value property. |
icons |
icons |
boolean |
false |
Shows both the selected and deselected icons. |
showOnlySelectedIcon |
show-only-selected-icon |
boolean |
false |
Shows only the selected icon, and not the deselected icon. If true,overrides the behavior of the icons property. |
required |
required |
boolean |
false |
When true, require the switch to be selected when participating in form submission. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#validation |
value |
value |
string |
'on' |
The value associated with this switch on form submission. null issubmitted when selected is false. |
name |
string |
undefined |
The HTML name to use in form submission. | |
form |
HTMLFormElement |
undefined |
The associated form element with which this element's value will submit. | |
labels |
NodeList |
undefined |
The labels this element is associated with. | |
validity |
ValidityState |
undefined |
Returns a ValidityState object that represents the validity states of the switch. Note that switches will only set valueMissing if required and notselected. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#validation |
|
validationMessage |
string |
undefined |
Returns the native validation error message. https://developer.mozilla.org/en-US/docs/Web/HTML/Constraint_validation#constraint_validation_process |
|
willValidate |
boolean |
undefined |
Returns whether an element will successfully validate based on forms validation rules and constraints. https://developer.mozilla.org/en-US/docs/Web/HTML/Constraint_validation#constraint_validation_process |
Methods
| Method | Parameters | Returns | Description |
|---|---|---|---|
checkValidity |
None | boolean |
Checks the switch's native validation and returns whether or not the element is valid. If invalid, this method will dispatch the invalid event.https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/checkValidity |
reportValidity |
None | boolean |
Checks the switch's native validation and returns whether or not the element is valid. If invalid, this method will dispatch the invalid event.The validationMessage is reported to the user by the browser. UsesetCustomValidity() to customize the validationMessage.https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/reportValidity |
setCustomValidity |
error |
void |
Sets the switch's native validation error message. This is used to customize validationMessage.When the error is not an empty string, the switch is considered invalid and validity.customError will be true.https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setCustomValidity |
Events
| Event | Type | Description |
|---|---|---|
input |
InputEvent |
Fired whenever selected changes due to userinteraction (bubbles and composed). |
change |
Event |
Fired whenever selected changes due to userinteraction (bubbles). |
