Tactile

No dependencies
Code format

Install with shadcn

Needs a free account token. Get a token

npx shadcn@latest add @movin/toggle-tactile

About this component

A switch built for the hand: a halo on hover, the thumb stretches as you press it, and you can drag it across with the track filling as you go; let go past halfway and it switches.

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

Triggers4

  • Hover
  • Click
  • State change
  • Mouse tracking

Techniques3

  • Event position
  • CSS variables
  • 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. A click, a tap or Space still toggles it, so dragging is an extra, never the only way. touch-action: pan-y keeps vertical page scrolling on touch.

Reduced motion

The thumb jumps.

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

More toggles

See all
BalloonGet code
BoltGet code
BubblerGet code
BurnerGet code