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

NavigationRail

NavigationRailNavigationRailProps
playground/examples/NavigationRail.example.tsx

NavigationRailはNavigationBarの縦型の兄弟コンポーネントです。固定サイズのアイコン、幅が広がるピル形のインジケーター、ラベルという同じ項目構成を、固定幅のサイドカラムに並べます。項目の上には任意のheader領域を置けます。

import { FloatingActionButton, Icon, NavigationRail } from '@language-lit/material3-expressive'
import '@language-lit/material3-expressive/styles.css'

<NavigationRail
  aria-label="Primary sections"
  header={<FloatingActionButton aria-label="Compose" icon={<Icon source="add" />} size="medium" />}
  items={[
    { value: 'home', label: 'Home', icon: <Icon source="home" /> },
    { value: 'favorites', label: 'Favorites', icon: <Icon source="favorite" /> },
  ]}
/>

仕様

  • itemsとvalue/defaultValue/onValueChangeの仕様はNavigationBarと同じです。NavigationItemの全形式とリンク対応のhref動作はそちらの説明を参照してください。
  • headerは利用側が用意する領域で、通常はFloatingActionButtonやメニューボタンを置きます。固定されたソースのheaderスロットに対応し、項目の上に表示されます。
  • 選択状態でもアイコンを24×24pxの枠内に保ちます。NavigationBarと同様、中央のインジケーター背景だけが幅0から56×32pxに広がります。

トークンと境界

色、形状、モーションの値は--m3e-comp-navigation-rail-*の1つの登録にまとめられています。テーマの上書きはMaterial3Providerのスコープ内で適用されます。NavigationRailは実行時スタイルを注入せず、Next.js、Vite、ルーター、アニメーションライブラリ、非公開のアプリケーションコードをインポートしません。