Skip to content
fandhe-frontendcore v0.4.3
GitHub

Slider

fandhe-frontend-pre-styled-ui の slider mod が提供するスタイル済み Slider 部品です。

関連 API: fandhe-frontend-pre-styled-ui API / fandhe-frontend-headless-ui API

Demo

min/max/step でクランプされる連続値スライダー。塗りつぶし・つまみの位置は --fandhe-slider-percent の 1 点で伝搬します。vertical では塗りつぶし・つまみ・marker がいずれも下端起点で伝搬します。

Volume
At max
Disabled
Readonly
Invalid
Vertical
Vertical

Features

  • size/colorPalette variant クラスを root へ付与し、headless-ui の Slider 状態機械へ委譲する。
  • range パーツが --fandhe-slider-percent を含む style を動的値の唯一の出力点として持つ。
  • イシュー #2020(shadcn/ui 突合): marker/marker_group パーツを styled 化した。marker は --fandhe-slider-marker-percent を唯一の動的値出力点として持ち、marker-group は pointer-events: none のオーバーレイコンテナとして track/thumb のクリック・ドラッグ判定を奪わない。複数 thumb(range slider)は headless-ui の構造的制約により本コンポーネント層では対応しない(意図的非採用)。
  • vertical(data-orientation="vertical")では marker も bottom アンカーで位置決めされる(イシュー #2216 で Demo / Examples に可視化)。

Anatomy

root
  label
  control
    track
      range
    thumb
    marker-group
      marker
  hidden-input

API Reference

Arguments

NameTypeDefaultDescription
sizeSizeSize::Mdサイズ variant。
paletteColorPaletteColorPalette::AccentcolorPalette 軸。
state&Slider—headless-ui の値状態機械。
disabledboolfalse無効化状態。
attrsVec<(&str, &str)>—root パーツへ合成する追加属性。
childrenVec<Node>—root 配下の子ノード(通常 range/thumb_styled を含む)。

Data Attributes

PartAttributeObserved Values
controldata-disabled(値なし)
controldata-invalid(値なし)
controldata-orientationhorizontal, vertical
controldata-readonly(値なし)
labeldata-disabled(値なし)
labeldata-invalid(値なし)
labeldata-readonly(値なし)
markerdata-orientationhorizontal, vertical
markerdata-stateover-value, under-value
markerdata-value0, 100, 50
rangedata-disabled(値なし)
rangedata-invalid(値なし)
rangedata-orientationhorizontal, vertical
rangedata-readonly(値なし)
rootdata-disabled(値なし)
rootdata-invalid(値なし)
rootdata-orientationhorizontal, vertical
rootdata-readonly(値なし)
thumbdata-disabled(値なし)
thumbdata-invalid(値なし)
thumbdata-orientationhorizontal, vertical
thumbdata-readonly(値なし)
trackdata-disabled(値なし)
trackdata-invalid(値なし)
trackdata-orientationhorizontal, vertical
trackdata-readonly(値なし)

CSS Variables

VariableDefault
--fandhe-slider-marker-percent0%
--fandhe-slider-percent0%
--fandhe-slider-thumb-size1.1rem
--fandhe-slider-track-height0.375rem
--fandhe-slider-track-length12rem

Examples

Vertical + marker

Orientation::Vertical の Slider を渡すと control/track/range/thumb/marker が data-orientation="vertical" を出力し、recipe の vertical 状態規則で bottom アンカー配置へ切り替わる例です。marker の位置も --fandhe-slider-marker-percent を bottom から参照します(shadcn/ui に vertical 参照例は無く、本リポジトリ固有の可視化)。

Brightness