Page Header
v0.2.2Composable page header with title, description, and left/right action slots.
Install
npx shadcn@latest add @signalos/page-headerRequires a configured @signalos registry and a valid SIGNALOS_REGISTRY_TOKEN - get access. Registry dependencies (@signalos/tokens, @signalos/utils, @signalos/button) are pulled automatically.
Preview
Example & code
page-header.example.tsx
// Example: page header with a breadcrumb, description, and actions.
import { Plus } from "lucide-react"
import { Button } from "@/components/ui/button"
import {
PageHeader,
PageHeaderContent,
PageHeaderDescription,
PageHeaderLeft,
PageHeaderRight,
PageHeaderTitle,
PageHeaderTop,
} from "@/components/widgets/page-header/PageHeader"
export default function Example() {
return (
<PageHeader>
<PageHeaderTop>
<span className="text-sm text-text-secondary">
Settings / Team / Members
</span>
</PageHeaderTop>
<PageHeaderContent>
<PageHeaderLeft>
<PageHeaderTitle>Members</PageHeaderTitle>
<PageHeaderDescription>
Invite teammates and manage their access.
</PageHeaderDescription>
</PageHeaderLeft>
<PageHeaderRight>
<Button variant="outline">Export</Button>
<Button>
<Plus />
Invite member
</Button>
</PageHeaderRight>
</PageHeaderContent>
</PageHeader>
)
}
Props
Supporting types
export type PageHeaderProps = React.HTMLAttributes<HTMLDivElement>
export type PageHeaderContentProps = React.HTMLAttributes<HTMLDivElement>
export type PageHeaderLeftProps = React.HTMLAttributes<HTMLDivElement>
export type PageHeaderTitleProps = React.HTMLAttributes<HTMLHeadingElement>
export type PageHeaderDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>
export type PageHeaderTopProps = React.HTMLAttributes<HTMLDivElement>
export type PageHeaderRightProps = React.HTMLAttributes<HTMLDivElement>
npm dependencies
lucide-react@^1.7.0Changelog
page-header
0.2.2
- Removed the unused
@signalos/tooltipregistryDependenciesentry - no file in this item imports or renders a Tooltip, so consumers were vendoring an entire unrelated primitive for nothing.
0.2.1
- Fixed
PageHeaderDescriptionusing the rawtext-navy-400scale value instead of the semantictext-text-mutedtoken.--color-navy-400happened to equal dark mode's--text-muted, so the description rendered in the dark-theme gray-blue tone even in light mode, and no client theme override could reach it.
0.2.0
- Title default is now
text-3xl font-bold(wastext-xl font-semibold). Every known consumer overrode the title to this scale, so the design intent moves into the widget default. Override viaclassNameto opt out.
0.1.2
- Content sync fix to bring source in line with published registry payload.
0.1.1
- Initial release: composable page header primitives
(
PageHeader,PageHeaderTop,PageHeaderContent,PageHeaderLeft,PageHeaderRight,PageHeaderTitle,PageHeaderDescription).