ナビゲーション

タブバー・ボトムナビ・ハンバーガーメニューなど、ユーザーがページやコンテンツを切り替えるナビゲーションUIの比較

このページでわかること

  • ブレッドクラム・タブバー・ハンバーガーメニュー・水平メニュー・サイドナビ・ページネーションの6種類のナビゲーションUIの違いと使い分け
  • Mantine・Ant Design・shadcn/ui・Chakra UI・MUI・CSS/Tailwind での実装比較
  • モバイル/デスクトップ、浅い階層/深い階層など、シーン別の選定基準
  • 実際の組み合わせパターンと、選定時によくある疑問への回答

ナビゲーションUIとは

ナビゲーションUIは、サイトやアプリの構造をユーザーに伝え、目的のコンテンツまで最小のステップで導くための要素群。情報設計(IA)の成果を具体化するUIであり、サイトの使いやすさを直接左右する。

大きくは「グローバルナビゲーション」(サイト全体の構造を示す)と「ローカルナビゲーション」(カテゴリ内の構造を示す)に分かれる。グローバルナビはヘッダーやサイドバーに常設され、ローカルナビはセクション内に置かれることが多い。デバイス(モバイル/デスクトップ)や階層の深さによって、適したUIパターンが変わる。

本ページでは、React で使われる代表的なナビゲーションUIを6種類取り上げ、ライブラリごとの実装と特性を比較する。

目的別の選び方

どのナビゲーションUIを採用するかは、デバイス・階層の深さ・主な用途で決まる。下表は典型的な選定基準。

UI種類モバイルデスクトップ浅い階層(1-2)深い階層(3+)主な用途
ブレッドクラム現在地表示・戻り経路
タブバー / ボトムナビコンテンツ切替・主要機能切替
ハンバーガーメニュー全機能の折りたたみ
水平メニューサイトのグローバルナビ
サイドナビ(NavLink)管理画面・ドキュメント
ページネーション一覧データの区切り

◎ 推奨 / ◯ 適合 / △ 条件付き / − 該当なし

ブレッドクラム(Breadcrumb)

詳細を見る →

現在のページ階層を示すブレッドクラムUIの実装比較。 セパレーター・アイコン・ドロップダウン・ルーティング連携をインタラクティブに確認

  1. 🏠 ホーム
  2. カテゴリ
  3. ブレッドクラム
MantineAnt Designshadcn/uiChakra UICSS / Tailwind

タブバー / ボトムナビ(Tab Bar / Bottom Navigation)

詳細を見る →

コンテンツ切り替えやモバイルのボトムナビゲーションに使うタブUIの実装比較。 バリアント・配置・アイコン統合・レスポンシブ対応をインタラクティブに確認

🏠ホーム
🔍検索
🔔通知
👤プロフィール
ホーム画面
ホーム
検索
通知
MantineAnt Designshadcn/uiChakra UICSS / Tailwind

ハンバーガーメニュー(Hamburger Menu)

詳細を見る →

モバイル画面でナビゲーションを折りたたむハンバーガーメニューUIの実装比較。 アイコンアニメーション・Drawer連携・レスポンシブ制御などをインタラクティブに確認

Logo
メインコンテンツ
Logo
メニュー展開中
ホーム
について
ブログ
コンテンツ
MantineAnt DesignCSS / Tailwind

水平メニュー(Horizontal Menu)

詳細を見る →

ヘッダーに配置する水平ナビゲーションメニューの実装比較。 サブメニュー・アクティブ状態・テーマ切替・レスポンシブ対応をインタラクティブに確認

Logoホームサービス ▾お問い合わせログイン
メインコンテンツ
Logoホームサービス ▴お問い合わせ
Webサイト制作
アプリ開発
SEO対策
Ant DesignPrimeReactCSS / Tailwind

サイドナビゲーション(NavLink)

詳細を見る →

サイドバー内のナビゲーションリンクUIの実装比較。 アクティブ状態・アイコン・ネスト・バッジ・無効状態など実践的なパターンをインタラクティブに確認

