PageHeader
ページ上部に表示するstickyヘッダー。パンくずナビゲーションとアクションボタンを配置できます。
インポート
個別サブパス:
注意:
PageHeaderLink/PageHeaderTitleはiconpropで実行時にアイコンを選べる設計のため、内部で全アイコンを参照する動的解決を経由します。このサブパスを使ってもlucide-reactの全アイコンがバンドルに含まれるため、バンドルサイズ削減効果はありません(他コンポーネントのサブパスとは異なります)。他の依存を絞る目的では有効です。
基本的な使い方
Loading...
タイトルのみ
パンくずなしのシンプルなヘッダーとしても使えます。
アクション付き
actions propで右側にボタン等を配置できます。
Loading...
アイコン付き
PageHeaderLink と PageHeaderTitle は icon propでアイコンを表示できます。
Loading...
複数階層
Loading...
ドロップダウンで横移動
PageHeaderItem を使って DropdownMenu 等の自由なコンテンツを配置できます。
パンくずの一部をドロップダウンにすることで、同階層のページへの横移動が可能です。
Loading...
タブ付きヘッダー
PageHeaderTabs を PageHeader の直下に配置すると、サブナビゲーションとして機能します。
スクロールしても PageHeader と一緒に画面上部に貼りつきます。
Loading...
Next.js Link との連携
PageHeaderTabItem も asChild に対応しています。
Next.js Link との連携
PageHeaderLink は asChild を使って Next.js の Link コンポーネントをレンダリングできます。
注意:
asChild使用時はiconprop は無効になります。アイコンが必要な場合は子要素内に直接配置してください。
実際の使用例
管理画面の詳細ページ
Loading...
イベント切り替え付きヘッダー
Loading...
Props
PageHeader
| Prop | Type | Default | Description |
|---|---|---|---|
actions | ReactNode | - | 右側に表示するアクション要素(ボタン等) |
children* | ReactNode | - | パンくず要素(PageHeaderLink, PageHeaderTitle, PageHeaderItem)。要素間に自動でセパレータ「/」が挿入されます |
className | string | - | 追加のクラス名 |
PageHeaderLink
| Prop | Type | Default | Description |
|---|---|---|---|
href | string | - | リンク先URL |
icon | IconName | - | アイコン名 |
asChild | boolean | false | 子要素をリンクとしてレンダリング(Next.js Link等) |
className | string | - | 追加のクラス名 |
PageHeaderTitle
| Prop | Type | Default | Description |
|---|---|---|---|
icon | IconName | - | アイコン名 |
children* | ReactNode | - | 表示テキスト |
className | string | - | 追加のクラス名 |
PageHeaderItem
| Prop | Type | Default | Description |
|---|---|---|---|
children* | ReactNode | - | 自由なコンテンツ(DropdownMenu等) |
className | string | - | 追加のクラス名 |
PageHeaderTabs
| Prop | Type | Default | Description |
|---|---|---|---|
children* | ReactNode | - | PageHeaderTabItem要素 |
className | string | - | 追加のクラス名 |
PageHeaderTabItem
| Prop | Type | Default | Description |
|---|---|---|---|
href | string | - | リンク先URL |
active | boolean | false | アクティブ状態(下線が表示されます) |
asChild | boolean | false | 子要素をリンクとしてレンダリング(Next.js Link等) |
className | string | - | 追加のクラス名 |