blog.z0x.ca/src/components/ProjectCard.astro

33 lines
No EOL
966 B
Text

---
import { Image } from 'astro:assets'
import { Badge } from '@/components/ui/badge'
import Link from '@components/Link.astro'
import type { CollectionEntry } from 'astro:content'
type Props = {
project: CollectionEntry<'projects'>
}
const { project } = Astro.props
---
<div class="overflow-hidden rounded-xl border transition-colors duration-300 ease-in-out hover:bg-secondary/50">
<Link href={project.data.link} class="block">
<Image
src={project.data.image}
alt={project.data.name}
width={400}
height={200}
class="w-full object-cover"
/>
<div class="p-4">
<h3 class="mb-2 text-lg font-semibold">{project.data.name}</h3>
<p class="mb-4 text-sm text-muted-foreground">{project.data.description}</p>
<div class="flex flex-wrap gap-2">
{project.data.tags.map((tag) => (
<Badge variant="secondary" showHash={false}>{tag}</Badge>
))}
</div>
</div>
</Link>
</div>