Confirm

No dependencies
Code format

Install with shadcn

Needs a free account token. Get a token

npx shadcn@latest add @movin/toggle-confirm

About this component

For a setting you should not turn off by accident: on is one press, but off stops the thumb halfway and asks for a second press while a short timer runs out; leave it and it springs back on.

Dependencies
None
Difficulty
Intermediate
Reduced motion
Respected
Theme
Light and dark
Follows page color-scheme

Triggers2

  • Click
  • State change

Techniques3

  • State machine
  • Keyframes
  • CSS transition

Accessibility

Keyboard and screen readers

A native checkbox with role="switch" inside a <label>, so Space toggles it and the visible text names it; :focus-visible on the input outlines the track, which is aria-hidden. While it asks, the switch is still on, and the request is in a polite live region outside the label, linked with aria-describedby, so it is announced.

Reduced motion

The thumb does not slide.

Use it in anything you build, commercial and client work included. Licence

More toggles

See all
HapticGet code
KnockoutGet code
Click to save as you type
PeekGet code
PendingGet code