Switch

A setting that takes effect immediately.

<Switch id="notify-projects" defaultChecked />
<Label htmlFor="notify-projects">Notify me about new projects</Label>

A switch applies as soon as it is flipped; a Checkbox waits for the form to be submitted. If there is a Save button underneath, it is a checkbox.

API

PropTypeDefault
size"default" | "sm""default"
checkedbooleanWhether the switch is currently active. To render an uncontrolled switch, use the defaultChecked prop instead.
classNamestring | ((state: SwitchRootState) => string | undefined)CSS class applied to the element, or a function that returns a class based on the component's state.
defaultCheckedbooleanWhether the switch is initially active. To render a controlled switch, use the checked prop instead.
disabledbooleanWhether the component should ignore user interaction.
formstringIdentifies the form that owns the hidden input. Useful when the switch is rendered outside the form.
idstringThe id of the hidden input element. When nativeButton is true, the id is applied to the root element.
inputRefRef<HTMLInputElement>A ref to access the hidden <input> element.
namestringIdentifies the field when a form is submitted.
nativeButtonbooleanWhether the component renders a native <button> element when replacing it via the render prop. Set to true if the rendered element is a native button.
onCheckedChange((checked: boolean, eventDetails: { reason: "none"; event: Event; cancel: () => void; allowPropagation: () => void; isCanceled: boolean; isPropagationAllowed: boolean; trigger: Element | undefined; }) => void)Event handler called when the switch is activated or deactivated.
readOnlybooleanWhether the user should be unable to activate or deactivate the switch.
renderComponentRenderFn<HTMLProps, SwitchRootState> | ReactElement<unknown, string | JSXElementConstructor<any>>Allows you to replace the component's HTML element with a different tag, or compose it with another component. Accepts a ReactElement or a function that returns the element to render.
requiredbooleanWhether the user must activate the switch before submitting a form.
styleCSSProperties | ((state: SwitchRootState) => CSSProperties | undefined)Style applied to the element, or a function that returns a style object based on the component's state.
uncheckedValuestringThe value submitted with the form when the switch is off. By default, unchecked switches do not submit any value, matching native checkbox behavior.
valuestringThe value submitted with the form when the switch is on. By default, switch submits the "on" value, matching native checkbox behavior.

Plus the DOM props of the element it renders. Source: switch/components/switch.tsx.