Skip to content

Switch ​

Switch runtime: Root owns checked plus loading/disabled; Thumb only consumes context.

Runtime ​

State contracts come from @varo-ui/headless; rendered parts come from @varo-ui/h5/primitives or @varo-ui/weapp/primitives.

Demo ​

Package@varo-ui/headless

Basic usage ​

Use the Demo panel above to switch H5 and Weapp primitive preview/code; each runtime renders only the current entry.

Loading ​

Both loading and disabled close interaction; loading fits short async locks.

Parts ​

PartPurpose
SwitchRootState and toggle
SwitchThumbThumb part

Props ​

PropTypeDefaultDescription
checkedboolean | undefinedundefinedControlled checked state
defaultCheckedbooleanfalseUncontrolled initial state
disabledbooleanfalseDisabled
loadingbooleanfalseLoading; not toggleable
asstring'button'Root element tag

Events ​

EventPayloadDescription
update:checkedbooleanControlled sync
checkedChangebooleanState change

Accessibility ​

  • Root defaults to button semantics.
  • Loading/disabled states are not toggleable.

Platform notes

  • Both runtimes share checked/loading contracts.
  • Track visuals and motion belong to UI wrappers. :::