Breadcrumb
Breadcrumbは、サイト内の現在位置を階層的に表示するナビゲーションコンポーネントです。 ユーザーが上位ページへ素早く戻れるようにします。
3
Sizes
6
Parts
Collapse
Auto Collapse
Pure
React
Playground
Preview
D
Size
Separator
Items
<Breadcrumb>
<Breadcrumb.List>
<Breadcrumb.Item>
<Breadcrumb.Link href="#">Home</Breadcrumb.Link>
</Breadcrumb.Item>
<Breadcrumb.Separator />
<Breadcrumb.Item>
<Breadcrumb.Link href="#">Products</Breadcrumb.Link>
</Breadcrumb.Item>
<Breadcrumb.Separator />
<Breadcrumb.Item>
<Breadcrumb.Page>Category</Breadcrumb.Page>
</Breadcrumb.Item>
</Breadcrumb.List>
</Breadcrumb>Sizes
smフォント12px
アイコン14px
Gap6px
defaultフォント13px
アイコン14px
Gap8px
lgフォント14px
アイコン16px
Gap8px
| Size | フォント | アイコン | Gap | プレビュー |
|---|---|---|---|---|
sm | 12px | 14px | 6px | |
default | 13px | 14px | 8px | |
lg | 14px | 16px | 8px |
Features
Auto Collapse
maxItemsで長いパスを自動省略。表示数はitemsBeforeCollapse / itemsAfterCollapseで制御。
<Breadcrumb>
<Breadcrumb.List>
<Breadcrumb.Item>
<Breadcrumb.Link href="#">Home</Breadcrumb.Link>
</Breadcrumb.Item>
<Breadcrumb.Separator />
<Breadcrumb.Item>
<Breadcrumb.Ellipsis />
</Breadcrumb.Item>
<Breadcrumb.Separator />
<Breadcrumb.Item>
<Breadcrumb.Page>Current Page</Breadcrumb.Page>
</Breadcrumb.Item>
</Breadcrumb.List>
</Breadcrumb>Custom Separator
任意のReactNodeをセパレーターに。スラッシュ、ドットなど自由に変更可能。
<Breadcrumb separator={<span className="text-text-subtle">/</span>}>
<Breadcrumb.List>
<Breadcrumb.Item>
<Breadcrumb.Link href="#">Home</Breadcrumb.Link>
</Breadcrumb.Item>
<Breadcrumb.Separator />
<Breadcrumb.Item>
<Breadcrumb.Link href="#">Products</Breadcrumb.Link>
</Breadcrumb.Item>
<Breadcrumb.Separator />
<Breadcrumb.Item>
<Breadcrumb.Page>Detail</Breadcrumb.Page>
</Breadcrumb.Item>
</Breadcrumb.List>
</Breadcrumb>Custom Link (asChild)
asChildでNext.js Linkなどカスタムリンクを合成。スタイルは自動継承。
import Link from 'next/link'
<Breadcrumb>
<Breadcrumb.List>
<Breadcrumb.Item>
<Breadcrumb.Link asChild>
<Link href="/home">Home</Link>
</Breadcrumb.Link>
</Breadcrumb.Item>
<Breadcrumb.Separator />
<Breadcrumb.Item>
<Breadcrumb.Link asChild>
<Link href="/products">Products</Link>
</Breadcrumb.Link>
</Breadcrumb.Item>
<Breadcrumb.Separator />
<Breadcrumb.Item>
<Breadcrumb.Page>Detail</Breadcrumb.Page>
</Breadcrumb.Item>
</Breadcrumb.List>
</Breadcrumb>API
Component Structure
Breadcrumb— Radix Slot.List.Item.LinkProps.Page.Separator.Ellipsis
.Listリストコンテナ.Itemアイテムラッパー.LinkPropsリンク(asChild対応).Page現在のページ(aria-current).Separatorセパレーター.Ellipsis省略記号Props
Breadcrumb
separatorChevronRight iconReactNodeアイテム間のセパレーター要素
size"default""sm" | "default" | "lg"Breadcrumbのサイズ
maxItemsundefinednumber折りたたみ前の最大アイテム数
itemsBeforeCollapseundefinednumber省略記号の前に表示するアイテム数
itemsAfterCollapseundefinednumber省略記号の後に表示するアイテム数
| Name | Type | Default | Description |
|---|---|---|---|
separator | ReactNode | ChevronRight icon | アイテム間のセパレーター要素 |
size | "sm" | "default" | "lg" | "default" | Breadcrumbのサイズ |
maxItems | number | undefined | 折りたたみ前の最大アイテム数 |
itemsBeforeCollapse | number | undefined | 省略記号の前に表示するアイテム数 |
itemsAfterCollapse | number | undefined | 省略記号の後に表示するアイテム数 |
Breadcrumb.Link
asChildfalsebooleanカスタムリンクコンポーネントとの合成(Radix Slot)
hrefundefinedstringリンク先のURL
| Name | Type | Default | Description |
|---|---|---|---|
asChild | boolean | false | カスタムリンクコンポーネントとの合成(Radix Slot) |
href | string | undefined | リンク先のURL |
Anatomy
1
2
3
4
Home6
/Components
/
5
BreadcrumbFont
text-smGap
gap-2Icon
icon-xs1
Root
navコンテナ
2
List
olリスト
3
Item
各パンくず項目
4
Link
クリック可能リンク
5
Current
現在ページ
6
Separator
区切り文字
Best Practices
✓
推奨
- ✓サイトの階層構造を正確に反映する
- ✓現在のページを最後のアイテムとして表示する
- ✓長いパスにはcollapseを使って省略する
- ✓ページ上部の目立つ位置に配置する
✕
避けるべき
- ✗現在のページをリンクにしない(Breadcrumb.Pageを使用)
- ✗サイト階層と無関係なアイテムを含めない
- ✗1階層だけのBreadcrumbは使わない(意味がない)
- ✗メインナビゲーションの代わりとして使用しない
Accessibility
セマンティック構造
Breadcrumbは
<nav>要素で囲まれ、内部は<ol>で順序付きリストとして構造化されます。スクリーンリーダーがナビゲーションの階層を正しく読み上げます。ARIA / WCAG
aria-label="breadcrumb"nav要素に設定aria-current="page"現在のページに設定aria-hidden="true"セパレーターに設定- WAI-ARIA Breadcrumb Pattern準拠