Skip to content
+

Switch

Switch is a UI element that let users choose between two states.

useSwitchRoot API

Import

import { useSwitchRoot } from '@base_ui/react/Switch';

Parameters

NameTypeDefaultDescription
checkedboolean-

If true, the switch is checked.

defaultCheckedboolean-

The default checked state. Use when the component is not controlled.

disabledbooleanfalse

If true, the component is disabled and can't be interacted with.

idstring-

The id of the switch element.

inputRefReact.Ref<HTMLInputElement>-

Ref to the underlying input element.

namestring-

Name of the underlying input element.

onCheckedChange(checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void-

Callback fired when the checked state is changed.

readOnlybooleanfalse

If true, the component is read-only. Functionally, this is equivalent to being disabled, but the assistive technologies will announce this differently.

requiredbooleanfalse

If true, the switch must be checked for the browser validation to pass.

Return value

NameTypeDescription
checkedboolean

If true, the component will be checked.

getButtonProps(externalProps?: React.ComponentPropsWithRef<'button'>) => React.ComponentPropsWithRef<'button'>

Resolver for the button element's props.

getInputProps(externalProps?: React.ComponentPropsWithRef<'input'>) => React.ComponentPropsWithRef<'input'>

Resolver for the input element's props.