本文へスキップ
Material 3 Expressivev1.3.0-rc.1
ナビゲーション · 準拠済み

FloatingToolbar

FloatingToolbarFloatingToolbarPropsFloatingToolbarOrientationFloatingToolbarVariant

Floating toolbar

Arrow keys move roving focus between items; Home/End jump to the ends. Standard and vibrant color pairings, horizontal and vertical orientation.

playground/examples/FloatingToolbar.example.tsx

FloatingToolbarはツールバー項目(通常はIconButton)を浮かぶピル型コンテナーにまとめます。WAI-ARIA APGのtoolbarパターンに沿ったロービングtabindexのキーボード操作に対応します。

import { FloatingToolbar, IconButton } from '@language-lit/material3-expressive'
import '@language-lit/material3-expressive/styles.css'

<FloatingToolbar aria-label="Formatting">
  <IconButton aria-label="Bold"><BoldIcon /></IconButton>
  <IconButton aria-label="Italic"><ItalicIcon /></IconButton>
  <IconButton aria-label="Underline"><UnderlineIcon /></IconButton>
</FloatingToolbar>

仕様

  • childrenは直接描画され、通常はIconButtonを渡します。既定のorientation="horizontal"では左右の矢印キー、orientation="vertical"では上下の矢印キーで項目間を折り返しながら移動できます。Home/Endで先頭/末尾に移動します。現在の項目のみがページのTab順に含まれてtabindex="0"となり、ほかの項目はtabindex="-1"になります。
  • variant('standard' | 'vibrant'、既定値'standard')でコンテナーとコンテンツの色の組み合わせを選びます。
  • expanded/defaultExpanded/onExpandedChangeでコンテナー全体の表示/折りたたみを制御します。スクロールに応じて表示を切り替えるには、利用側のスクロールリスナーと接続します。FloatingToolbar自体はスクロールを管理しません。
  • role="toolbar"とaria-orientationを設定します。必須のアクセシブルな名前はaria-labelまたはaria-labelledbyで指定します。
  • ビューポートに対する配置(独自のposition: fixedやsticky)は行いません。レイアウトに合わせてclassNameまたはstyleを指定してください。

トークンと境界

色、形状、モーション時間はすべて、Material3Providerでスコープされる--m3e-comp-floating-toolbar-* CSSカスタムプロパティから取得します。FloatingToolbarは実行時スタイルを挿入せず、requestAnimationFrameループも使いません。