Breadcrumb

このコンポーネントについて

役割と種類

Breadcrumbは日本語で「パンくず」と呼ばれるコンポーネントです。ナビゲーションの一つで、サイトの全体構造と現在位置の関係を、ホームを起点とした階層表現によって示します。ユーザーはBreadcrumbにて現在アクセスしているページの位置の把握や効率的な上位階層への移動ができます。

Breadcrumbは、Bottom NavigationやSide Navigationなど、他のNavigationコンポーネントを補完することを目的としています。Breadcrumbは、主要なNavigationを強化しますが、完全に置き換えることはできません。

Breadcrumbは、ホームを起点とした階層表現であるため、ホームのリンクを先頭に設ける必要があります。

構成

Breadcrumbは、Itemと、各Itemを区切るSeparatorで構成されています。

いつ使うべきか / 使わないべきか

Breadcrumbは、階層的に配置されたページを持つ大規模なWebサイト・Webアプリケーションで効果的です。特に、外部ソースからアクセスされる可能性が高いページでは、Breadcrumbの使用を推奨します。

位置を示す必要がない場合

ルート(ホーム)ディレクトリでは現在地を示す必要がないためBreadcrumbを使用しない選択肢も検討できます。また、階層構造全体の中における現在地を示す必要性が低い(ランディングページなど)場合においてもBreadcrumbを使用しない選択肢を検討できます。

ネイティブアプリケーションの場合

ネイティブアプリケーションでは、プラットフォームの原則的に通常Breadcrumbが使用されない場面では無理に使用せず、プラットフォームの原則に則ったナビゲーション表現にしましょう。

インタラクション

対象ページへの遷移

BreadcrumbのItemに対するクリックイベントで、そのItemが指すページへの遷移を行います。

マークアップ

BreadcrumbのItemには、リンク(a要素)とテキスト(span要素)の2種類があります。

リンク

末尾のItemを除くすべてのItemは、遷移可能なa要素を使用します。

テキスト

末尾のItemは、現在位置を指すItemであるため、a要素ではなくspan要素を使用します。

スタイル

Size

Modifier class
S.-size-s
M*.-size-m
L.-size-l

Density

Modifier class
Dense.-density-dense
Normal*.-density-normal
Comfort.-density-comfort

Overflow

内容するItemの文字が多く、幅が長い場合を考慮したオプションです。

Modifier class
Wrap*.-overflow-wrap
Scroll.-overflow-scroll

アクセシビリティ確保の観点で、基本的にはWrap(親要素の幅で折り返される)をデフォルトとして推奨します。

Scroll(親要素の幅の中で横スクロール可能にする)のオプションを使用する場合は、

  • そもそもアイテム名(ページ名・パス名)が長くなり過ぎていないか、ディレクトリ階層が深過ぎないか、など検討の上で調整する
  • メインコンテンツ上部ではヒーローエリア・メインビジュアルとのレイアウトの兼ね合いなどによりやむなくScrollオプションを使用しつつも、メインコンテンツ下部にもWrapオプションのBreadcrumbを配置する

といった対応を踏まえ、アクセシビリティが損なわれないようにしてください。