Bristle

No dependencies
Code format

Install with shadcn

Needs a free account token. Get a token

npx shadcn@latest add @movin/toggle-bristle

About this component

The track is a strip of brush bristles seen from the side: the thumb rides on their tips, bending them as it passes and pressing them down where it stops, and they spring back up behind it.

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

Triggers4

  • Click
  • State change
  • Delay stagger
  • Spring

Techniques3

  • Keyframes
  • Transition delay stagger
  • CSS variables

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. The bristles are drawing only.

Reduced motion

Nothing bends and the thumb jumps.

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

More toggles

See all
BumperGet code
ConfirmGet code
HapticGet code
KnockoutGet code