Slider
주어진 범위 내에서 사용자가 값을 선택하는 입력 컴포넌트입니다.
33%
import { Slider } from "@chadcn/ui"
import { useState } from "react"
export function SliderDemo() {
const [value, setValue] = useState([33])
return (
<div className="w-full max-w-sm space-y-2">
<div className="flex items-center justify-between">
<label className="text-sm font-medium">볼륨</label>
<span className="text-sm tabular-nums text-muted-foreground">
{Math.round(value[0])}%
</span>
</div>
<Slider value={value} onValueChange={setValue} max={100} step={1} />
</div>
)
}동작 방식
- 부정확한 값 선택을 방지하기 위해 클릭 드래그가 비활성화되어 있습니다. 대신 커서 충돌 방식으로 동작합니다 — 커서를 thumb에 스치면 자연스럽게 속도가 전달됩니다.
- thumb에 관성이 적용되어 있으며 min/max 경계에서 튕겨, 허용 범위에 대한 명확한 촉각적 피드백을 제공합니다.
- 키보드 사용자가 실수로 값을 변경하는 것을 방지하기 위해 탭 포커스가 제거되어, 복잡한 레이아웃에서 폼 무결성을 보호합니다.
설치
준비 중패키지가 아직 npm에 게시되지 않았습니다.
pnpm add @chadcn/ui사용법
import "@chadcn/ui/styles.css"
import { Slider } from "@chadcn/ui"<Slider defaultValue={[33]} max={100} step={1} />준비 중패키지가 아직 npm에 게시되지 않았습니다.
예제
범위
두 개의 값 배열을 사용하여 범위 슬라이더를 만듭니다.
import { Slider } from "@chadcn/ui"
export function SliderRange() {
return (
<div className="w-full max-w-sm">
<Slider defaultValue={[25, 75]} max={100} step={1} />
</div>
)
}제어
value와 onValueChange를 사용하여 슬라이더 상태를 제어합니다.
값: 50
import { Slider } from "@chadcn/ui"
import { useState } from "react"
export function SliderControlled() {
const [value, setValue] = useState([50])
return (
<div className="w-full max-w-sm space-y-2">
<Slider
value={value}
onValueChange={setValue}
max={100}
step={1}
/>
<p className="text-sm text-muted-foreground">
값: {value[0]}
</p>
</div>
)
}비활성화
disabled prop으로 슬라이더를 비활성화합니다.
import { Slider } from "@chadcn/ui"
export function SliderDisabled() {
return (
<div className="w-full max-w-sm">
<Slider defaultValue={[50]} max={100} step={1} disabled />
</div>
)
}API 레퍼런스
자세한 내용은 Radix UI Slider 문서를 참고하세요.