import { cn } from '$shared/lib'; import { Badge, Button, Card, CardSidebar, CardTitle, ImageLightbox, RichText } from '$shared/ui'; export interface Props { /** * Project name */ title: string; /** * Year the project was completed */ year: string; /** * Short project description */ description: string; /** * Technology or category tags */ tags: string[]; /** * Project's URL */ url: string; /** * Optional preview image URL */ imageUrl?: string; /** * Skip lazy-loading the preview image. Set true for above-the-fold cards * (typically the first card in the list) to improve LCP. * @default false */ priority?: boolean; } /** * Project card with sidebar layout. * Sidebar: year badge, stack tags, View Project button. * Main: title, optional image, description. */ export function ProjectCard({ title, year, description, tags, url, imageUrl, priority = false }: Props) { return (

{year}

{tags.length > 0 && (
{tags.map((tag) => ( {tag} ))}
)} } >
{title} {imageUrl && ( )}
); }