1. framework components
  2. switch

Switch

Toggle between two states, such as on/off.

Checked Color

Use the Tailwind data attribute syntax to target the active state using data-[state=checked]

List



Icons

Direction

API Reference

Root

txt
cursor-pointer data-disabled:cursor-not-allowed data-disabled:opacity-50 inline-flex gap-2 items-center rounded data-focus-visible:outline-2 data-focus-visible:outline-offset-1 data-focus-visible:outline-surface-950-50
PropDefaultType
idsPartial<{ root: string; hiddenInput: string; control: string; label: string; thumb: string; }> | undefined

The ids of the elements in the switch. Useful for composition.

labelstring | undefined

Specifies the localized strings that identifies the accessibility elements and their states

disabledboolean | undefined

Whether the switch is disabled.

invalidboolean | undefined

If `true`, the switch is marked as invalid.

requiredboolean | undefined

If `true`, the switch input is marked as required,

readOnlyboolean | undefined

Whether the switch is read-only

onCheckedChange((details: CheckedChangeDetails) => void) | undefined

Function to call when the switch is clicked.

checkedboolean | undefined

The controlled checked state of the switch

defaultCheckedboolean | undefined

The initial checked state of the switch when rendered. Use when you don't need to control the checked state of the switch.

namestring | undefined

The name of the input field in a switch (Useful for form submission).

formstring | undefined

The id of the form that the switch belongs to

value"on"string | number | undefined

The value of switch input. Useful for form submission.

dir"ltr""ltr" | "rtl" | undefined

The document's text/writing direction.

getRootNode(() => ShadowRoot | Node | Document) | undefined

A root node to correctly resolve document in custom environments. E.x.: Iframes, Electron.

elementSnippet<[HTMLAttributes<"label">]> | undefined

Render the element yourself

Provider

PropDefaultType
value() => SwitchApi<PropTypes>

elementSnippet<[HTMLAttributes<"label">]> | undefined

Render the element yourself

Context

PropDefaultType
childrenSnippet<[() => SwitchApi<PropTypes>]>

Control

txt
block preset-filled-surface-200-800 h-6 w-10 p-0.5 rounded-full flex justify-start data-[state=checked]:preset-filled-primary-500
PropDefaultType
elementSnippet<[HTMLAttributes<"span">]> | undefined

Render the element yourself

Thumb

txt
grid justify-center items-center h-full aspect-square rounded-full bg-surface-50 text-surface-contrast-50 fill-surface-contrast-50 transition-transform duration-100 data-[state=checked]:translate-x-4 rtl:data-[state=checked]:-translate-x-4
PropDefaultType
elementSnippet<[HTMLAttributes<"span">]> | undefined

Render the element yourself

Label

txt
label-text
PropDefaultType
elementSnippet<[HTMLAttributes<"span">]> | undefined

Render the element yourself

HiddenInput

PropDefaultType
elementSnippet<[HTMLAttributes<"input">]> | undefined

Render the element yourself

View page on GitHub