🏠ダッシュボード
📊アナリティクスNEW
👥ユーザー管理
⚙️設定
コンテンツ
MantineAnt Designshadcn/uiChakra UICSS / Tailwind

ページネーション(Pagination)

詳細を見る →

データ一覧やコンテンツのページ送りに使うページネーションUIの実装比較。 siblings・boundaries・ページサイズ変更・シンプルモードなどをインタラクティブに確認

2 / 10
MantineAnt Designshadcn/uiChakra UICSS / Tailwind

組み合わせパターン

実際の画面では、複数のナビゲーションUIを組み合わせて使うことが多い。代表的なパターンを示す。

  • 管理画面・ダッシュボード: サイドナビ + ブレッドクラム + ページネーション
  • メディアサイト・ブログ: 水平メニュー + ブレッドクラム + ページネーション
  • モバイルアプリ: ハンバーガーメニュー + タブバー(ボトムナビ)
  • ECサイト: 水平メニュー + サイドナビ(カテゴリ) + ブレッドクラム + ページネーション

よくある質問

ハンバーガーメニューはモバイル以外でも使うべき?

基本はモバイル向け。デスクトップでは「メニューが隠れていること」自体が認知コストになるため、水平メニューを推奨する。ただし制作ツールのように画面を広く使いたい場合や、メニュー項目が極端に多い場合は採用するケースもある。

タブバーとセグメントコントロールの違いは?

タブバーは画面(ビュー)の切り替えに使われ、セグメントコントロールは表示方法やフィルタの切り替えに使われる。Mantineでは Tabs と SegmentedControl で別コンポーネントとして提供されている。

ブレッドクラムは何階層から必要?

3階層以上のサイトで効果が大きい。2階層以下では戻るボタンや上位ナビゲーションで十分なケースが多い。Eコマースのカテゴリ階層が深いサイトでは必須に近い。

サイドナビとハンバーガーメニューは併用できる?

できる。デスクトップではサイドナビを固定表示し、モバイルではハンバーガーで開閉するレスポンシブパターンが定番。Mantine AppShell、shadcn/ui Sheet などがこのパターンを標準サポートする。

おすすめライブラリ

  • • Mantine Breadcrumbs - separator / separatorMargin で手軽にカスタマイズできるシンプルなブレッドクラム
  • • Ant Design Breadcrumb - items宣言的API・ドロップダウンメニュー・itemRenderによるルーティング連携を標準サポート
  • • Mantine Tabs - pills・outline・defaultの3バリアントとinvertedでボトムナビ配置に対応した高機能タブ
  • • Ant Design Tabs + Segmented - 上下左右配置、editable-card、iOS風Segmentedなど多用途なナビゲーション
  • • Tailwind CSS - ゼロ依存で上部タブバーとボトムナビを自由にカスタマイズできる純粋なCSS実装
  • • Mantine Burger / AppShell - breakpoint制御とアイコンアニメーション内蔵のレスポンシブナビゲーション
  • • Ant Design Drawer + Menu - サブメニュー対応の多機能サイドメニュー構築に最適なコンポーネント群
  • • Tailwind CSS - 依存ゼロで完全カスタマイズ可能な軽量ハンバーガーメニュー実装
  • • Mantine Pagination - siblings / boundaries による省略表示制御とCompound Componentsパターンで柔軟にカスタマイズ可能
  • • Ant Design Pagination - showSizeChanger / showQuickJumper / showTotal など実務的な機能が豊富なページネーション
  • • Tailwind CSS - 依存ゼロで完全カスタマイズ可能な軽量ページネーション実装
  • • Mantine NavLink - leftSection / rightSection / active / disabled を props で制御できるサイドナビゲーション専用コンポーネント
  • • Ant Design Menu (inline) - selectedKeys / openKeys 管理だけで完全なサイドナビを実現する宣言的 API
  • • Tailwind CSS - aria-current / aria-disabled 対応のアクセシブルなカスタムサイドナビ実装