Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Switch examples · Labeled

Switch with Description for React

A switch with a label and a line of description beside it.

Framework
UI library

A settings row: the label and a line of description on one side, the Switch on the other. The description says what the setting does, Receive notifications on your device, when the label alone isn't enough.

Preview

Preview width

Installation

Sign in to get your install command
Free with an account. It carries your token, so the CLI installs everything in one go.

FAQ

How are the label, the description and the switch arranged?

A horizontal Field holds a FieldContent, with the FieldLabel and the FieldDescription, and then the Switch. max-w-sm keeps the row from stretching.

Is the description tied to the switch?

The label is: clicking Push Notifications toggles the switch, and screen readers read it as the switch's name. The Switch has an id, and the FieldLabel points at it with htmlFor.

How do I control this switch in React?

Nothing in this file sets the on state, so the switch starts off and keeps its own state. To control it, keep the on or off state in your own state and pass it back. To start it on, use the default prop. The prop is defaultChecked. Pass checked; onCheckedChange receives the new boolean.

Does this switch submit with a form?

Give it a name. When on, it submits its value, which defaults to on. When off, it submits nothing. With Base UI, uncheckedValue sets what it submits when off.

How do I make this switch smaller?

Set size="sm". The default size is default. For a different track or thumb, edit those classes in the Switch file in your ui folder.

Which keys toggle the switch?

Tab moves focus to the switch. Space toggles it, and so does Enter.