V3 landing: white + violet + yellow accent, bold editorial. Markdown-driven content: 3 yarışma formatı (hands-on, ideathon, robo-soccer), 5 edisyon (Ataköy, Çemberlitaş Ideathon '25, Çemberlitaş HoC '26, İstanbul/Ankara Robo Soccer). Sayfalar: anasayfa, yarışma/edisyon detayları, sponsor, hakkımızda, iletişim. 40 Çemberlitaş fotoğrafı (1600px optimize, ~6.4 MB). Content helper (gray-matter + marked), reviews/photos registry, iletişim/ekip tek kaynak lib/contact.ts. Next.js 16 standalone build, Docker + compose hazır. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
26
src/components/StatsStrip.tsx
Normal file
26
src/components/StatsStrip.tsx
Normal file
@@ -0,0 +1,26 @@
|
||||
export function StatsStrip({
|
||||
items,
|
||||
tone = "paper",
|
||||
}: {
|
||||
items: { value: string | number; label: string }[];
|
||||
tone?: "paper" | "dark" | "violet";
|
||||
}) {
|
||||
const bg =
|
||||
tone === "dark"
|
||||
? "bg-neutral-900 text-white"
|
||||
: tone === "violet"
|
||||
? "bg-violet-700 text-white"
|
||||
: "bg-white text-neutral-900";
|
||||
return (
|
||||
<dl className={`grid grid-cols-2 divide-x-2 divide-y-2 divide-neutral-900 border-2 border-neutral-900 md:grid-cols-4 md:divide-y-0 ${bg}`}>
|
||||
{items.map((it) => (
|
||||
<div key={it.label} className="px-6 py-8 text-center">
|
||||
<dd className="text-4xl font-black tracking-tight md:text-5xl">{it.value}</dd>
|
||||
<dt className="mt-2 text-xs font-black uppercase tracking-[0.2em] opacity-70">
|
||||
{it.label}
|
||||
</dt>
|
||||
</div>
|
||||
))}
|
||||
</dl>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user