Forms and selection · stable · MIT

Switch

A binary Base UI control with one connected track and gel thumb.

Install editable source

Add Switch

Base UI / canonicalnpx shadcn@latest add https://gummyui.dev/r/gummy-switch.json
Radix UI counterpartnpx shadcn@latest add https://gummyui.dev/r/gummy-radix-switch.json

Canonical dependency: @base-ui/react. Radix counterpart: @radix-ui/react-switch. Registry dependencies are resolved automatically.

Behavior contract

Semantics before surface

Semantics

A labelled switch with optional description and native form state.

Keyboard

Space toggles.

System support

Light and dark themes, logical RTL layout, reduced motion, responsive content, and forwarded public refs.

Source-derived reference

Anatomy and public API

Exported anatomy

These public React parts are read directly from the canonical source during the documentation build.

  • GummySwitch

Prop contracts

GummySwitchProps

Composes Omit< Switch.Root.Props, "children" | "nativeButton" | "render" > & { /** Visible control label. */ label: React.ReactNode; /** Optional supporting copy associated with the switch. */ description?: React.ReactNode; /** Keeps forced states in the Lab visually inspectable without changing semantics. */ previewFocus?: boolean; className?: string; }

Troubleshooting

Check behavior before surface.

Live product source

Inspect the canonical states

The Component Lab exercises real source across default, focus, disabled, responsive, dark, reduced-motion, and RTL contexts.

Open the live Component Lab

Interactive inspection

Try Switch in context

Resize the canvas, switch its theme, or reverse its reading direction without changing the rest of the page.

Width
Theme
Direction

Send one summary every Friday.

Switch preview: fluid width, light theme, left to right.

Radix UI counterpart

Try Switch with Radix UI

This is the real separately installable Radix source using the same Gummy material and behavior contract.

Install compatible releases.

Editable source

Read before you install

Canonical Base UI or native source

Loading editable source…

Radix UI counterpart

Loading editable source…