Off
Click the label or press Space on the switch to toggle it.
defaultChecked={false}
WelkUI!REACT EDITIONExplore live variants, compare states, and learn every prop. Pick a component to start.
A native checkbox exposed as a switch with a regular pill track, circular thumb, comic colors, and animated sliding. Use checked/onCheckedChange for controlled state or defaultChecked for native local state. The visible label is also clickable.
import { WelkSwitch } from "@welkui/react";
<WelkSwitch label="Hero mode" defaultChecked
onCheckedChange={(checked) => console.log(checked)} />Import @welkui/react/styles.css once in your app. Stateful snippets belong inside a React component.
These are real components, not screenshots. Compare their appearance and try the controls. Key props below each preview show what changes; use the usage example above for imports and component setup.
Click the label or press Space on the switch to toggle it.
defaultChecked={false}An uncontrolled switch starts enabled and stays editable.
defaultCheckedA parent-owned boolean updates the switch and the visible output.
checked={enabled} onCheckedChange={setEnabled}Both off and on states remain readable without accepting changes.
disabled / disabled defaultCheckedRequired props are marked in the default column. Other props are optional. ReactNode accepts text or JSX.
| Prop | Type | Default | Description |
|---|---|---|---|
label | ReactNode | Required | Visible, accessible control label. |
checked | boolean | Uncontrolled | Controlled checked state; update it through the change callback. |
defaultChecked | boolean | false | Initial checked state for uncontrolled use. |
onChange | ChangeEventHandler<HTMLInputElement> | Unset | Native change event; read event.currentTarget.checked. |
onCheckedChange | (checked: boolean) => void | Unset | Boolean state callback in addition to native onChange. |
Inherits native input props except the fields replaced by this component's API: name, id, disabled, required, form, onBlur, onFocus, className, style, aria-* and data-* are supported. Forwards an input ref. type and role are fixed to checkbox and switch; size and children are omitted.
Import @welkui/react/styles.css once in your app entry or Next.js root layout. The previews use the default theme; override --welk-* CSS tokens in your app to customize it.
For Next.js, put hooks and event handlers in a component beginning with "use client". Keep state local to the component using the control. The library preserves its client boundaries and uses your installed React version.
Use defaultValue or defaultChecked for uncontrolled fields, or a state value and its change callback for controlled fields. Do not switch between these modes during the lifetime of a field.
Modal and notification examples start closed: use their Try buttons to see them. Disabled examples are deliberately non-interactive. Validate forms, uploads, authentication, and server responses in your application; these components only provide UI.