Splitter
リサイズ可能なパネル分割レイアウトです。fandhe-frontend-headless-ui の splitter mod は Root / Panel / ResizeTrigger / ResizeTriggerIndicator の 4 anatomy パーツと、role="separator" + aria-valuemin/aria-valuemax/aria-valuenow/aria-orientation/aria-controls を提供する決定的なパネルサイズ状態機械です。Themes 版と異なりドラッグ操作の視覚表現を持たず、構造・ARIA 属性・数値正規化ロジックのみを担います。
スタイル済みの表示例は Splitter を参照してください。
関連 API: fandhe-frontend-headless-ui API
Demo
枠線・余白は docs サイト側のデモ枠であり、fandhe-frontend-headless-ui 自体はスタイルを持ちません。
Panel A
Panel B
Features
- Root / Panel / ResizeTrigger / ResizeTriggerIndicator の 4 anatomy パーツと、パネルサイズ状態機械 Splitter を提供する(splitter.rs:1-11)。
- resize_trigger は role="separator" + aria-valuemin/aria-valuemax/aria-valuenow + aria-orientation(パネルレイアウトと逆向き)+ aria-controls を常に出力する(splitter.rs:13-22,238-280)。
- disabled=true のとき tabindex="-1" + aria-disabled、false のとき tabindex="0" を出力する(splitter.rs:242-275)。
- Splitter::new はパネル数 2 未満・非有限値・制約矛盾等の実現不能構成を既定(2 パネル 50/50)へ fail-closed にフォールバックする(splitter.rs:33-45,194-208)。
Anatomy
root
panel
resize-trigger
resize-trigger-indicatorAPI Reference
Arguments
| Name | Type | Default | Description |
|---|---|---|---|
| root: orientation, disabled | Orientation, bool | パネルレイアウトの向きと無効状態(splitter.rs:212-222)。 | |
| panel: id | &str | resize_trigger の aria-controls 先となる id(必須、splitter.rs:224-236)。 | |
| resize_trigger: min, max, now, controls, disabled | &str, &str, &str, &str, bool | aria-valuemin/aria-valuemax/aria-valuenow/aria-controls と tabindex 切替の元(splitter.rs:246-280)。 | |
| Splitter::new: panels, orientation | &[PanelSpec], Orientation | パネル構成(size/min/max)と向き。fail-closed に正規化する(splitter.rs:352)。 |
Data Attributes
| Part | Attribute | Observed Values |
|---|---|---|
| panel | data-orientation | horizontal |
| resize-trigger | data-orientation | horizontal |
| root | data-orientation | horizontal |
Examples
Vertical 3-panel splitter
縦方向レイアウトで 3 パネル・2 セパレータを組んだ例です(Demo は水平 2 パネル)。
Top
Middle
Bottom
Accessibility
Keyboard Interactions
| Key | Description |
|---|---|
| Tab | resize_trigger は disabled=false のとき tabindex="0" で通常の Tab 順序に入り、disabled=true のとき tabindex="-1" で除外される(splitter.rs:242-275)。Arrow キー等による実際のリサイズ操作の DOM 配線は wasm-full 層のスコープ(本モジュールは属性出力のみ)。 |
WAI-ARIA
| Attribute | Description |
|---|---|
| role="separator" | resize_trigger に固定出力する(splitter.rs:262-263)。 |
| aria-valuemin / aria-valuemax / aria-valuenow | 先行パネルのサイズ%(有限性検証・クランプ済み)を出力する(splitter.rs:56-59,264-266)。 |
| aria-orientation | セパレータ自体の向き(パネルレイアウトと逆向き、splitter.rs:13-22,267)。 |
| aria-controls | 先行パネルの id(splitter.rs:268)。 |
| aria-disabled="true" | disabled=true のときのみ出力する(splitter.rs:270-273)。 |