Files
Ubuntu 32b43f85bd a
2026-07-03 16:58:28 +08:00

57 lines
2.5 KiB
TypeScript

import showcaseData from "@/showcase.json";
import { Card, Text, Button } from "@/components/retroui";
import Image from "next/image";
import Link from "next/link";
import { ArrowUpRight } from "lucide-react";
import Footer from "@/components/footer";
export default function ShowcasePage() {
return (
<>
<div className="max-w-6xl mx-auto py-12 px-4 lg:px-0">
<div className="mb-12 flex flex-col gap-2 items-start">
<Text as="h1">
Showcase
</Text>
<Text className="text-lg text-muted-foreground mb-4">
Build something cool using RetroUI? Share it with the community.
</Text>
<Button asChild>
<Link href="https://github.com/Logging-Studio/RetroUI/discussions/102" target="_blank">
Add Your Project
</Link>
</Button>
</div>
<ul className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
{Object.entries(showcaseData).map(([key, value]) => (
<li key={key}>
<Card className="hover:shadow">
<Card.Header>
<Image
src={value.cover}
alt={value.name}
width={600}
height={400}
className="mb-6 border-2 h-[200px] w-full object-fit border-muted-foreground"
/>
<div className="flex items-center justify-between gap-2">
<Card.Title>{value.name}</Card.Title>
<Button asChild size="sm" variant="secondary">
<Link href={value.url} target="_blank" rel="noopener noreferrer">
Visit <ArrowUpRight className="ml-2 h-4 w-4" />
</Link>
</Button>
</div>
</Card.Header>
</Card>
</li>
))}
</ul>
</div>
<Footer />
</>
);
}