Barbell

No dependencies
Code format

Install with shadcn

Needs a free account token. Get a token

npx shadcn@latest add @movin/radio-weights

About this component

A weight picker on a barbell in a rack: 20 kg plates slide on from the ends of the sleeves, or off again, and the bar dips in the hooks as the load lands.

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

Triggers3

  • Click
  • State change
  • Delay stagger

Techniques4

  • CSS transition
  • Transition delay stagger
  • Keyframes
  • Transform only

Accessibility

Keyboard and screen readers

A role="radiogroup" with an aria-label around native radio inputs sharing one name, so the arrow keys move the choice and Tab enters the group once; :focus-visible on the input outlines its option.

Reduced motion

The plates appear at once and the bar does not dip.

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

More radios

See all
Tilt-turn windowGet code
CartonGet code
? Which framework? ↑↓
CLIGet code
Contact SheetGet code