Switch
Features
- Full keyboard navigation.
- Can be controlled or uncontrolled.
Installation
Install the component from your command line.
$ npm add reka-ui
Anatomy
Import all parts and piece them together.
<script setup>
import { SwitchRoot, SwitchThumb } from 'reka-ui'
</script>
<template>
<SwitchRoot>
<SwitchThumb />
</SwitchRoot>
</template>
API Reference
Root
Contains all the parts of a switch. An input
will also render when used within a form
to ensure events propagate correctly.
Prop | Default | Type |
---|---|---|
as | 'button' | AsTag | Component The element or component this component should render as. Can be overwrite by |
asChild | boolean Change the default rendered element for the one passed as a child, merging their props and behavior. Read our Composition guide for more details. | |
defaultValue | boolean The state of the switch when it is initially rendered. Use when you do not need to control its state. | |
disabled | boolean When | |
id | string | |
modelValue | boolean The controlled state of the switch. Can be bind as | |
name | string The name of the field. Submitted with its owning form as part of a name/value pair. | |
required | boolean When | |
value | 'on' | string The value given as data when submitted with a |
Emit | Payload |
---|---|
update:modelValue | [payload: boolean] Event handler called when the value of the switch changes. |
Slots (default) | Payload |
---|---|
modelValue | boolean Current value |
Data Attribute | Value |
---|---|
[data-state] | "checked" | "unchecked" |
[data-disabled] | Present when disabled |
Thumb
The thumb that is used to visually indicate whether the switch is on or off.
Prop | Default | Type |
---|---|---|
as | 'span' | AsTag | Component The element or component this component should render as. Can be overwrite by |
asChild | boolean Change the default rendered element for the one passed as a child, merging their props and behavior. Read our Composition guide for more details. |
Data Attribute | Value |
---|---|
[data-state] | "checked" | "unchecked" |
[data-disabled] | Present when disabled |
Accessibility
Adheres to the switch
role requirements.
Keyboard Interactions
Key | Description |
---|---|
Space | Toggles the component's state. |
Enter | Toggles the component's state. |