Skip to main content

Starwind UI v3.0 is now available! Migration guide

Installation

Usage

---
import { Switch } from "@/components/starwind/switch";
---
<Switch id="demo-switch" label="Switch" />

Variants

Sizes

Event Handling

Whenever toggled, the Switch root emits starwind:checked-change. Read the next state from event.detail.checked.

Switch Event Test

Switch is currently: off

API Reference

Styled Component API

These props are added or materially changed by the installed styled component. Standard HTML attributes remain available through the inherited interfaces noted below. Expand a prop to see named type definitions and framework-specific imports. Follow the Primitive and Runtime links for lower-level behavior props.

Switch

Inherits button attributes. Omits `aria-checked`, `defaultChecked`, `onChange`, `role`, and `type`.

Contains the following additional props:

Prop Type Default Toggle details
defaultChecked boolean —
Description
Sets the initial checked state when the choice is uncontrolled.
Classification
Primitive override
Primitive prop
switch.Root.defaultChecked
id Required string —
Description
Sets the element id used by labels and related controls.
Classification
Primitive override
Primitive prop
switch.Root.id
label string —
Description
Provides accessible text for the component.
Classification
Wrapper prop
padding number —
Description
Sets the component's internal padding.
Classification
Wrapper prop
size "sm" | "md" | "lg" "md"
Description
Selects the component's visual size.
Classification
Styled variant
variant "primary" | "secondary" | "default" | "info" | "success" | "warning" | "error" "default"
Description
Selects the component's visual variant.
Classification
Styled variant

Primitive And Runtime API

Use these references when you need the lower-level behavior APIs behind Switch.

Primitive API

Runtime API

Switch primitive
createSwitch from @starwind-ui/runtime/switch

Changelog

View version history v2.0.1 7 releases

v2.0.1

  • Updated React Runtime state synchronization so canceled proposals stay uncommitted and accepted changes remain aligned.
  • Associated the React Switch with its native form owner for submission and reset behavior.

v2.0.0

  • Rebuilt Switch on Starwind Runtime for checked state, native form participation, and checked-change events.
  • See the Switch Primitive for the underlying unstyled anatomy and behavior API.

v1.3.3

  • Refactor tailwind variants functions into separate variants.ts file

v1.3.1

  • Add starwind:init event listener to enable initialization of additional Switches loaded after an initial page load, such as when using server islands

v1.3.0

  • style and focus state updates

v1.2.0

  • Add a data-slot attribute to all components to enable global styling updates

v1.1.0

  • tailwind-variants now implemented. This uses tailwind-merge under the hood to merge Tailwind classes without style conflicts, allowing you to override any existing classes using the “class” prop.