Slider
Sliderは、指定された範囲内から値を選択するための入力コントロールです。 単一値の選択とレンジ(範囲)選択の両方をサポートしています。
Tooltip
Labels
3
Sizes
S/Rsingle/range
Mode
Radix
Base
Playground
Preview
Dsingle50
Size
Color
Mode
Step
Direction
Tooltip
Options
<Slider
defaultValue={[50]}
/>Sizes
smトラック4px
サム14px
defaultトラック6px
サム18px
lgトラック8px
サム22px
| Size | トラック高さ | サム | プレビュー |
|---|---|---|---|
sm | 4px | 14px | |
default | 6px | 18px | |
lg | 8px | 22px |
Features
Range
defaultValueに2つの値を渡すことで、レンジスライダーとして動作します。
With Value
制御モードで値を表示するパターンです。
50
States
Default
Disabled
API
Props
valueundefinednumber[]制御モードでの値(配列)
defaultValueundefinednumber[]非制御モードでの初期値(配列)
onValueChangeundefined(value: number[]) => void値変更時のコールバック(ドラッグ中も発火)
onValueCommitundefined(value: number[]) => voidドラッグ完了時のコールバック
color"default""default" | "primary"レンジとサムの色
size"default""sm" | "default" | "lg"スライダーのサイズ
min0number最小値
max100number最大値
step1numberステップ値
minStepsBetweenThumbs0numberレンジモードでのサム間の最小ステップ数
showTooltip"never""auto" | "always" | "never"ツールチップ表示モード。autoはホバー/ドラッグ時に表示
formatLabelundefined(value: number) => stringツールチップの値フォーマット関数
startContentundefinedReactNodeスライダーの左側に表示するコンテンツ(アイコン、ラベル等)
endContentundefinedReactNodeスライダーの右側に表示するコンテンツ
disabledfalseboolean無効States
orientation"horizontal""horizontal" | "vertical"表示方向
invertedfalseboolean値の方向を反転
nameundefinedstringフォームのname属性
| Name | Type | Default | Description |
|---|---|---|---|
value | number[] | undefined | 制御モードでの値(配列) |
defaultValue | number[] | undefined | 非制御モードでの初期値(配列) |
onValueChange | (value: number[]) => void | undefined | 値変更時のコールバック(ドラッグ中も発火) |
onValueCommit | (value: number[]) => void | undefined | ドラッグ完了時のコールバック |
color | "default" | "primary" | "default" | レンジとサムの色 |
size | "sm" | "default" | "lg" | "default" | スライダーのサイズ |
min | number | 0 | 最小値 |
max | number | 100 | 最大値 |
step | number | 1 | ステップ値 |
minStepsBetweenThumbs | number | 0 | レンジモードでのサム間の最小ステップ数 |
showTooltip | "auto" | "always" | "never" | "never" | ツールチップ表示モード。autoはホバー/ドラッグ時に表示 |
formatLabel | (value: number) => string | undefined | ツールチップの値フォーマット関数 |
startContent | ReactNode | undefined | スライダーの左側に表示するコンテンツ(アイコン、ラベル等) |
endContent | ReactNode | undefined | スライダーの右側に表示するコンテンツ |
disabled | boolean | false | 無効States |
orientation | "horizontal" | "vertical" | "horizontal" | 表示方向 |
inverted | boolean | false | 値の方向を反転 |
name | string | undefined | フォームのname属性 |
Customization
startContent / endContentにReactNodeを渡して、スタイルを自由にカスタマイズできます。
アイコン付き
startContent={<VolumeOff />}
endContent={<Volume2 />}スタイル付きラベル
$0$100
startContent={<span className="text-xs font-mono font-bold text-primary">$0</span>}
endContent={<span className="text-xs font-mono font-bold text-primary">$100</span>}アイコン + ツールチップ
<Slider
showTooltip="always"
formatLabel={(v) => `${v}%`}
startContent={<Sun />}
endContent={<Sun />}
/>Tip:startContent / endContentはReactNodeなので、文字列・アイコン・カスタムコンポーネントなど何でも渡せます。フォントサイズはSliderのsizeに合わせて自動調整されます。