Sidebar
デスクトップで縮小でき、モバイルではパネルとして開くアプリの常設ナビゲーションに使います。
プレビュー
ワークスペースのナビゲーション
概要と設定のメニュー項目に、アイコンへの縮小、ツールチップ、内容側の切り替えを組み合わせます。
プレビューを読み込んでいます。
インストール
この Registry を初めて使う場合は、先に 基本設定と共通スタイルの導入 を完了してください。
npx shadcn@latest add @neumorphism-ui/sidebar共有 base を一度導入した後、CLI でコンポーネントと依存関係を追加します。
使い方
Sidebar と SidebarInset を SidebarProvider で囲みます。リンクをグループ化して現在地を示し、内容のヘッダーに名前付き SidebarTrigger を置きます。
"use client";
import { Sidebar, SidebarContent, SidebarInset, SidebarMenu, SidebarMenuItem, SidebarMenuLink, SidebarProvider, SidebarTrigger } from "@/components/ui/sidebar";
export default function Example() {
return (
<SidebarProvider className="min-h-80">
<Sidebar>
<SidebarContent>
<SidebarMenu>
<SidebarMenuItem><SidebarMenuLink href="/projects" isActive>Projects</SidebarMenuLink></SidebarMenuItem>
<SidebarMenuItem><SidebarMenuLink href="/settings">Settings</SidebarMenuLink></SidebarMenuItem>
</SidebarMenu>
</SidebarContent>
</Sidebar>
<SidebarInset>
<header className="p-4"><SidebarTrigger /></header>
<main className="p-4">Your projects</main>
</SidebarInset>
</SidebarProvider>
);
}API リファレンス
SidebarProvider が desktop・mobile 状態を管理します。Ctrl/Cmd+B は、その Provider のコンテンツ(モバイル Sheet を含む)にフォーカスがあるときに対応する Sidebar を切り替えます。デスクトップでは offcanvas または icon 幅に折りたたみ、モバイルでは既存の Sheet を再利用します。メニュー、tooltip、focus は既存のニューモーフィズム token を使います。
| コンポーネント | プロパティ | 型 | デフォルト | 説明 |
|---|---|---|---|---|
SidebarProvider | defaultOpen / open / onOpenChange | boolean / controlled state | — | デスクトップ sidebar の初期または controlled 開閉状態を管理します。 |
Sidebar | collapsible | "offcanvas" | "icon" | "none" | "offcanvas" | デスクトップでは offcanvas は折りたたむと非表示になり、icon はアイコン幅を維持します。none は全幅とメニューの文字を維持します。 |
Sidebar | side / variant | "left" | "right" / "sidebar" | "floating" | "inset" | — | 配置する側と surface 表現を選びます。 |
SidebarTrigger | label | string | "Toggle sidebar" | 折りたたみボタンのアクセシブル名をローカライズします。 |
SidebarMenuButton / SidebarMenuLink | isActive / tooltip | boolean / string | — | 現在位置の表示と icon 折りたたみ時の tooltip を提供します。 |
アクセシビリティ
- 01
ナビゲーションリンクには実際の移動先と読み取れる名前を与え、現在位置には isActive を使用します。
- 02
icon 幅に折りたたんでもアクセシブル名を維持し、tooltip は名前の代替ではなく補助にします。
- 03
モバイル Sidebar は modal Sheet として Escape で閉じます。Ctrl または Command+B は、その Provider のコンテンツやモバイル Sheet にフォーカスがあるときだけ動作し、入力欄、文字変換中、処理済みのキーイベントはそのままにします。