サイドバー・ドロワーナビゲーション
折りたたみ対応のサイドバーとオーバーレイ型ドロワーを、Mantine・Ant Design・shadcn/ui・MUI・Chakra UI の5種で比較します。 各デモではサイドバーの折りたたみ(アイコンのみ)とドロワー(オーバーレイ)の2パターンを操作できます。
ライブラリ比較
| 項目 | Mantine | Ant Design | Shadcn/ui | MUI | Chakra UI |
|---|---|---|---|---|---|
| サイドバー | NavLink 組み合わせ | Layout.Sider + Menu | Tailwind 自前実装 | ✅ Drawer コンポーネント | Tailwind で自前実装 |
| ドロワー | ✅ Drawer コンポーネント | ✅ Drawer コンポーネント | ✅ Sheet(自前実装) | ✅ Drawer(temporary) | ✅ Drawer.Root / Content |
| 折りたたみ | ✅ 手動制御 | ✅ collapsible prop | ✅ CSS transition | ⚠️ 手動実装(width切り替え) | ✅ CSS transition で制御 |
| グループ分け | ✅ セクション手動 | ✅ Menu type=group | ✅ 自前マークアップ | ✅ Divider で区切り | ✅ 自前マークアップ |
| バッジ通知 | ✅ Badge コンポーネント | ✅ Badge コンポーネント | ✅ 自前スタイル | ✅ ListItemIcon で対応 | ✅ 自前スタイル |
| アニメーション | CSS transition | CSS transition(組み込み) | CSS transition / keyframes | ✅ デフォルトで付与 | ✅ 組み込み |
| カスタマイズ性 | 中(style上書き) | 中(token + CSS) | 高(完全自前) | 中(sx prop) | ✅ emotion + Tailwind で対応 |
選択のポイント
- Mantine — NavLink のactive/variant 切り替えが便利で、Drawer も Provider 内で簡単に呼び出せる。サイドバーとドロワーを統一的に管理したい場合に最適。
- Shadcn/ui — Provider不要でバンドルサイズが最小。Tailwind CSS との親和性が高く、アニメーションやレイアウトを完全に制御したい場合に最適。既存のデザインシステムに合わせやすい。
- Ant Design — Menu の grouping やネスト構造を宣言的に記述できる。Sider の collapsible 制御が組み込みで、管理画面やエンタープライズ向けに安定した選択肢。
- Chakra UI — Drawer.Root / Backdrop / Content の複合パターンでオーバーレイナビゲーションを実装。 placement で4方向の展開に対応し、Portal でDOM外にレンダリングするため z-index 問題が起きにくい。 サイドバー本体は Tailwind で自前実装し、ドロワーに Chakra UI を組み合わせる構成が相性よい。
- MUI — 週670万DLと圧倒的なシェアを誇るMaterial Design準拠のライブラリ。エンタープライズ〜スタートアップまで幅広く採用され、ドキュメントや事例が豊富。Emotion(CSS-in-JS)を使用するため、Tailwind CSS v4との併用時はスタイルをMUI側のpropsで制御することを推奨。
サイドバーは、画面の左右に固定または開閉できるナビゲーションパネルUI。メニュー項目・フィルター・コンテンツ目次などを縦方向に並べる。
管理画面・ドキュメントサイト・ECサイトのカテゴリフィルターなど、階層的なナビゲーションが必要なページで使われる。
主なバリエーション
- •固定型(常に表示)
- •オーバーレイ型(画面に重なって表示)
- •コラプシブル型(アイコンのみ表示に縮小)
- •レスポンシブ型(スマホでドロワー化)
- •ミニバリアント型(アイコン+ホバーで展開)