feat(tasarim): katalog üstü kayıtlı-sıra satırı ve "listen hazır" paneli piksel dokulu CTA bandı
- CtaSiraForm kompakt: kayıtlı sıralamalı hâl CtaBandi kompakt kabuğuyla birebir (bg-primary, beyaz yazı, PikselZemin); form hâli beyaz kalır. İç boşluk ve saydam kenarlıkla iki hâlin kutusu aynı (CLS yok); telefondaki süs piksel ayracı kaldırıldı. - /sonuc "24 tercihlik listen hazır": beyaz kart yerine CtaBandi (seed 23), buton sonda ArrowRight, telefonda tam genişlik. - DESIGN.md §10.8: CtaBandi kullanım yerleri ve "piksel konmaz" listesi güncellendi. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -700,17 +700,24 @@ karar.
|
|||||||
yan yana, buton sağda.
|
yan yana, buton sağda.
|
||||||
- Büyük (sayfa kapanışı) hâlinde aynı band ortalı ve iri: `px-5 py-8 text-center sm:p-12`,
|
- Büyük (sayfa kapanışı) hâlinde aynı band ortalı ve iri: `px-5 py-8 text-center sm:p-12`,
|
||||||
`-inset-y-10`, h2 `font-heading text-2xl font-bold sm:text-3xl`, paragraf `text-white/90`.
|
`-inset-y-10`, h2 `font-heading text-2xl font-bold sm:text-3xl`, paragraf `text-white/90`.
|
||||||
- Kullanıldığı yerler: `/sonuc`'taki iki sihirbaz paneli, katalog altındaki `CtaSiraForm`
|
- Kullanıldığı yerler: `/sonuc`'taki üç panel (sihirbaz, giriş bekleyen, "24 tercihlik listen
|
||||||
kart varyantı, "Kendi Listem" çekmecesinin altı (kompakt). Aynı sayfadaki iki band farklı
|
hazır"), katalog altındaki `CtaSiraForm`
|
||||||
`seed` alır.
|
kart varyantı, "Kendi Listem" çekmecesinin altı (kompakt), katalog üstü kompakt satırın
|
||||||
|
**kayıtlı sıralamalı** hâli ("Sıralaman … tabanlarının neresinde? · Sıralaman kayıtlı: …";
|
||||||
|
Bilal, 24 Eyl 2026: "bu kısma piksel dokusu ekle"). O satır CLS için tek `section` içinde
|
||||||
|
iki hâl taşıdığından `CtaBandi`'yi sarmaz; kompakt bandın sınıf setini birebir alır
|
||||||
|
(`relative isolate overflow-hidden rounded-2xl bg-primary px-5 py-4 text-left text-white
|
||||||
|
sm:py-5` + ilk çocuk `PikselZemin`), kenarlık saydam kalır ki iki hâlin kutusu aynı olsun.
|
||||||
|
Aynı sayfadaki iki band farklı `seed` alır.
|
||||||
|
|
||||||
**Piksel zemin yalnız CTA yüzeylerinde — `PikselZemin`, `src/components/piksel-zemin.tsx`**
|
**Piksel zemin yalnız CTA yüzeylerinde — `PikselZemin`, `src/components/piksel-zemin.tsx`**
|
||||||
(Bilal, 24 Eyl 2026: önce "her CTA benzeri kısmın arkasında olmalı", sonra "/sonuc'taki kartın
|
(Bilal, 24 Eyl 2026: önce "her CTA benzeri kısmın arkasında olmalı", sonra "/sonuc'taki kartın
|
||||||
arkasına da piksel koymuşsun; pikseller CTA'larda olacak sadece"). CTA yüzeyi = renkli zeminli
|
arkasına da piksel koymuşsun; pikseller CTA'larda olacak sadece"). CTA yüzeyi = renkli zeminli
|
||||||
çağrı yüzeyi: mavi `CtaBandi`, koyu kapanış kartı `PikselCtaYuzeyi`, arama penceresindeki koyu
|
çağrı yüzeyi: mavi `CtaBandi`, koyu kapanış kartı `PikselCtaYuzeyi`, arama penceresindeki koyu
|
||||||
kart. Beyaz içerik kartlarına (tadımlık, `/listem` üretim/kilit kartları, paket kartı, kaydet
|
kart. Beyaz içerik kartlarına (tadımlık, `/listem` üretim/kilit kartları, paket kartı, kaydet
|
||||||
bandı, katalog üstü kompakt satır, boş durumlar, sıralama-yok sayfası) **konmaz** — 24 Eyl'de
|
bandı, katalog üstü kompakt satırın **form** hâli, boş durumlar, sıralama-yok sayfası)
|
||||||
denendi ve geri alındı. Kap `relative isolate overflow-hidden`; zemin ilk çocuk; kareler beyaz.
|
**konmaz** — 24 Eyl'de denendi ve geri alındı. Aynı kompakt satırın kayıtlı sıralamalı hâli
|
||||||
|
ise formsuz tek butonlu bir çağrı olduğundan mavi banttır ve dokuyu alır (yukarıda). Kap `relative isolate overflow-hidden`; zemin ilk çocuk; kareler beyaz.
|
||||||
Doku kabın gerçek ölçüsüne göre üretilir: yalnız kenar çerçevesinde (kısa kenarın %30'u), orta
|
Doku kabın gerçek ölçüsüne göre üretilir: yalnız kenar çerçevesinde (kısa kenarın %30'u), orta
|
||||||
tamamen boş; **küçük kare yok**, 2–4 hücrelik (17/27/37 px) kareler, iri olan seyrek ve daha
|
tamamen boş; **küçük kare yok**, 2–4 hücrelik (17/27/37 px) kareler, iri olan seyrek ve daha
|
||||||
silik (Bilal: "çok fazla piksel, küçük olanlar hiç olmasın").
|
silik (Bilal: "çok fazla piksel, küçük olanlar hiç olmasın").
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import {
|
|||||||
DrawerDescription,
|
DrawerDescription,
|
||||||
DrawerTitle,
|
DrawerTitle,
|
||||||
} from "@/components/ui/drawer";
|
} from "@/components/ui/drawer";
|
||||||
import { PagePixelDivider } from "@/components/pixel-decor";
|
import { PikselZemin } from "@/components/piksel-zemin";
|
||||||
import { useGorunumOlayi } from "@/components/use-gorunum-olayi";
|
import { useGorunumOlayi } from "@/components/use-gorunum-olayi";
|
||||||
import {
|
import {
|
||||||
SihirbazAdimlarLazy,
|
SihirbazAdimlarLazy,
|
||||||
@@ -39,7 +39,7 @@ const PUAN_TURLERI_SECENEK = [
|
|||||||
] as const;
|
] as const;
|
||||||
|
|
||||||
// Kayıtlı profilli CTA'lar /listem boş durumunun dilini taşır (bkz.
|
// Kayıtlı profilli CTA'lar /listem boş durumunun dilini taşır (bkz.
|
||||||
// listem-bos-cta.tsx): büyük turuncu buton, piksel ayraç. Sınıf seti tek yerde.
|
// listem-bos-cta.tsx): büyük turuncu buton. Sınıf seti tek yerde.
|
||||||
const PROFILLI_CTA_SINIF =
|
const PROFILLI_CTA_SINIF =
|
||||||
"h-12 cursor-pointer bg-orange-500 px-6 text-white transition-colors duration-200 hover:bg-orange-600";
|
"h-12 cursor-pointer bg-orange-500 px-6 text-white transition-colors duration-200 hover:bg-orange-600";
|
||||||
|
|
||||||
@@ -369,14 +369,21 @@ export function CtaSiraForm({
|
|||||||
// bindirilir; hücrenin yüksekliğini her iki durumda da başlık + form belirler.
|
// bindirilir; hücrenin yüksekliğini her iki durumda da başlık + form belirler.
|
||||||
// Profilli içerik bu yüksekliği aşmayacak kadar kısa tutulmalı.
|
// Profilli içerik bu yüksekliği aşmayacak kadar kısa tutulmalı.
|
||||||
const kompaktBaslik = baslik ?? "Sıralaman bu tabanların neresinde?";
|
const kompaktBaslik = baslik ?? "Sıralaman bu tabanların neresinde?";
|
||||||
|
// Profilli hâl bir CTA yüzeyidir (tek iş: turuncu buton): CtaBandi'nin
|
||||||
|
// kompakt bandıyla birebir aynı kabuk — mavi zemin, beyaz yazı, arkada
|
||||||
|
// PikselZemin (DESIGN.md §10.8; piksel yalnız CTA yüzeylerinde). Profilsiz
|
||||||
|
// form satırı beyaz içerik kartıdır, piksel almaz. İç boşluk ve 1 px
|
||||||
|
// kenarlık (profilli hâlde saydam) iki hâlde aynıdır ki hydration sonrası
|
||||||
|
// geçişte satır yüksekliği oynamasın.
|
||||||
return (
|
return (
|
||||||
<section
|
<section
|
||||||
aria-labelledby={baslikId}
|
aria-labelledby={baslikId}
|
||||||
className={cn(
|
className={cn(
|
||||||
"rounded-2xl border p-4 transition-colors duration-200 sm:p-5",
|
"relative isolate overflow-hidden rounded-2xl border px-5 py-4 text-left transition-colors duration-200 sm:py-5",
|
||||||
profil ? "border-primary/20 bg-primary/5" : "border-slate-200 bg-white",
|
profil ? "border-transparent bg-primary text-white" : "border-slate-200 bg-white",
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
|
{profil ? <PikselZemin seed={11} /> : null}
|
||||||
<div className="grid">
|
<div className="grid">
|
||||||
<div
|
<div
|
||||||
ref={profil ? undefined : formRef}
|
ref={profil ? undefined : formRef}
|
||||||
@@ -399,13 +406,12 @@ export function CtaSiraForm({
|
|||||||
<div className="flex min-w-0 flex-col items-center gap-1 sm:items-start">
|
<div className="flex min-w-0 flex-col items-center gap-1 sm:items-start">
|
||||||
<p
|
<p
|
||||||
id={baslikId}
|
id={baslikId}
|
||||||
className="font-heading text-base font-bold leading-6 text-slate-900"
|
className="font-heading text-base font-bold leading-6 text-white"
|
||||||
>
|
>
|
||||||
{kompaktBaslik}
|
{kompaktBaslik}
|
||||||
</p>
|
</p>
|
||||||
<KayitliSira sira={profil.sira} tur={profil.tur} />
|
<KayitliSira sira={profil.sira} tur={profil.tur} beyaz />
|
||||||
</div>
|
</div>
|
||||||
<PagePixelDivider seed={67} className="w-24 sm:hidden" />
|
|
||||||
<Button asChild size="lg" className={cn(PROFILLI_CTA_SINIF, "w-full sm:w-auto")}>
|
<Button asChild size="lg" className={cn(PROFILLI_CTA_SINIF, "w-full sm:w-auto")}>
|
||||||
<Link href={sonucHref()}>
|
<Link href={sonucHref()}>
|
||||||
Sıralamana uygun programları gör
|
Sıralamana uygun programları gör
|
||||||
|
|||||||
@@ -262,22 +262,28 @@ export function SihirbazBolumu({
|
|||||||
edilmez; panel yalnızca funnel CTA'larını gösterir, üretim ve
|
edilmez; panel yalnızca funnel CTA'larını gösterir, üretim ve
|
||||||
listenin kendisi /listem'de yaşar. */}
|
listenin kendisi /listem'de yaşar. */}
|
||||||
{raporVar ? (
|
{raporVar ? (
|
||||||
<section className="mt-16 rounded-2xl border border-slate-200 bg-white p-8 text-center sm:p-12">
|
// Kardeş panellerle aynı yüzey (DESIGN.md §10.8 CtaBandi): mavi zemin,
|
||||||
<h2 className="font-heading text-2xl font-bold sm:text-3xl">
|
// piksel doku, tek turuncu buton (Bilal, 24 Eyl 2026: "buraya piksel
|
||||||
|
// doku ekle"). Seed diğer iki panelden (13, 19) farklı.
|
||||||
|
<CtaBandi seed={23} className="mt-16 min-w-0">
|
||||||
|
<h2 className="font-heading text-2xl font-bold text-balance sm:text-3xl">
|
||||||
24 tercihlik listen hazır
|
24 tercihlik listen hazır
|
||||||
</h2>
|
</h2>
|
||||||
<p className="mx-auto mt-3 max-w-xl text-slate-600">
|
<p className="mx-auto mt-3 max-w-xl text-base leading-relaxed text-white/90">
|
||||||
Yapay zekânın kurduğu risk analizli listen Listem sayfasında
|
Yapay zekânın kurduğu risk analizli listen Listem sayfasında
|
||||||
seni bekliyor.
|
seni bekliyor.
|
||||||
</p>
|
</p>
|
||||||
<Button
|
<Button
|
||||||
asChild
|
asChild
|
||||||
size="lg"
|
size="lg"
|
||||||
className="mt-6 cursor-pointer bg-orange-500 text-white transition-colors duration-200 hover:bg-orange-600"
|
className="mt-6 h-12 w-full cursor-pointer bg-orange-500 px-6 text-white transition-[background-color,transform] duration-200 hover:bg-orange-600 active:scale-[0.97] sm:w-auto"
|
||||||
>
|
>
|
||||||
<Link href="/listem">Listeni gör</Link>
|
<Link href="/listem">
|
||||||
|
Listeni gör
|
||||||
|
<ArrowRight className="size-4" aria-hidden />
|
||||||
|
</Link>
|
||||||
</Button>
|
</Button>
|
||||||
</section>
|
</CtaBandi>
|
||||||
) : girisBekliyor ? (
|
) : girisBekliyor ? (
|
||||||
<CtaBandi ref={hazirPanelRef} seed={13} className="mt-16 min-w-0">
|
<CtaBandi ref={hazirPanelRef} seed={13} className="mt-16 min-w-0">
|
||||||
<h2 className="font-heading text-2xl font-bold text-balance sm:text-3xl">
|
<h2 className="font-heading text-2xl font-bold text-balance sm:text-3xl">
|
||||||
|
|||||||
Reference in New Issue
Block a user