ハンバーガーメニュー(Hamburger Menu)
モバイル画面でナビゲーションを折りたたむハンバーガーメニューUIを、Mantine・Ant Design・shadcn/ui・MUI・CSS/Tailwind の5種で比較。 アイコンのアニメーション・Drawer連携・レスポンシブ対応など、実践的な使用例をインタラクティブに確認できます。
💡 ネイティブ実装: nav 要素とチェックボックスハックや details 要素だけでも、モバイル向けメニューを実装できます。 ナビゲーションメニュー(nav) →
ライブラリ比較
| 項目 | Mantine | Ant Design | shadcn/ui | MUI | CSS / Tailwind |
|---|---|---|---|---|---|
| ハンバーガーコンポーネント | ✅ Burger 専用コンポーネント | ⚠️ なし(MenuOutlined で代替) | ⚠️ 自作 | ⚠️ なし(Button で代替) | |
| アイコンアニメーション | ✅ ハンバーガー ↔ ✕ 自動遷移 | ❌ 静的アイコン | ⚠️ 手動で実装 | ✅ sx + transition で実装 | ✅ CSS transition で自作 |
| サイドパネル連携 | ✅ AppShell.Navbar で統合 | ✅ Drawer コンポーネント | ✅ Sheet(top/bottom/left/right) | ✅ Drawer(4方向対応) | ⚠️ fixed + transform で自作 |
| オーバーレイ | ✅ 自動 | ✅ 自動 | ✅ 自動(Radix UI) | ✅ 自動 | ⚠️ 手動で実装 |
| Escapeキーで閉じる | ✅ 自動 | ✅ 自動 | ✅ 自動(Radix UI) | ✅ 自動 | ⚠️ 手動で実装 |
| サブメニュー対応 | ⚠️ NavLink で実装 | ✅ Menu の SubMenu で対応 | ⚠️ 手動で実装 | ⚠️ List で手動実装 | ⚠️ 自作(手間が大きい) |
| テーマ連携 | ✅ MantineProvider | ✅ ConfigProvider | ✅ CSS変数で管理 | ✅ ThemeProvider | ✅ CSS変数で管理 |
| アクセシビリティ | ✅ WAI-ARIA準拠 | ✅ WAI-ARIA準拠 | ✅ WAI-ARIA準拠(Radix UI) | ✅ aria-label 対応 | ⚠️ 実装者次第 |
| TypeScript | ✅ 完全サポート | ✅ 完全サポート | ✅ 完全サポート | ✅ 完全サポート | ✅ 完全サポート |
| バンドルサイズ追加 | ⚠️ 中(AppShell含む) | ⚠️ 中(Drawer + Menu) | ✅ 使った分だけ | ⚠️ 中(Emotion込み) | ✅ ゼロ追加 |
選択のポイント
- Mantine — AppShell と Burger が統合されており、レスポンシブなモバイルナビゲーションを最短で実装できる。breakpoint 制御、サイズバリエーション、アイコンアニメーションが標準装備。Mantine ベースのプロジェクトなら第一選択。
- Ant Design — Drawer + Menu の組み合わせで、サブメニュー・アイコン付きリンク・テーマ切替など、多機能なサイドメニューを構築しやすい。管理画面やダッシュボードとの相性が良い。ハンバーガーアイコンのアニメーションは別途実装が必要。
- MUI — 週670万DLと圧倒的なシェアを誇るMaterial Design準拠のライブラリ。エンタープライズ〜スタートアップまで幅広く採用され、ドキュメントや事例が豊富。IconButton + Drawer の組み合わせで実装し、sx propのtransitionでアイコンアニメーションも表現できる。Emotion(CSS-in-JS)を使用するため、Tailwind CSS v4との併用時はスタイルをMUI側のpropsで制御することを推奨。
- shadcn/ui — SheetコンポーネントがDrawer相当の役割を担い、side propで上下左右から展開できる。Radix UIベースでフォーカストラップ・Escapeキー・オーバーレイが自動処理されるため、アクセシビリティを手軽に担保できる。
- CSS / Tailwind CSS — 外部ライブラリへの依存をゼロにしたい、バンドルサイズを最小化したい場合に最適。アニメーションやアクセシビリティは自前で実装する分、完全にカスタマイズ可能。小規模サイトやランディングページに向いている。
ハンバーガーメニューは、3本線のアイコンをタップ・クリックするとナビゲーションが展開するUIパターン。モバイル向けのナビゲーション省スペース手法として広く使われる。
スマートフォン・タブレット向けWebサイトのナビゲーション格納、レスポンシブデザインでヘッダーのメニューを隠す場合に使われる。
主なバリエーション
- •全画面オーバーレイ型
- •ドロワー型(左右からスライド)
- •ドロップダウン型
- •アイコンアニメーション付き(×マークへ変形)
- •フェードイン型