From 2c542e7756ea3f962b5662099ac774f92cf36751 Mon Sep 17 00:00:00 2001 From: bilalgursen Date: Thu, 30 Jul 2026 03:54:31 +0300 Subject: [PATCH] Update padding in Parallax component for improved layout consistency --- data/app.db | Bin 135168 -> 135168 bytes src/app/giris/page.tsx | 48 +++++---- src/app/gizlilik/page.tsx | 7 +- src/app/iletisim/page.tsx | 7 +- src/app/kosullar/page.tsx | 7 +- src/app/layout.tsx | 9 +- src/app/listem/page.tsx | 17 ++-- src/app/page.tsx | 24 ++--- src/app/paket/page.tsx | 5 +- src/app/sonuc/sihirbaz-cagri-karti.tsx | 95 +++++++++--------- src/app/sonuc/sohbet-popup.tsx | 5 +- src/components/console-asr.tsx | 33 ++++++ src/components/dev/dev-panel.tsx | 5 +- src/components/hero-focus-button.tsx | 26 +++++ src/components/hero-form.tsx | 2 +- .../manuel-liste/liste-cekmecesi.tsx | 1 + src/components/page-pixel-layer.tsx | 46 +++++++++ src/components/scroll-flow.tsx | 44 ++++---- src/components/ui/chat-container.tsx | 1 + src/components/ui/dialog.tsx | 1 + src/components/ui/select.tsx | 1 + src/components/viewport-portal.tsx | 23 +++++ 22 files changed, 274 insertions(+), 133 deletions(-) create mode 100644 src/components/console-asr.tsx create mode 100644 src/components/hero-focus-button.tsx create mode 100644 src/components/page-pixel-layer.tsx create mode 100644 src/components/viewport-portal.tsx diff --git a/data/app.db b/data/app.db index e0822323841b142b62752e5411aaacb052b296d5..8ec2fc370b56bbd183ef056599fbb3b78be8e52e 100644 GIT binary patch delta 414 zcmZozz|pXPV}dl}u8A_vjJp~Wwk9wx$roVb{K>$#i?@X5H}`sOd(NMm1qGgRdN(<< zarpW+XS1-dctn_*2IXfY`R4|@L?&0JyCs+9W%*l%g$7#`I+tcx8hBRayM(*P8)O7$ z#RpYp8wD1mqy~hg6<4N|mZewfPTyb4s9bMgZk&}IX&jOm=p0p)5m_D(7GD*VuWJ!% z>R6QK7?l)RT;-csWLQ|3>6=~T=@k-@VUn4g>l2k}nQjp7Rh;SOYvLJXP!wnoZ(bf{ z8Cp=3=@Fi0;1Ob0YLuHD=AQ52S&?l};FFmh7F1PkoE}l)<64^SRFUXa6;VQOq{Y-nh1WNxOTl%H5yk`Y{zSdyw_r9{X>O0`*83-@Ma y%})j4?e^7-M_B~e_>~#>xAQCW-{JS*&*h&43`Tx_6%}S*Mnd7Y-Myc2X9EDO?TYsR delta 223 zcmZozz|pXPV}dl}&WSS4j5`|>wk9wx$roVdwrAkm#aqJjn|nRCJ=dwtf&!bk!pqs% zeT#wE*O!HbrO@0j*UZn!InBkf$k{2X)YmVg*xRqfH!?M|#MLa)xxCUhEGf`6vDiH? z&C}baQJHsXu!_c)NWy q<53m?R(=l#{_XsC_&xY@`6ux!1Kq*TucE^2%Sg!j?e6`II~xFjCP=UV diff --git a/src/app/giris/page.tsx b/src/app/giris/page.tsx index bac56af..ea4b23e 100644 --- a/src/app/giris/page.tsx +++ b/src/app/giris/page.tsx @@ -2,6 +2,7 @@ import type { Metadata } from "next"; import Link from "next/link"; import { redirect } from "next/navigation"; import { getSession } from "@/lib/session"; +import { PixelCorner } from "@/components/pixel-decor"; import { GirisForm } from "./giris-form"; import { GirisBaslik } from "./giris-baslik"; @@ -27,24 +28,35 @@ export default async function GirisPage({ return (
-
- -

- {funnel ? ( - <> - Seçimlerin hazır — giriş yap,{" "} - 5 deneme kredinle listen - hemen üretilsin. - - ) : ( - <> - Kayıt olduğunda{" "} - 5 deneme kredisi hesabına - tanımlanır — AI danışmana ücretsiz soru sorabilirsin. - - )} -

- +
+
+ +

+ {funnel ? ( + <> + Seçimlerin hazır — giriş yap,{" "} + 5 deneme kredinle listen + hemen üretilsin. + + ) : ( + <> + Kayıt olduğunda{" "} + 5 deneme kredisi{" "} + hesabına tanımlanır — AI danışmana ücretsiz soru sorabilirsin. + + )} +

+ +
+
+ + + + +

Giriş yaparak verilerinin tercih önerileri üretmek amacıyla{" "} diff --git a/src/app/gizlilik/page.tsx b/src/app/gizlilik/page.tsx index 3326980..f98349a 100644 --- a/src/app/gizlilik/page.tsx +++ b/src/app/gizlilik/page.tsx @@ -1,7 +1,6 @@ import type { Metadata } from "next"; import Link from "next/link"; import { Parallax } from "@/components/parallax"; -import { ScrollFlow } from "@/components/scroll-flow"; export const metadata: Metadata = { title: "Gizlilik ve KVKK — KolayTercih", @@ -10,8 +9,7 @@ export const metadata: Metadata = { // NOT: MVP taslağıdır; yayına almadan önce hukuki gözden geçirme gerekir. export default function GizlilikPage() { return ( - -

+

Gizlilik ve Kişisel Verilerin Korunması @@ -73,7 +71,6 @@ export default function GizlilikPage() {

-

- +
); } diff --git a/src/app/iletisim/page.tsx b/src/app/iletisim/page.tsx index 02c380a..382795a 100644 --- a/src/app/iletisim/page.tsx +++ b/src/app/iletisim/page.tsx @@ -1,7 +1,6 @@ import type { Metadata } from "next"; import { Mail } from "lucide-react"; import { Parallax } from "@/components/parallax"; -import { ScrollFlow } from "@/components/scroll-flow"; export const metadata: Metadata = { title: "İletişim — KolayTercih", @@ -9,8 +8,7 @@ export const metadata: Metadata = { export default function IletisimPage() { return ( - -
+

İletişim

@@ -30,7 +28,6 @@ export default function IletisimPage() { hesap adresini eklersen daha hızlı yardımcı olabiliriz. Kart bilgini asla e-postayla paylaşma.

-
- +
); } diff --git a/src/app/kosullar/page.tsx b/src/app/kosullar/page.tsx index 1d182bd..22e2a9e 100644 --- a/src/app/kosullar/page.tsx +++ b/src/app/kosullar/page.tsx @@ -1,7 +1,6 @@ import type { Metadata } from "next"; import Link from "next/link"; import { Parallax } from "@/components/parallax"; -import { ScrollFlow } from "@/components/scroll-flow"; export const metadata: Metadata = { title: "Kullanım ve Satış Koşulları — KolayTercih", @@ -10,8 +9,7 @@ export const metadata: Metadata = { // NOT: MVP taslağıdır; yayına almadan önce hukuki gözden geçirme gerekir. export default function KosullarPage() { return ( - -
+

Kullanım ve Satış Koşulları @@ -80,7 +78,6 @@ export default function KosullarPage() {

-

- +
); } diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 6376c8f..7db1dfd 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -7,6 +7,9 @@ import { ListeCekmecesi } from "@/components/manuel-liste/liste-cekmecesi"; import { HeaderGate } from "@/components/header-gate"; import { ProgressiveBlur } from "@/components/ui/skiper-ui/skiper41"; import { DevPanel } from "@/components/dev/dev-panel"; +import { ScrollFlow } from "@/components/scroll-flow"; +import { PagePixelLayer } from "@/components/page-pixel-layer"; +import { ConsoleAsr } from "@/components/console-asr"; import "./globals.css"; const calSans = Cal_Sans({ @@ -54,6 +57,8 @@ export default function RootLayout({ className={`${calSans.variable} ${clarityCity.variable} ${geistMono.variable} ${bricolage.variable} h-full antialiased`} > + + {/* Site geneli progressive blur — üst ve alt */}
- {children} + + {children} + {/* Manuel 24'lük liste çekmecesi + "+" uçuş katmanı (navbar'dan açılır) */} diff --git a/src/app/listem/page.tsx b/src/app/listem/page.tsx index 23bb26c..d53d8af 100644 --- a/src/app/listem/page.tsx +++ b/src/app/listem/page.tsx @@ -24,6 +24,7 @@ import type { RaporParams } from "@/lib/rapor-havuzu"; import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; import { RaporListesi } from "@/components/rapor-listesi"; +import { ViewportPortal } from "@/components/viewport-portal"; import { raporMaskele, ACIK_SATIR } from "@/lib/rapor-maske"; import { SohbetClient } from "./sohbet-client"; import { RevizyonKutusu } from "./revizyon-kutusu"; @@ -322,13 +323,15 @@ export default async function ListemPage({ {/* Mobilde sohbet sağ rayla birlikte en alta düşer; yüzen kısayol kullanıcıyı 24 satırı kaydırmadan danışmana ulaştırır. */} - - - Danışmana sor - + + + + Danışmana sor + +
); } diff --git a/src/app/page.tsx b/src/app/page.tsx index e7b1f86..887021a 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -11,9 +11,9 @@ import { } from "lucide-react"; import Image from "next/image"; import Link from "next/link"; +import { HeroFocusButton } from "@/components/hero-focus-button"; import { HeroForm } from "@/components/hero-form"; import { Parallax } from "@/components/parallax"; -import { ScrollFlow } from "@/components/scroll-flow"; import { Reveal } from "@/components/landing/reveal"; import { TurkeyPixelMap } from "@/components/turkey-pixel-map"; import { @@ -24,7 +24,6 @@ import { } from "@/components/pixel-decor"; import { URUNLER } from "@/lib/credits"; import { Badge } from "@/components/ui/badge"; -import { Button } from "@/components/ui/button"; import { Accordion, AccordionContent, @@ -166,8 +165,10 @@ function ComparisonCell({ value }: { value: boolean | string }) { export default function Home() { return ( -
- +
{/* Hero */}
@@ -193,7 +194,7 @@ export default function Home() { 2026 YKS tercih dönemi açık -

+

Dört yıllık geleceğini
48 saatlik panikle @@ -481,7 +482,7 @@ export default function Home() { value={faq.question} className="last:border-b-0" > - + {faq.question} @@ -522,13 +523,7 @@ export default function Home() { Sıralamanı gir, yapay zekâ danışmanın veriyle konuşsun. Tercih dönemi bitmeden yerini al.

- +

@@ -571,7 +566,6 @@ export default function Home() {
- ); } diff --git a/src/app/paket/page.tsx b/src/app/paket/page.tsx index 690113c..abc9ac0 100644 --- a/src/app/paket/page.tsx +++ b/src/app/paket/page.tsx @@ -14,7 +14,6 @@ import { URUNLER, DENEME_KREDISI } from "@/lib/credits"; import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; import { Parallax } from "@/components/parallax"; -import { ScrollFlow } from "@/components/scroll-flow"; import { SatinAlForm } from "./satin-al-form"; export const metadata: Metadata = { @@ -53,8 +52,7 @@ export default async function PaketPage({ const odemeHatasi = hata === "token" || hata === "siparis"; return ( -
- +
{odemeHatasi ? (
-
); } diff --git a/src/app/sonuc/sihirbaz-cagri-karti.tsx b/src/app/sonuc/sihirbaz-cagri-karti.tsx index 585a488..ba7a23a 100644 --- a/src/app/sonuc/sihirbaz-cagri-karti.tsx +++ b/src/app/sonuc/sihirbaz-cagri-karti.tsx @@ -8,6 +8,7 @@ import { animate } from "motion"; import { AnimatePresence, motion, useReducedMotion } from "motion/react"; import { toast } from "sonner"; import { Button } from "@/components/ui/button"; +import { ViewportPortal } from "@/components/viewport-portal"; import type { SihirbazFacetleri } from "@/lib/db"; import { SIHIRBAZ_STORAGE_KEY, @@ -446,54 +447,56 @@ export function SihirbazBolumu({
{/* Sabit alt çağrı kartı — liste/panel yokken ve kart kapatılmadıysa */} - {monteEdildi && !panelde && !kartGizle && !acik ? ( -
-
-
-

- {girisBekliyor - ? "Seçimlerin kayıtlı — AI listen hazır bekliyor" - : "3 adımda 24 tercihlik listen"} -

-

- {girisBekliyor - ? "Ücretsiz giriş yap, 5 deneme kredinle listen otomatik kurulsun." - : "Sıralamana uygun bölümleri seç, yapay zekâ listeni kursun."} -

+ + {monteEdildi && !panelde && !kartGizle && !acik ? ( +
+
+
+

+ {girisBekliyor + ? "Seçimlerin kayıtlı — AI listen hazır bekliyor" + : "3 adımda 24 tercihlik listen"} +

+

+ {girisBekliyor + ? "Ücretsiz giriş yap, 5 deneme kredinle listen otomatik kurulsun." + : "Sıralamana uygun bölümleri seç, yapay zekâ listeni kursun."} +

+
+ {girisBekliyor ? ( + + ) : ( + + )} +
- {girisBekliyor ? ( - - ) : ( - - )} -
-
- ) : null} + ) : null} + {/* Üretim başladığında modalı kaldır; yeni panelin geçişini Motion üstlenir ve odağı panel içeriğine taşır. */} diff --git a/src/app/sonuc/sohbet-popup.tsx b/src/app/sonuc/sohbet-popup.tsx index 25b6fda..9ffcf6e 100644 --- a/src/app/sonuc/sohbet-popup.tsx +++ b/src/app/sonuc/sohbet-popup.tsx @@ -8,6 +8,7 @@ import { useEffect, useState } from "react"; import { MessageCircleMore, X } from "lucide-react"; import { AnimatePresence, motion, useReducedMotion } from "motion/react"; import { SohbetClient } from "@/app/listem/sohbet-client"; +import { ViewportPortal } from "@/components/viewport-portal"; export function SohbetPopup({ kredi }: { kredi: number }) { const [acik, setAcik] = useState(false); @@ -23,7 +24,7 @@ export function SohbetPopup({ kredi }: { kredi: number }) { }, [acik]); return ( - <> + {acik ? ( - + ); } diff --git a/src/components/console-asr.tsx b/src/components/console-asr.tsx new file mode 100644 index 0000000..f20b684 --- /dev/null +++ b/src/components/console-asr.tsx @@ -0,0 +1,33 @@ +"use client"; + +import { useEffect } from "react"; + +let hasPlayed = false; + +const consoleMessage = [ + "%cبِسْمِ اللَّهِ الرَّحْمٰنِ الرَّحِيمِ", + "", + "وَالْعَصْرِۙ اِنَّ الْاِنْسَانَ لَف۪ي خُسْرٍۙ", + "اِلَّا الَّذ۪ينَ اٰمَنُوا وَعَمِلُوا الصَّالِحَاتِ", + "وَتَوَاصَوْا بِالْحَقِّ وَتَوَاصَوْا بِالصَّبْرِ", + "", + "Rahmân ve Rahîm olan Allah’ın adıyla.", + "", + "Asra yemîn olsun ki,", + "İnsan gerçekten ziyândadır.", + "Ancak iman edip sâlih ameller yapanlar, birbirlerine hakkı tavsiye", + "edenler ve birbirlerine sabretmeyi öğütleyenler müstesnâ!", +].join("\n"); + +export function ConsoleAsr() { + useEffect(() => { + if (hasPlayed) return; + hasPlayed = true; + + window.setTimeout(() => { + console.log(consoleMessage, "font-size:16px"); + }, 250); + }, []); + + return null; +} diff --git a/src/components/dev/dev-panel.tsx b/src/components/dev/dev-panel.tsx index 9be480b..e5dec28 100644 --- a/src/components/dev/dev-panel.tsx +++ b/src/components/dev/dev-panel.tsx @@ -200,7 +200,10 @@ export function DevPanel() {
-
+
{/* Oturum */}

diff --git a/src/components/hero-focus-button.tsx b/src/components/hero-focus-button.tsx new file mode 100644 index 0000000..d8b94f9 --- /dev/null +++ b/src/components/hero-focus-button.tsx @@ -0,0 +1,26 @@ +"use client"; + +import { Button } from "@/components/ui/button"; + +export function HeroFocusButton() { + function handleClick() { + const input = document.getElementById("siralama"); + + if (input instanceof HTMLInputElement) { + input.focus({ preventScroll: true }); + } + + window.scrollTo({ top: 0, behavior: "smooth" }); + } + + return ( + + ); +} diff --git a/src/components/hero-form.tsx b/src/components/hero-form.tsx index da467e8..2619cd9 100644 --- a/src/components/hero-form.tsx +++ b/src/components/hero-form.tsx @@ -132,7 +132,7 @@ export function HeroForm() { // flex-1 yalnızca yatay dizilimde (sm+): mobilde form flex-col olduğu // için flex-1 inputun yüksekliğini eziyordu. Mobilde geniş padding // + büyük yazı; sm ve üzeri eski görünüm. - className="h-12 bg-background px-5 text-lg sm:flex-1 sm:px-2.5 sm:text-base" + className="h-14 bg-background px-6 py-3 text-lg sm:h-12 sm:flex-1 sm:px-2.5 sm:py-1 sm:text-base" />