feat(katalog+tasarim): şehir adları her yerde link; piksel yüzeylere beyaz ton
- ilSayfaHref: üniversite sayfası il hapı, /universiteler listesi, bölüm / sonuç / listem / tadımlık satırlarındaki il metası şehir sayfasına gider. - Şehir kümeleri tüm (üniversite, il) çiftlerinden: DB'deki her il değerinin sayfası var (ODTÜ Ankara + KKTC); dev'de eski globalThis önbelleğine dayanıklı. - PikselZemin ton="acik", CtaBandi/CtaSiraForm ton="beyaz": /universiteler altı ve /meraklisina kapanışı beyaz, diğer bantlar mavi (dönüşümlü). - ilUlkeHaritasi: il değerinden ülke haritası + şehir konumu. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -11,6 +11,11 @@ import { cn } from "@/lib/utils";
|
||||
*
|
||||
* - `buyuk` (varsayılan): sayfa kapanışı / panel — ortalı, iri boşluk.
|
||||
* - `kompakt`: çekmece altı gibi dar yerler — sola yaslı, alçak.
|
||||
* - `ton="beyaz"`: aynı bant beyaz zeminde — slate kenarlık, koyu yazı,
|
||||
* slate pikseller. Aynı sayfada üst üste iki mavi bant olmasın diye
|
||||
* (Bilal, 24 Eyl 2026: "her kısımda mavi arka kullanmışsın, çeşitlendir").
|
||||
* Çağıran paragraf renklerini tona göre verir (`text-white/90` ↔
|
||||
* `text-slate-600`).
|
||||
*
|
||||
* İçerik (başlık, paragraf, buton) çağıranındır; yalnız kabuk burada durur.
|
||||
* Bilal'in kararı (24 Eyl 2026): koyu slate-950 yüzey yerine bu band.
|
||||
@@ -20,6 +25,7 @@ export function CtaBandi({
|
||||
className,
|
||||
seed = 8,
|
||||
boyut = "buyuk",
|
||||
ton = "mavi",
|
||||
etiket = "section",
|
||||
ref,
|
||||
...props
|
||||
@@ -27,6 +33,7 @@ export function CtaBandi({
|
||||
/** Piksel dokusunun deseni; aynı sayfadaki iki band farklı olsun */
|
||||
seed?: number;
|
||||
boyut?: "buyuk" | "kompakt";
|
||||
ton?: "mavi" | "beyaz";
|
||||
/** Çekmece altı gibi başlıksız yerlerde `div` */
|
||||
etiket?: "section" | "div";
|
||||
ref?: Ref<HTMLElement>;
|
||||
@@ -38,13 +45,20 @@ export function CtaBandi({
|
||||
<Etiket
|
||||
ref={ref as Ref<HTMLDivElement>}
|
||||
className={cn(
|
||||
"relative isolate overflow-hidden rounded-2xl bg-primary text-white",
|
||||
"relative isolate overflow-hidden rounded-2xl",
|
||||
ton === "beyaz"
|
||||
? "border border-slate-200 bg-white text-slate-900"
|
||||
: "bg-primary text-white",
|
||||
buyuk ? "px-5 py-8 text-center sm:p-12" : "px-5 py-4 text-left sm:py-5",
|
||||
className,
|
||||
)}
|
||||
{...props}
|
||||
>
|
||||
<PikselZemin seed={seed} className={buyuk ? "-inset-y-10" : undefined} />
|
||||
<PikselZemin
|
||||
seed={seed}
|
||||
ton={ton === "beyaz" ? "acik" : "koyu"}
|
||||
className={buyuk ? "-inset-y-10" : undefined}
|
||||
/>
|
||||
{children}
|
||||
</Etiket>
|
||||
);
|
||||
|
||||
@@ -21,8 +21,14 @@ export function PikselZemin({
|
||||
yogunluk,
|
||||
kenar,
|
||||
haric,
|
||||
ton = "koyu",
|
||||
className,
|
||||
}: {
|
||||
/**
|
||||
* `koyu`: renkli (mavi) zemin, kareler beyaz. `acik`: beyaz zemin, kareler
|
||||
* slate (Bilal, 24 Eyl 2026: "beyaz arka planda piksel de güzel görünüyor").
|
||||
*/
|
||||
ton?: "koyu" | "acik";
|
||||
/** Aynı ekrandaki iki yüzey farklı desen alsın */
|
||||
seed?: number;
|
||||
/** Doluluk çarpanı (1 varsayılan) */
|
||||
@@ -38,7 +44,8 @@ export function PikselZemin({
|
||||
<div
|
||||
aria-hidden
|
||||
className={cn(
|
||||
"pointer-events-none absolute inset-x-0 -inset-y-6 -z-10 text-white",
|
||||
"pointer-events-none absolute inset-x-0 -inset-y-6 -z-10",
|
||||
ton === "acik" ? "text-slate-400" : "text-white",
|
||||
className,
|
||||
)}
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user