Files
ApiCore/ApiCore-Frontend/src/components/page-header.tsx
T
Nick Szaunig 60b59c120a feat(frontend): einheitliche Seiten-Header mit Icon-Badge
Neue PageHeader-Komponente (Gradient-Icon-Badge + Titel + Beschreibung
+ Aktionen) ersetzt die nackten <h1>-Zeilen auf den meistgenutzten
Seiten (Voelker, Bienenstaende, Koeniginnen, Aufgaben, Honigchargen,
Statistik, Webhooks, Benutzerverwaltung). Gradient variiert pro
Bereich (Honig/Salbei/Himmel), passend zum jeweiligen Sidebar-Icon.
2026-08-23 20:31:03 +02:00

39 lines
1.1 KiB
TypeScript

import { ReactNode } from "react";
import type { LucideIcon } from "lucide-react";
interface PageHeaderProps {
icon: LucideIcon;
title: string;
description?: string;
gradient?: string;
actions?: ReactNode;
}
export function PageHeader({
icon: Icon,
title,
description,
gradient = "var(--gradient-honey)",
actions,
}: PageHeaderProps) {
return (
<div className="flex flex-wrap items-center justify-between gap-3">
<div className="flex items-center gap-3">
<span
className="flex size-10 shrink-0 items-center justify-center rounded-xl text-white shadow-[var(--shadow-soft)]"
style={{ background: gradient }}
>
<Icon className="size-5" />
</span>
<div>
<h1 className="font-heading text-2xl font-semibold tracking-tight">{title}</h1>
{description ? (
<p className="text-sm text-muted-foreground">{description}</p>
) : null}
</div>
</div>
{actions ? <div className="flex flex-wrap gap-2">{actions}</div> : null}
</div>
);
}