Initial impact.tr site
All checks were successful
Deploy stable / deploy (push) Successful in 1m36s

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:
2026-04-23 15:35:09 +03:00
parent 97edf69ab3
commit 8b480c036c
74 changed files with 2819 additions and 51 deletions

View File

@@ -0,0 +1,67 @@
import type { Review } from "@/lib/reviews";
export function TestimonialCard({
t,
featured = false,
}: {
t: Review | { quote: string; by: string; org?: string };
featured?: boolean;
}) {
return (
<figure
className={`relative border-2 border-neutral-900 ${
featured ? "bg-violet-700 text-white" : "bg-white text-neutral-900"
} p-8 md:p-10`}
>
{featured && (
<div className="absolute -left-3 -top-3 bg-yellow-300 px-3 py-1 text-[10px] font-black uppercase tracking-[0.2em] text-neutral-900">
Featured
</div>
)}
<svg
aria-hidden
className={`size-10 ${featured ? "text-yellow-300" : "text-violet-700"}`}
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M7.17 6C4.87 6 3 7.87 3 10.17v7.5H10.5v-7.5H6.33c0-1.01.82-1.83 1.84-1.83h1.5V6H7.17Zm9 0C13.87 6 12 7.87 12 10.17v7.5h7.5v-7.5h-4.17c0-1.01.82-1.83 1.84-1.83h1.5V6h-2.5Z" />
</svg>
<blockquote
className={`mt-5 text-pretty font-semibold leading-snug ${
featured ? "text-xl md:text-2xl" : "text-lg md:text-xl"
}`}
>
&ldquo;{t.quote}&rdquo;
</blockquote>
<figcaption
className={`mt-8 flex items-center gap-3 border-t-2 ${
featured ? "border-white/20" : "border-neutral-900"
} pt-5`}
>
<span
className={`inline-flex size-10 items-center justify-center text-sm font-black ${
featured ? "bg-yellow-300 text-neutral-900" : "bg-neutral-900 text-white"
}`}
>
{t.by
.split(" ")
.map((w) => w[0])
.slice(0, 2)
.join("")}
</span>
<span>
<span className="block text-sm font-black uppercase tracking-wider">{t.by}</span>
{t.org && (
<span
className={`block text-xs ${
featured ? "text-white/75" : "text-neutral-500"
}`}
>
{t.org}
</span>
)}
</span>
</figcaption>
</figure>
);
}