a11oy / web /src /components /ui /PageHeader.tsx
betterwithage's picture
sync(space): complete build context — fix BUILD_ERROR (CTO)
518343a verified
Raw
History Blame Contribute Delete
1.52 kB
import { Link } from 'wouter';
const MONO = 'var(--font-mono, monospace)';
export interface BreadcrumbItem {
label: string;
href?: string;
}
export interface PageHeaderProps {
breadcrumbs?: BreadcrumbItem[];
title: string;
description?: string;
}
export function PageHeader({ breadcrumbs, title, description }: PageHeaderProps) {
return (
<div style={{ marginBottom: 8 }}>
{breadcrumbs && breadcrumbs.length > 0 && (
<div style={{
fontSize: 9,
fontFamily: MONO,
letterSpacing: '0.15em',
color: '#5e5e5e',
textTransform: 'uppercase',
marginBottom: 6,
display: 'flex',
gap: 4,
alignItems: 'center',
flexWrap: 'wrap',
}}>
{breadcrumbs.map((b, i) => (
<span key={b.label} style={{ display: 'flex', alignItems: 'center', gap: 4 }}>
{i > 0 && <span style={{ color: '#3a3a3a' }}>/</span>}
{b.href
? <Link href={b.href} style={{ color: '#5e5e5e', textDecoration: 'none' }}>{b.label}</Link>
: <span>{b.label}</span>
}
</span>
))}
</div>
)}
<h1 style={{ fontSize: 22, fontWeight: 600, color: '#f5f5f5', margin: 0, letterSpacing: '-0.02em' }}>
{title}
</h1>
{description && (
<p style={{ fontSize: 13, color: '#8a8a8a', margin: '6px 0 0', lineHeight: 1.6 }}>
{description}
</p>
)}
</div>
);
}