Angle Slider
方位・回転角度のように「0〜359 度の環状値」を 1 個選ばせる入力です。値は常に 0..=359 の整数へ正規化され、359 度からの増分・0 度からの減分も符号付き剰余を経由せずラップアラウンドします。
fandhe-frontend-headless-ui の angle_slider mod が提供する構造・アクセシビリティ(WAI-ARIA・キーボード操作)・表示状態(data-*)のみを持つ unstyled 部品です。Themes 版が備える見た目(回転する thumb の CSS 表現等)は持たず、anatomy・ARIA・data-* のみを提供します。CSS は利用者が当てます。
スタイル済みの表示例は Angle Slider を参照してください。
関連 API: fandhe-frontend-headless-ui API
Demo
枠線・余白は docs サイト側のデモ枠であり、fandhe-frontend-headless-ui 自体はスタイルを持ちません。
Direction
135°
Features
- root/label/control/thumb/hidden_input/value_text の 6 anatomy パーツで構成し、角度値は常に 0..=359 の整数へ正規化される(angle_slider.rs:44-45)。
- thumb は WAI-ARIA slider パターンに従い role="slider"/aria-valuemin="0"/aria-valuemax="360"/aria-valuenow/aria-valuetext を常時出力する(angle_slider.rs:213-215, 219-238)。
- disabled が true のとき thumb は tabindex="-1" + aria-disabled、false のとき tabindex="0" を出力する(angle_slider.rs:216-218, 234-238)。
- hidden_input(<input type="hidden">)はフォーム送信専用であり、意味論(role="slider")は thumb 側が担う(angle_slider.rs:245-248)。
Anatomy
root
label
control
thumb
hidden-input
value-textAPI Reference
Arguments
| Name | Type | Default | Description |
|---|---|---|---|
| root(disabled) / control(disabled) | bool | false | 各パーツへ data-disabled を反映するかどうか(同じ引数のため 1 行に集約)。 |
| thumb(now) | &str | 現在角度の文字列表現。aria-valuenow へそのまま出力される。 | |
| thumb(value_text) | &str | "{value}deg" 形式の文字列。aria-valuetext へ出力される。 | |
| thumb(disabled) | bool | false | true のとき tabindex="-1" + aria-disabled、false のとき tabindex="0"。 |
| hidden_input(name, value) | &str, &str | フォーム送信名・送信値。<input type="hidden"> の name/value 属性へそのまま出力される。 | |
| attrs / children | Vec<(&str, &str)> / Vec<Node> | 各パーツ共通の追加属性・子ノード(全パーツで型が同じため代表 1 行に集約)。 |
Examples
Basic
270 度の風向を表す Angle Slider の組み立て例です。
root/control/thumb/hidden_input/value_text を組み立てた 270 度の例です。
Wind direction
270°
Accessibility
WAI-ARIA
| Attribute | Description |
|---|---|
| role="slider" | thumb パーツに固定付与する(angle_slider.rs:227)。 |
| aria-valuemin / aria-valuemax | thumb パーツへ常に "0"/"360" を固定出力する(angle_slider.rs:228-229)。 |
| aria-valuenow / aria-valuetext | 呼び出し側が渡す現在値・整形済みテキストをそのまま出力する(angle_slider.rs:230-231)。 |
| aria-disabled | disabled が true のとき tabindex="-1" と対で thumb へ付与する(angle_slider.rs:234-236)。 |