Files
flint/apps/web/components/ui/Card.tsx
T

47 lines
1.2 KiB
TypeScript

import type { HTMLAttributes } from "react";
import { cn } from "./cn";
export function Card({ className, ...props }: HTMLAttributes<HTMLDivElement>) {
return (
<div
className={cn(
"rounded-2xl border border-[var(--border-subtle)] bg-[var(--surface)] p-6 shadow-[var(--shadow-soft)]",
className,
)}
{...props}
/>
);
}
export function CardHeader({ className, ...props }: HTMLAttributes<HTMLDivElement>) {
return <div className={cn("mb-5 space-y-2", className)} {...props} />;
}
export function CardTitle({ className, ...props }: HTMLAttributes<HTMLHeadingElement>) {
return (
<h2
className={cn(
"text-xl font-semibold tracking-tight text-[var(--foreground)]",
className,
)}
{...props}
/>
);
}
export function CardDescription({
className,
...props
}: HTMLAttributes<HTMLParagraphElement>) {
return (
<p
className={cn("text-sm leading-relaxed text-[var(--foreground-muted)]", className)}
{...props}
/>
);
}
export function CardContent({ className, ...props }: HTMLAttributes<HTMLDivElement>) {
return <div className={cn("space-y-4", className)} {...props} />;
}