Skip to content

Slider

概要

スライダー。シングルサム、レンジ(マルチサム)、マーカー表示に対応。ドラッグとキーボード操作をサポート。

Usage 使用例

基本

tsx
<Slider.Root min={0} max={100} defaultValue={[50]}>
  <Slider.Label>音量</Slider.Label>
  <Slider.ValueText />
  <Slider.Control>
    <Slider.Track>
      <Slider.Range />
    </Slider.Track>
    <Slider.Thumb index={0} />
  </Slider.Control>
</Slider.Root>

コンポーネント構成

パーツ説明
Slider.Rootルートコンポーネント。状態管理を提供
Slider.Labelラベル
Slider.ValueText現在の値を表示
Slider.Controlドラッグ領域
Slider.Trackトラック(レール)
Slider.Range塗りつぶし範囲
Slider.Thumbつまみ
Slider.DraggingIndicatorドラッグ中のみ表示
Slider.HiddenInputフォーム送信用の隠し input
Slider.MarkerGroupマーカーグループ
Slider.Marker個別のマーカー

API Reference

Slider.Root

Propデフォルト説明
minnumber0最小値
maxnumber100最大値
stepnumber1ステップ
valuenumber[]現在の値(制御モード)
defaultValuenumber[][0]初期値(非制御モード)
onValueChange(details: { value: number[] }) => void値変更コールバック(ドラッグ中も発火)
onValueChangeEnd(details: { value: number[] }) => void値変更完了コールバック
orientation"horizontal" | "vertical""horizontal"方向
size"sm" | "md" | "lg""md"サイズ
variant"outline" | "solid""outline"外観バリアント
disabledbooleanfalse無効化
readOnlybooleanfalse読み取り専用
origin"start" | "center""start"範囲の起点
minStepsBetweenThumbsnumber0マルチサム時の最小ステップ間隔

Slider.Thumb

Prop説明
indexnumberサムのインデックス

Slider.Marker

Prop説明
valuenumberマーカーの値

レンジスライダー

tsx
<Slider.Root min={0} max={100} defaultValue={[25, 75]} minStepsBetweenThumbs={1}>
  <Slider.Label>範囲</Slider.Label>
  <Slider.ValueText />
  <Slider.Control>
    <Slider.Track>
      <Slider.Range />
    </Slider.Track>
    <Slider.Thumb index={0} />
    <Slider.Thumb index={1} />
  </Slider.Control>
</Slider.Root>

マーカー付き

tsx
<Slider.Root min={0} max={100} step={25} defaultValue={[50]}>
  <Slider.Control>
    <Slider.Track>
      <Slider.Range />
    </Slider.Track>
    <Slider.Thumb index={0} />
  </Slider.Control>
  <Slider.MarkerGroup>
    <Slider.Marker value={0}>0%</Slider.Marker>
    <Slider.Marker value={50}>50%</Slider.Marker>
    <Slider.Marker value={100}>100%</Slider.Marker>
  </Slider.MarkerGroup>
</Slider.Root>

キーボード操作

キー動作
/ 値を1ステップ減少
/ 値を1ステップ増加
PageDown値を大きく減少(範囲の10%)
PageUp値を大きく増加(範囲の10%)
Home最小値に設定
End最大値に設定

Mithril UI Kit Documentation