UI: Refactor all page headers to minimal text layout without hero images and fix overlapping with navbar

This commit is contained in:
Ayris Dev
2026-07-15 14:31:56 +03:00
parent 7a874ab11d
commit f78fb90a55
6 changed files with 63 additions and 131 deletions
+12 -25
View File
@@ -26,32 +26,19 @@ export default async function AktivitelerPage({ params }: { params: Promise<{ la
const activities = await prisma.activity.findMany({ where: { lang }, orderBy: { order: "asc" } }); const activities = await prisma.activity.findMany({ where: { lang }, orderBy: { order: "asc" } });
return ( return (
<div className="min-h-screen bg-background"> <div className="min-h-screen bg-background pt-40 pb-10">
{/* Page Header */} {/* Page Header */}
<section className="relative h-[55vh] w-full flex items-end overflow-hidden"> <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center mb-16">
<div className="absolute inset-0"> <span className="inline-block text-accent text-xs tracking-[0.25em] uppercase font-semibold mb-4 animate-fade-up">
<Image {isEn ? "Experiences" : "Deneyimler"}
src="https://images.unsplash.com/photo-1526367790999-0150786686a2?q=80&w=2940&auto=format&fit=crop" </span>
alt={isEn ? "Activities" : "Aktiviteler"} <h1 className="font-serif text-5xl md:text-6xl text-dark font-bold animate-fade-up delay-100 mb-6">
fill {isEn ? "Activities" : "Aktiviteler"}
sizes="100vw" </h1>
className="object-cover" <p className="text-muted text-lg max-w-2xl mx-auto animate-fade-up delay-200">
/> {isEn ? "Feel the wind, be one with nature." : "Rüzgarı hisset, doğayla bir ol."}
<div className="absolute inset-0 bg-gradient-to-t from-dark/85 via-dark/30 to-black/20" /> </p>
</div> </div>
<div className="relative z-10 max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 pb-14 w-full">
<span className="block text-accent text-xs tracking-[0.3em] uppercase font-semibold mb-3 animate-fade-up">
{isEn ? "Experiences" : "Deneyimler"}
</span>
<h1 className="font-serif text-5xl md:text-7xl text-white font-bold animate-fade-up delay-100">
{isEn ? "Activities" : "Aktiviteler"}
</h1>
<p className="text-white/60 text-lg mt-3 font-light animate-fade-up delay-200">
{isEn ? "Feel the wind, be one with nature." : "Rüzgarı hisset, doğayla bir ol."}
</p>
</div>
</section>
{/* Activities */} {/* Activities */}
<section className="py-20 max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <section className="py-20 max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
+13 -29
View File
@@ -31,35 +31,19 @@ export default async function EventsPage({ params }: { params: Promise<{ lang: s
{/* ────────────────────────────────────────── {/* ──────────────────────────────────────────
HERO HERO
────────────────────────────────────────── */} ────────────────────────────────────────── */}
<section className="relative h-[60vh] min-h-[500px] w-full flex items-center justify-center overflow-hidden"> <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center mb-16 pt-40">
<div className="absolute inset-0 z-0"> <span className="inline-block text-accent text-xs tracking-[0.35em] uppercase font-bold mb-4 animate-fade-up">
<Image Kite Beach Akyaka
src="https://images.unsplash.com/photo-1514525253161-7a46d19cd819?q=80&w=2874&auto=format&fit=crop" </span>
alt={isEn ? "Kite Beach Akyaka Events" : "Kite Beach Akyaka Etkinlikler"} <h1 className="font-serif text-5xl md:text-6xl text-dark font-bold animate-fade-up delay-100 mb-6">
fill {isEn ? "Events" : "Etkinlikler"}
sizes="100vw" </h1>
className="object-cover" <p className="text-muted text-lg max-w-2xl mx-auto animate-fade-up delay-200">
priority {isEn
/> ? "Unforgettable experiences where music, sports, and nature intertwine."
<div className="absolute inset-0 bg-dark/60" /> : "Müzik, spor ve doğanın iç içe geçtiği unutulmaz deneyimler."}
</div> </p>
</div>
<div className="relative z-10 text-center px-4 max-w-4xl mx-auto mt-16">
<ScrollReveal>
<span className="inline-block text-accent text-xs tracking-[0.35em] uppercase mb-4 font-bold">
Kite Beach Akyaka
</span>
<h1 className="font-serif text-5xl md:text-7xl font-bold text-white mb-6">
{isEn ? "Events" : "Etkinlikler"}
</h1>
<p className="text-white/80 text-lg md:text-xl font-light max-w-2xl mx-auto leading-relaxed">
{isEn
? "Unforgettable experiences where music, sports, and nature intertwine."
: "Müzik, spor ve doğanın iç içe geçtiği unutulmaz deneyimler."}
</p>
</ScrollReveal>
</div>
</section>
{/* ────────────────────────────────────────── {/* ──────────────────────────────────────────
EVENTS LIST EVENTS LIST
+13 -26
View File
@@ -75,32 +75,19 @@ export default async function HakkimizdaPage({ params }: { params: Promise<{ lan
const displayStats = isEn ? statsEn : statsTr; const displayStats = isEn ? statsEn : statsTr;
return ( return (
<div className="min-h-screen bg-background"> <div className="min-h-screen bg-background pt-40 pb-10">
{/* Page Header */} {/* Page Header */}
<section className="relative h-[55vh] w-full flex items-end overflow-hidden"> <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center mb-16">
<div className="absolute inset-0"> <span className="inline-block text-accent text-xs tracking-[0.25em] uppercase font-semibold mb-4 animate-fade-up">
<Image {isEn ? "Who We Are" : "Biz Kimiz"}
src="https://images.unsplash.com/photo-1544551763-46a013bb70d5?q=80&w=2940&auto=format&fit=crop" </span>
alt={isEn ? "About Us" : "Hakkımızda"} <h1 className="font-serif text-5xl md:text-6xl text-dark font-bold animate-fade-up delay-100 mb-6">
fill {isEn ? "Our Story" : "Hikayemiz"}
sizes="100vw" </h1>
className="object-cover" <p className="text-muted text-lg max-w-2xl mx-auto animate-fade-up delay-200">
/> {isEn ? "Where the wind, sea and river meet." : "Rüzgarın, denizin ve nehrin kesiştiği yerde."}
<div className="absolute inset-0 bg-gradient-to-t from-dark/85 via-dark/30 to-black/20" /> </p>
</div> </div>
<div className="relative z-10 max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 pb-14 w-full">
<span className="block text-accent text-xs tracking-[0.3em] uppercase font-semibold mb-3 animate-fade-up">
{isEn ? "Who We Are" : "Biz Kimiz"}
</span>
<h1 className="font-serif text-5xl md:text-7xl text-white font-bold animate-fade-up delay-100">
{isEn ? "Our Story" : "Hikayemiz"}
</h1>
<p className="text-white/60 text-lg mt-3 font-light animate-fade-up delay-200">
{isEn ? "Where the wind, sea and river meet." : "Rüzgarın, denizin ve nehrin kesiştiği yerde."}
</p>
</div>
</section>
{/* Story */} {/* Story */}
<section className="py-24 bg-white"> <section className="py-24 bg-white">
@@ -134,7 +121,7 @@ export default async function HakkimizdaPage({ params }: { params: Promise<{ lan
<ScrollReveal delay={150}> <ScrollReveal delay={150}>
<div className="relative h-[460px] rounded-3xl overflow-hidden"> <div className="relative h-[460px] rounded-3xl overflow-hidden">
<Image <Image
src="https://images.unsplash.com/photo-1526367790999-0150786686a2?q=80&w=2940&auto=format&fit=crop" src="/kitesurf.png"
alt="Kitesurf" alt="Kitesurf"
fill fill
sizes="(max-width: 768px) 100vw, 50vw" sizes="(max-width: 768px) 100vw, 50vw"
+12 -25
View File
@@ -22,32 +22,19 @@ export default async function OdalarPage({ params }: { params: Promise<{ lang: s
: ["Organik Serpme Kahvaltı", "Ücretsiz Otopark", "Plaj & Nehir Erişimi", "Şezlong & Havlu", "Wi-Fi", "24/7 Resepsiyon", "Klima", "Minibar"]; : ["Organik Serpme Kahvaltı", "Ücretsiz Otopark", "Plaj & Nehir Erişimi", "Şezlong & Havlu", "Wi-Fi", "24/7 Resepsiyon", "Klima", "Minibar"];
return ( return (
<div className="min-h-screen bg-background"> <div className="min-h-screen bg-background pt-40 pb-10">
{/* Page Header */} {/* Page Header */}
<section className="relative h-[55vh] w-full flex items-end overflow-hidden"> <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center mb-16">
<div className="absolute inset-0"> <span className="inline-block text-accent text-xs tracking-[0.25em] uppercase font-semibold mb-4 animate-fade-up">
<Image {isEn ? "Accommodation" : "Konaklama"}
src="https://images.unsplash.com/photo-1618773928121-c32242e63f39?q=80&w=2940&auto=format&fit=crop" </span>
alt={isEn ? "Our Rooms" : "Odalarımız"} <h1 className="font-serif text-5xl md:text-6xl text-dark font-bold animate-fade-up delay-100 mb-6">
fill {isEn ? "Our Rooms" : "Odalarımız"}
sizes="100vw" </h1>
className="object-cover" <p className="text-muted text-lg max-w-2xl mx-auto animate-fade-up delay-200">
/> {isEn ? "A comfortable break in the heart of nature." : "Doğanın içinde, konforlu bir mola."}
<div className="absolute inset-0 bg-gradient-to-t from-dark/85 via-dark/30 to-black/20" /> </p>
</div> </div>
<div className="relative z-10 max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 pb-14 w-full">
<span className="block text-accent text-xs tracking-[0.3em] uppercase font-semibold mb-3 animate-fade-up">
{isEn ? "Accommodation" : "Konaklama"}
</span>
<h1 className="font-serif text-5xl md:text-7xl text-white font-bold animate-fade-up delay-100">
{isEn ? "Our Rooms" : "Odalarımız"}
</h1>
<p className="text-white/60 text-lg mt-3 font-light animate-fade-up delay-200">
{isEn ? "A comfortable break in the heart of nature." : "Doğanın içinde, konforlu bir mola."}
</p>
</div>
</section>
{/* Intro & Price */} {/* Intro & Price */}
<section className="py-20 max-w-5xl mx-auto px-4 sm:px-6 lg:px-8"> <section className="py-20 max-w-5xl mx-auto px-4 sm:px-6 lg:px-8">
+12 -25
View File
@@ -72,32 +72,19 @@ export default async function RestoranPage({ params }: { params: Promise<{ lang:
const displayMenuCategories = isEn ? menuCategoriesEn : menuCategoriesTr; const displayMenuCategories = isEn ? menuCategoriesEn : menuCategoriesTr;
return ( return (
<div className="min-h-screen bg-background"> <div className="min-h-screen bg-background pt-40 pb-10">
{/* Page Header */} {/* Page Header */}
<section className="relative h-[55vh] w-full flex items-end overflow-hidden"> <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center mb-16">
<div className="absolute inset-0"> <span className="inline-block text-accent text-xs tracking-[0.25em] uppercase font-semibold mb-4 animate-fade-up">
<Image {isEn ? "Flavors" : "Lezzetler"}
src="https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?q=80&w=2940&auto=format&fit=crop" </span>
alt={isEn ? "Restaurant & Bar" : "Restoran & Bar"} <h1 className="font-serif text-5xl md:text-6xl text-dark font-bold animate-fade-up delay-100 mb-6">
fill {isEn ? "Restaurant & Bar" : "Restoran & Bar"}
sizes="100vw" </h1>
className="object-cover" <p className="text-muted text-lg max-w-2xl mx-auto animate-fade-up delay-200">
/> {isEn ? "Aegean flavors and river view." : "Ege lezzetleri ve nehir manzarası."}
<div className="absolute inset-0 bg-gradient-to-t from-dark/85 via-dark/30 to-black/20" /> </p>
</div> </div>
<div className="relative z-10 max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 pb-14 w-full">
<span className="block text-accent text-xs tracking-[0.3em] uppercase font-semibold mb-3 animate-fade-up">
{isEn ? "Flavors" : "Lezzetler"}
</span>
<h1 className="font-serif text-5xl md:text-7xl text-white font-bold animate-fade-up delay-100">
{isEn ? "Restaurant & Bar" : "Restoran & Bar"}
</h1>
<p className="text-white/60 text-lg mt-3 font-light animate-fade-up delay-200">
{isEn ? "Aegean flavors and river view." : "Ege lezzetleri ve nehir manzarası."}
</p>
</div>
</section>
{/* Intro */} {/* Intro */}
<section className="py-20 bg-white"> <section className="py-20 bg-white">
+1 -1
View File
@@ -30,7 +30,7 @@ export default function AboutSection({ aboutData, lang }: AboutSectionProps) {
<ScrollReveal className="relative"> <ScrollReveal className="relative">
<div className="relative h-[540px] lg:h-[660px] rounded-3xl overflow-hidden shadow-2xl"> <div className="relative h-[540px] lg:h-[660px] rounded-3xl overflow-hidden shadow-2xl">
<Image <Image
src={aboutData.image} src="/kitesurf.png"
alt={aboutData.badge} alt={aboutData.badge}
fill fill
sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw"