perf: Lenis smooth scroll ve scroll skew efektini kaldır

Site geneli ScrollFlow sarmalayıcısı (Lenis lerp'li kaydırma + hıza bağlı
skewY) tüm sayfa katmanını her karede transform'luyor, kaydırma performansını
düşürüyordu. Yerel tarayıcı kaydırmasına dönüldü; bölüm çapaları mevcut
scroll-mt değerleriyle çalışmaya devam eder. lenis bağımlılığı ve
data-lenis-prevent işaretleri temizlendi.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
bilalgursen
2026-09-21 15:31:11 +03:00
parent 294fb2cf6a
commit d79758adc0
15 changed files with 12 additions and 123 deletions

View File

@@ -16,7 +16,7 @@ export default function GirisPage({
searchParams: Promise<{ callback?: string; hata?: string }>;
}) {
return (
// -mb-28: layout'taki ScrollFlow sarmalayıcısının pb-28'ini nötrler —
// -mb-28: layout'taki içerik sarmalayıcısının pb-28'ini nötrler —
// kart tam dvh içinde ortalanır, sayfa scroll etmez (sığmazsa scroll açılır).
<div className="-mb-28 flex min-h-dvh flex-col bg-slate-50 text-slate-900">
<main className="mx-auto flex w-full max-w-md flex-1 flex-col items-stretch justify-center px-6 py-8">

View File

@@ -252,7 +252,5 @@
}
html {
@apply font-sans;
/* scroll-behavior: smooth KULLANMA — Lenis (ScrollFlow, anchors: true)
kaydırmayı zaten yumuşatıyor; ikisi birlikte çift yumuşatma yapar. */
}
}

View File

@@ -11,7 +11,6 @@ import { TercihProfiliKapisiLazy } from "@/features/liste/components/tercih-prof
import { HeaderGate } from "@/components/header-gate";
import { ProgressiveBlur } from "@/components/ui/skiper-ui/skiper41";
import { DevPanelMount } from "@/components/dev/dev-panel-mount";
import { ScrollFlow } from "@/components/scroll-flow";
import { JsonLd, organizationJsonLd, webSiteJsonLd, SITE_URL } from "@/lib/seo";
import "./globals.css";
@@ -79,10 +78,8 @@ export default function RootLayout({
return (
<html
lang="tr"
// `h-full` VERME — Lenis içerik yüksekliğini <html>'e bağlı ResizeObserver
// ile izliyor; html sabit %100 kalınca lazy yüklenen içerik sonrası limit
// bayatlıyor ve sayfa sonunda scroll kilitleniyor. html auto yükseklikte
// içerikle büyümeli, viewport tabanı body'deki min-h-dvh'den gelir.
// `h-full` verme: html auto yükseklikte içerikle büyür, viewport tabanı
// body'deki min-h-dvh'den gelir.
className={`${calSans.variable} ${clarityCity.variable} ${geistMono.variable} ${bricolage.variable} antialiased`}
>
<body className="min-h-dvh flex flex-col bg-slate-50">
@@ -107,9 +104,9 @@ export default function RootLayout({
<SiteTopBanner />
<SiteHeader />
</HeaderGate>
<ScrollFlow className="flex min-h-0 flex-1 flex-col pb-28 print:pb-0">
<div className="flex min-h-0 flex-1 flex-col pb-28 print:pb-0">
{children}
</ScrollFlow>
</div>
{/* Manuel 24'lük liste çekmecesi + "+" uçuş katmanı (navbar'dan açılır) */}
<ListeCekmecesiLazy />
{/* Girişsiz + 3 seçimli kullanıcıya "listen yalnızca bu tarayıcıda" banner'ı */}

View File

@@ -17,7 +17,7 @@ export default function OdemePage({
searchParams: Promise<{ siparis?: string }>;
}) {
return (
// -mb-28: layout'taki ScrollFlow sarmalayıcısının pb-28'ini nötrler — o
// -mb-28: layout'taki içerik sarmalayıcısının pb-28'ini nötrler — o
// padding gizlenen alt blur katmanı içindi, checkout'ta krom kapalı.
<div className="-mb-28 flex min-h-dvh flex-col bg-slate-50 text-slate-900">
<OdemeUstSerit />