feat(katalog+tasarim): devlet/vakıf tür sayfaları, tür çipleri link; kayıtlı-sıra satırı şişko ve sade
All checks were successful
Deploy / deploy (push) Successful in 5m1s

- /universiteler/devlet ve /universiteler/vakif: şehir sayfası iskeleti,
  haritada bu türden üniversitesi olan her il turuncu (yakınlaşma yok), üç
  özet kartı, şehir çipleri (sayfa içi çapa), şehir şehir §4.15 satırları,
  öteki türe geçiş hapı; metadata + sitemap.
- TurCipi tek kaynak: devlet/vakıf çipi tür sayfasına link (sonuç, listem,
  tadımlık, bölüm, şehir/tür satırları); üniversite sayfası tür hapı ve
  /universiteler başlıkları da link. UniSatirlari ortak dosyada: ad, tür ve
  il ayrı linkler.
- Kompakt profilli satır (DESIGN.md §10.9): iri kupa kutusu + text-3xl/4xl
  sıra, text-xl/2xl başlık, 48 px buton; telefonda alt alta, lg'de tek satır.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
bilalgursen
2026-09-24 15:53:54 +03:00
parent a0e94bc024
commit a43c045828
17 changed files with 606 additions and 109 deletions

View File

@@ -408,17 +408,39 @@ export function CtaSiraForm({
<div className="mt-3">{siraFormu}</div>
</div>
{profil ? (
<div className="col-start-1 row-start-1 flex flex-col items-center justify-center gap-3 text-center sm:flex-row sm:justify-between sm:gap-6 sm:text-left">
<div className="flex min-w-0 flex-col items-center gap-1 sm:items-start">
<p
id={baslikId}
className="font-heading text-base font-bold leading-6 text-white"
>
{kompaktBaslik}
</p>
<KayitliSira sira={profil.sira} tur={profil.tur} beyaz />
</div>
<Button asChild size="lg" className={cn(PROFILLI_CTA_SINIF, "w-full sm:w-auto")}>
// Şişko ve sade (DESIGN.md §1.1, §10.9): sayı kahramandır — iri
// kupa kutusu + text-3xl/4xl sıra, başlık text-xl/2xl, 48 px buton.
// Telefonda başlık → sayı → buton alt alta; lg'de tek satır
// (sayı · başlık · buton). Yükseklik formunkini aşmaz (CLS notu).
<div className="col-start-1 row-start-1 flex flex-col items-center justify-center gap-4 text-center lg:flex-row lg:gap-6 lg:text-left">
<p
id={baslikId}
className="order-1 min-w-0 flex-1 font-heading text-xl font-bold leading-tight text-balance text-white sm:text-2xl lg:order-2"
>
{kompaktBaslik}
</p>
<p className="order-2 flex items-center gap-3 lg:order-1 lg:shrink-0">
<span className="flex size-14 shrink-0 items-center justify-center rounded-2xl bg-white/15">
<Trophy className="size-7 text-white" aria-hidden />
</span>
<span className="flex flex-col items-start text-left">
<span className="sr-only">Sıralaman kayıtlı:</span>
<span className="font-heading text-3xl font-bold leading-none tracking-tight text-white sm:text-4xl">
{profil.sira.toLocaleString("tr-TR")}.
</span>
<span className="mt-1 text-sm font-semibold text-white/80">
sıra · {turEtiketi(profil.tur)}
</span>
</span>
</p>
<Button
asChild
size="lg"
className={cn(
PROFILLI_CTA_SINIF,
"order-3 w-full active:scale-[0.97] sm:w-auto lg:shrink-0",
)}
>
<Link href={sonucHref()}>
Sıralamana uygun programları gör
<ArrowRight className="size-4" aria-hidden />