Navigation

同じ領域のページを切り替えます。

使いどころ

  • 設定の項目や記事の分類など、同じ領域の中のページを縦に並べて切り替える時に使います。画面の端に固定するサイドバーにはしません。AppShellのasideの列か、作業面の中に置きます。
  • アプリ全体の移動はAppShellのヘッダーのnavigation、名前で探す移動はCommandMenu、同じ場所でパネルを切り替える時はTabs、一覧の絞り込みを切り替える時はFilterBarを使います。

使い方

labelとitemsを渡します。各項目は通常のリンクで、背景のパネルを持たず、置いた場所の地(机の地やシート)の上に行を直接並べます。行の間に線は引きません。名前は13pxの濃い灰色(#51504c)、行の高さは28pxです。ホバーすると名前を黒くし、下線を引きます。

currentの項目は、行を角の無い淡い灰色の面(#e6e3de)で塗り、名前を黒い太字にして示します。

countは名前のすぐ後ろに11pxの灰色の数字で出し(「連絡先 60」)、0も表示します。ピルにはしません。iconは名前の前の18pxの列に揃え、名前より淡い灰色(#c5c5c5)で置きます。

一覧は中身の高さに収め、隣の要素の高さまで引き伸ばしません。長い名前は折り返します。

アクセシビリティ

  • ルートはlabelを読み上げ名に持つnavで、項目は通常のリンクです。アプリのメニューのrole(menuなど)は付けません。
  • currentの項目にaria-current="page"を付けます。

API

Navigation

Navigationのprops
名前型既定値説明
label必須stringnavの読み上げ名(「設定項目」など)。同じ画面に複数のnavがある時の区別にもなる。
items必須readonly NavigationItem[]並べるページ。上から順に一行ずつ出す。

読み込むCSS:layers.css、reset.css、tokens.css、base.css、layout.css、components/navigation.css

NavigationItem

NavigationItem
名前型既定値説明
label必須string項目の名前。
href必須string移動先のURL。現在地の項目もリンクのまま出す。
currentboolean今いる項目。aria-current="page"を付け、見た目でも現在地として示す。
countnumber名前の後に出す件数。0も表示し、省略すると出さない。
iconChild名前の前のアイコン(Iconなど)。

コード

HTML
Hono JSX