コンポーネント
← すべてのコンポーネント

あふれ項目の退避メニュー

stimeo--overflow-menu

ツールバーの収まらない項目を More ドロップダウンへ退避(優先度低い順)し、空きが戻れば復帰。

  • Menu Button

stimeo--overflow-menu コントローラはツールバーの項目をコンテナ幅に収めます。ResizeObserver でコンテナを監視し、デバウンスした変化ごとに項目を実測して、収まらない分を優先度の低い順に More ドロップダウンへ退避し、空きが戻れば復帰させます。優先度は data-priority で読み(小さいほど長く残し、無印は最先に退避)、項目は複製せず移動するため、退避した項目にフォーカスがあれば追従します。メニューのアクセシビリティは Menu に委譲し、退避項目には role="menuitem" / tabindex="-1" / menu の item ターゲットを付与(authored の role / tabindex は退避時に保存し復帰時に復元)。あふれが無ければ More ボタンを hidden にします。コントローラ要素は data-overflowing / data-overflow-count を持ち、遷移ごとに change を発火します。挙動のみで装飾は持ちません。状態は毎回 DOM から判定する(モジュールスコープ状態なし)ため connect で Turbo morph 後も再同期し、ResizeObserver とデバウンスタイマは disconnect(Turbo 遷移含む)で解放します。項目を動的に追加した後は update アクションで再計算できます。

実行中