Sidebar
サイドバーナビゲーションコンポーネント。折りたたみ、サブメニュー、ユーザーメニューに対応。
インポート
基本的な使い方
Loading...
グループラベル付き
SidebarGroupLabelでメニューをセクションに分けられます。
Loading...
サブメニュー付き
Collapsibleと組み合わせて折りたたみ可能なサブメニューを作成できます。
Loading...
ユーザーメニュー付き
フッターにユーザー情報とドロップダウンメニューを配置できます。
Loading...
折りたたみ可能
SidebarTriggerとSidebarRailで折りたたみ機能を追加できます。Cmd+B(Mac)/Ctrl+B(Windows)のキーボードショートカットにも対応。
Loading...
フローティングバリアント
variant="floating"で浮いているようなスタイルになります。
Loading...
コンポーネント構成
| コンポーネント | 説明 |
|---|---|
SidebarProvider | サイドバーの状態管理を提供 |
Sidebar | サイドバーのルートコンテナ |
SidebarHeader | ヘッダー部分(ロゴなど) |
SidebarContent | メインコンテンツエリア |
SidebarFooter | フッター部分(ユーザーメニューなど) |
SidebarGroup | メニューのグループ化 |
SidebarGroupLabel | グループのラベル |
SidebarGroupContent | グループ内のコンテンツ |
SidebarMenu | メニューリストのコンテナ |
SidebarMenuItem | メニューアイテム |
SidebarMenuButton | クリック可能なメニューボタン |
SidebarMenuSub | サブメニューのコンテナ |
SidebarMenuSubItem | サブメニューアイテム |
SidebarMenuSubButton | サブメニューボタン |
SidebarSeparator | 区切り線 |
SidebarTrigger | 折りたたみトリガーボタン |
SidebarRail | ドラッグで折りたたむためのレール |
SidebarInset | メインコンテンツエリア(サイドバーの隣) |
Props
SidebarProvider
| Prop | Type | Default | Description |
|---|---|---|---|
defaultOpen | boolean | true | デフォルトの開閉状態 |
open | boolean | - | 開閉状態(制御コンポーネント用) |
onOpenChange | (open: boolean) => void | - | 開閉状態変更時のコールバック |
Sidebar
| Prop | Type | Default | Description |
|---|---|---|---|
side | 'left' | 'right' | 'left' | サイドバーの位置 |
variant | 'sidebar' | 'floating' | 'inset' | 'sidebar' | サイドバーのスタイル |
collapsible | 'offcanvas' | 'icon' | 'none' | 'offcanvas' | 折りたたみ方式 |
SidebarMenuButton
| Prop | Type | Default | Description |
|---|---|---|---|
asChild | boolean | false | 子要素をボタンとしてレンダリング |
isActive | boolean | false | アクティブ状態 |
tooltip | string | TooltipContentProps | - | 折りたたみ時に表示するツールチップ |
variant | 'default' | 'outline' | 'default' | ボタンのスタイル |
size | 'default' | 'sm' | 'lg' | 'default' | ボタンのサイズ |
キーボードショートカット
| キー | 動作 |
|---|---|
Cmd+B / Ctrl+B | サイドバーの開閉をトグル |
モバイル対応
モバイルでは自動的にSheetコンポーネントを使用してオーバーレイ表示になります。useIsMobileフックで画面サイズを検出しています。