Files
react-test/docs/data/material/components/switches/switches.md
how2ice 005cf56baf
Some checks failed
No response / noResponse (push) Has been cancelled
CI / Continuous releases (push) Has been cancelled
CI / test-dev (macos-latest) (push) Has been cancelled
CI / test-dev (ubuntu-latest) (push) Has been cancelled
CI / test-dev (windows-latest) (push) Has been cancelled
Maintenance / main (push) Has been cancelled
Scorecards supply-chain security / Scorecards analysis (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
init project
2025-12-12 14:26:25 +09:00

2.5 KiB

productId, title, components, githubLabel, materialDesign, githubSource
productId title components githubLabel materialDesign githubSource
material-ui React Switch component Switch, FormControl, FormGroup, FormLabel, FormControlLabel scope: switch https://m2.material.io/components/selection-controls#switches packages/mui-material/src/Switch

Switch

Switches toggle the state of a single setting on or off.

Switches are the preferred way to adjust settings on mobile. The option that the switch controls, as well as the state it's in, should be made clear from the corresponding inline label.

{{"component": "@mui/docs/ComponentLinkHeader"}}

Basic switches

{{"demo": "BasicSwitches.js"}}

Label

You can provide a label to the Switch thanks to the FormControlLabel component.

{{"demo": "SwitchLabels.js"}}

Size

Use the size prop to change the size of the switch.

{{"demo": "SwitchesSize.js"}}

Color

{{"demo": "ColorSwitches.js"}}

Controlled

You can control the switch with the checked and onChange props:

{{"demo": "ControlledSwitches.js"}}

Switches with FormGroup

FormGroup is a helpful wrapper used to group selection controls components that provides an easier API. However, you are encouraged to use Checkboxes instead if multiple related controls are required. (See: When to use).

{{"demo": "SwitchesGroup.js"}}

Customization

Here are some examples of customizing the component. You can learn more about this in the overrides documentation page.

{{"demo": "CustomizedSwitches.js"}}

🎨 If you are looking for inspiration, you can check MUI Treasury's customization examples.

Label placement

You can change the placement of the label:

{{"demo": "FormControlLabelPosition.js"}}

When to use

Accessibility

  • All form controls should have labels, and this includes radio buttons, checkboxes, and switches. In most cases, this is done by using the <label> element (FormControlLabel).
  • When a label can't be used, it's necessary to add an attribute directly to the input component. In this case, you can apply the additional attribute (for example aria-label, aria-labelledby, title) via the inputProps prop.
<Switch value="checkedA" inputProps={{ 'aria-label': 'Switch A' }} />