Basic Switch
Standard labelled toggle switch.
Atoms
Toggle switch for binary states and instant configuration.
pnpm add @quinkit/uiimport { Switch } from "@quinkit/ui";Live previews · code · themes · viewport · dark mode
Standard labelled toggle switch.
A settings row with label and helper text.
Receive product news and offers.
Disabled on and off states.
Grouped switches for managing account notification channels.
Switch with inline spinner during async toggle actions.
Temporarily block external traffic.
Switch is a Week 3 atom in @quinkit/ui. It is implemented with strict TypeScript, design-token classes, dark-mode compatible colors, Storybook coverage, and unit tests.
aria-label for icon-only/unlabelled controls.focus-visible and the shared ring token.The component uses semantic tokens such as bg-background, text-foreground, border-input, bg-primary, and text-primary-foreground, so it adapts to .dark and theme palettes. Motion-sensitive styling uses motion-reduce:* or avoids required animation.
Public props are documented with JSDoc in packages/ui/src/components/atoms/switch/switch.tsx.
Switch adheres to WAI-ARIA design patterns for accessible web components.
Keyboard Navigation
Tab / Shift + Tab — Focuses control and moves between interactive elements.Space / Enter — Triggers action or toggles selection.Escape — Closes open popovers, overlays, or dropdown menus.ARIA Standards
aria-* attributes.ring-ring) visible in both light & dark mode.Add a shadcn-compatible bridge file to your project that re-exports from @quinkit/ui.
npx shadcn@latest add https://quinkit-ui.vercel.app/r/switch.json