fetaUI
GitHub

Wheel Picker

Three wheels for a time. Set time waits until every wheel has settled.

FreeWeb and MobileMotion

Preview

npx shadcn add @fetaui/wheel-picker
Playground
Pickup time08:41 AM

Scroll or drag a column

Saved 08:41
Evening, by five minutes
Pickup time11:05 PM

Scroll or drag a column

Icons animation
Motion

Installation

Terminal· bash
 npx shadcn add @fetaui/wheel-picker

Accessibility

  • Each wheel is a spinbutton with a text value.
  • Set time is disabled while a wheel moves.

Motion

  • Wheels flick with inertia and settle on a 260 and 28 spring.
  • Numbers blur slightly while moving.
  • With reduced motion, wheels step a row at a time, with no blur.

Responsive behavior

  • 34 px rows at 300 px wide on Web, and 40 px rows at full width on Mobile.

Performance

  • Reels move on motion values, so a drag does not re-render React.
  • The scroll settle timer and running spring are stopped on unmount.

Note for AI

Give your coding assistant the Markdown reference instead of screenshots.

  • Import WheelPicker from @/components/fetaui/wheel-picker. It composes Button.
  • value is 24 hour text, read when it mounts. Remount with a key to change it from outside.
  • onValueChange fires on Set time only, and Set time is disabled until the wheels settle.
  • Cancel shows only with onCancel. title defaults to Pickup time.

Related