Controls & Inputs

Physics Number Picker

관성 스크롤과 스냅 물리를 결합한 숫자 선택 입력 컴포넌트입니다.

Preview

value control

Physics Number Picker

drag or scroll to settle

24

Installation

bash
Copied
1pnpm dlx shadcn@latest add https://ryong.dev/r/physics-number-picker.json

Code

typescript
Copied
1"use client"23import { useState } from "react"4import { PhysicsNumberPicker } from "@/components/physics-number-picker"56export default function Example() {7  const [value, setValue] = useState(24)89  return (10    <PhysicsNumberPicker11      value={value}12      min={0}13      max={59}14      onValueChange={setValue}15    />16  )17}

Props

PropTypeDefaultDescription
classNamestring-Additional classes merged onto the component.
valuenumber-Controlled selected value.
defaultValuenumber-Initial value for uncontrolled usage.
minnumber0Minimum selectable value.
maxnumber59Maximum selectable value.
onValueChange(value: number) => void-Called when the picker snaps to a new value.
wrapbooleantrueWhether values loop from max to min.
itemHeightnumber56Height of each picker row in pixels.
visibleItems5 | 7 | 97Odd number of visible rows.
formatValue(value: number, isSelected: boolean) => React.ReactNode-Custom renderer for each value.
labelstring"Number picker"Accessible spinbutton label.
styleReact.CSSProperties-Inline style and picker CSS variables.

Reference

OpenRun ChainPicker