feat: i18n fixes, blog rename, footer cleanup, and contact info update

- Rename /news route to /blog across all pages, links, and sitemap
- Fix hardcoded English text in Experiences, QuoteSection, and Footer
  by wiring all content through the TR/EN dictionaries
- Clean up Footer: remove non-existent page links, add contact column
- Update contact info: new phone numbers, bilgi@ email, No:71 address,
  Instagram @ayrisapart link
- Add suppressHydrationWarning to <body> to silence browser-extension
  attribute mismatch errors
- Add sizes prop to all fill-mode Next.js Image components

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-02 18:05:30 +03:00
co-authored by Claude Sonnet 4.6
parent 433252a05d
commit 40b4434a7b
34 changed files with 2864 additions and 509 deletions
+6 -6
View File
@@ -7,25 +7,25 @@ import Image from 'next/image'
const images = [
{
src: "https://images.unsplash.com/photo-1541410950669-e771b058097d?q=80&w=2070&auto=format&fit=crop",
w: 305, h: 225,
src: "https://res.cloudinary.com/du7xohbct/image/upload/v1776641696/ayrisapart/hero/1_cxfvrw.jpg",
w: 305, h: 425,
tx: -550, ty: -350,
rotate: -2
},
{
src: "https://images.unsplash.com/photo-1590490360182-c33d57733427?q=80&w=2100&auto=format&fit=crop",
src: "https://res.cloudinary.com/du7xohbct/image/upload/v1776641695/ayrisapart/hero/7_yuouc0.jpg",
w: 325, h: 425,
tx: 550, ty: -350,
rotate: 1
},
{
src: "https://images.unsplash.com/photo-1566665797739-1674de7a421a?q=80&w=2070&auto=format&fit=crop",
src: "https://res.cloudinary.com/du7xohbct/image/upload/v1776641695/ayrisapart/hero/2_dfrmwi.jpg",
w: 385, h: 485,
tx: -550, ty: 350,
rotate: -1
},
{
src: "https://images.unsplash.com/photo-1571896349842-33c89424de2d?q=80&w=2073&auto=format&fit=crop",
src: "https://res.cloudinary.com/du7xohbct/image/upload/v1776641696/ayrisapart/hero/8_kjih1z.jpg",
w: 425, h: 365,
tx: 550, ty: 350,
rotate: 2
@@ -81,7 +81,7 @@ export default function CallToAction({ lang, dict }: { lang: string, dict: any }
>
<div className={`relative shadow-2xl p-4 bg-white`} style={{ width: img.w, height: img.h }}>
<div className="relative w-full h-full">
<Image src={img.src} alt="Ayris" fill className="object-cover" />
<Image src={img.src} alt="Ayris" fill sizes="(max-width: 768px) 100vw, 50vw" className="object-cover" />
</div>
</div>
</motion.div>
+16 -24
View File
@@ -4,34 +4,25 @@ import { motion, AnimatePresence } from 'framer-motion'
import Image from 'next/image'
import { useState } from 'react'
const experiences = [
{
title: "Infinity Pool",
description: "Swim towards the horizon in our stunning heated infinity pool, overlooking the turquoise expanse of the Aegean Sea.",
image: "https://images.unsplash.com/photo-1576013551627-0cfde316be70?q=80&w=1974&auto=format&fit=crop"
},
{
title: "Snorkeling",
description: "Discover vibrant marine life, swim through crystal-clear waters, and experience the wonder of ocean.",
image: "https://images.unsplash.com/photo-1544551763-46a013bb70d5?q=80&w=2070&auto=format&fit=crop"
},
{
title: "Paddle boarding",
description: "Balance your soul and body while gliding over calm morning waves on our premium paddle boards.",
image: "https://images.unsplash.com/photo-1517176641128-052478950337?q=80&w=1974&auto=format&fit=crop"
},
{
title: "Fishing trips",
description: "Join our local experts for an authentic Mediterranean fishing experience at sunrise.",
image: "https://images.unsplash.com/photo-1524704652723-21444983944d?q=80&w=1974&auto=format&fit=crop"
}
const experienceImages = [
"https://res.cloudinary.com/du7xohbct/image/upload/v1776642503/ayrisapart/experiences/akbuk_cjfyan.jpg",
"https://res.cloudinary.com/du7xohbct/image/upload/v1776642502/ayrisapart/experiences/oren_d2pxcy.jpg",
"https://res.cloudinary.com/du7xohbct/image/upload/v1776642501/ayrisapart/experiences/alatepe_oawu3z.jpg",
"https://res.cloudinary.com/du7xohbct/image/upload/v1776642492/ayrisapart/experiences/cokertme_d5qfiw.jpg",
]
export default function Experiences() {
export default function Experiences({ dict }: { dict: any }) {
const [hoveredIdx, setHoveredIdx] = useState<number | null>(null)
const experiences = [
{ title: dict.experiences.e1.title, description: dict.experiences.e1.desc, image: experienceImages[0] },
{ title: dict.experiences.e2.title, description: dict.experiences.e2.desc, image: experienceImages[1] },
{ title: dict.experiences.e3.title, description: dict.experiences.e3.desc, image: experienceImages[2] },
{ title: dict.experiences.e4.title, description: dict.experiences.e4.desc, image: experienceImages[3] },
]
return (
<section className="relative z-60 bg-[#FAF7F0] py-32 px-6 md:px-12">
<section className="relative z-60 bg-[#FAF7F0] ">
<div className="max-w-[1400px] mx-auto space-y-20">
<div className="text-center space-y-4">
<motion.h2
@@ -41,7 +32,7 @@ export default function Experiences() {
transition={{ duration: 1.2, ease: [0.33, 1, 0.68, 1] }}
className="text-4xl md:text-[64px] font-medium text-[#1A1A1A] leading-tight"
>
Discover experiences <br /> beyond the shore
{dict.experiences.title}
</motion.h2>
</div>
@@ -67,6 +58,7 @@ export default function Experiences() {
src={exp.image}
alt={exp.title}
fill
sizes="(max-width: 768px) 100vw, 33vw"
className="object-cover transition-transform duration-1000 group-hover:scale-110"
/>
+19 -28
View File
@@ -16,10 +16,10 @@ export default function Footer({ lang, dict }: { lang: string, dict: any }) {
</h2>
<div className="space-y-4 pt-10 md:pt-0">
<div className="flex items-center justify-end space-x-3 text-sm font-medium tracking-widest opacity-80">
<Phone size={15} className="opacity-60" /> <span>+90 543 231 87 13</span>
<Phone size={15} className="opacity-60" /> <span>+90 543 231 87 13 +90 554 376 51 03</span>
</div>
<div className="flex items-center justify-end space-x-3 text-sm font-medium tracking-widest opacity-80">
<Mail size={15} className="opacity-60" /> <span>hello@ayrisapart.com</span>
<Mail size={15} className="opacity-60" /> <span>bilgi@ayrisapart.com</span>
</div>
</div>
</div>
@@ -33,12 +33,10 @@ export default function Footer({ lang, dict }: { lang: string, dict: any }) {
{/* LEFT CONTENT (CTA) */}
<div className="lg:col-span-5 space-y-10 max-w-sm">
<p className="text-white/70 text-[17px] leading-relaxed">
{lang === 'tr'
? "Konaklamanızı bugün ayırtın ve Ören kıyılarında deniz kenarı lüksünü, nefes kesen manzaraları ve unutulmaz anları keşfedin."
: "Book your stay today and discover seaside luxury, breathtaking views, and unforgettable moments on the shores of Oren."}
{dict.footer.desc}
</p>
<Link
href={`/${lang}/reservation`}
href={`/${lang}/contact`}
className="inline-flex items-center space-x-2 border-b border-white/40 pb-1 group hover:border-white transition-all"
>
<span className="text-[#C88C4B] text-xl transform group-hover:translate-x-1 transition-transform"></span>
@@ -48,45 +46,37 @@ export default function Footer({ lang, dict }: { lang: string, dict: any }) {
{/* RIGHT LINKS */}
<div className="lg:col-span-7">
<div className="grid grid-cols-2 md:grid-cols-4 gap-12">
<div className="grid grid-cols-2 md:grid-cols-3 gap-12">
{/* EXPLORE */}
<div className="space-y-8">
<h4 className="text-[10px] font-bold tracking-[0.4em] opacity-40 uppercase">EXPLORE</h4>
<h4 className="text-[10px] font-bold tracking-[0.4em] opacity-40 uppercase">{dict.footer.explore}</h4>
<ul className="space-y-4 text-sm font-medium opacity-60 uppercase tracking-widest">
<li><Link href={`/${lang}`} className="hover:opacity-100 transition-opacity">{dict.nav.home}</Link></li>
<li><Link href={`/${lang}/about`} className="hover:opacity-100 transition-opacity">{dict.nav.about}</Link></li>
<li><Link href={`/${lang}/news`} className="hover:opacity-100 transition-opacity">{dict.nav.news}</Link></li>
<li><Link href={`/${lang}/suites`} className="hover:opacity-100 transition-opacity">{dict.nav.suites}</Link></li>
</ul>
</div>
{/* OTHERS */}
<div className="space-y-8">
<h4 className="text-[10px] font-bold tracking-[0.4em] opacity-40 uppercase">OTHERS</h4>
<ul className="space-y-4 text-sm font-medium opacity-60 uppercase tracking-widest">
<li><Link href={`/${lang}/services`} className="hover:opacity-100 transition-opacity">Services</Link></li>
<li><Link href={`/${lang}/activities`} className="hover:opacity-100 transition-opacity">Activities</Link></li>
<li><Link href={`/${lang}/gallery`} className="hover:opacity-100 transition-opacity">Gallery</Link></li>
<li><Link href={`/${lang}/blog`} className="hover:opacity-100 transition-opacity">{dict.nav.news}</Link></li>
<li><Link href={`/${lang}/contact`} className="hover:opacity-100 transition-opacity">{dict.nav.contact}</Link></li>
</ul>
</div>
{/* UTILITY */}
{/* CONTACT */}
<div className="space-y-8">
<h4 className="text-[10px] font-bold tracking-[0.4em] opacity-40 uppercase">UTILITY</h4>
<ul className="space-y-4 text-sm font-medium opacity-60 uppercase tracking-widest">
<li><Link href={`/${lang}/license`} className="hover:opacity-100 transition-opacity">License</Link></li>
<li><Link href={`/${lang}/404`} className="hover:opacity-100 transition-opacity">404</Link></li>
<h4 className="text-[10px] font-bold tracking-[0.4em] opacity-40 uppercase">{dict.contact.title}</h4>
<ul className="space-y-4 text-sm font-medium opacity-60 tracking-widest">
<li>+90 543 231 87 13</li>
<li>+90 554 376 51 03</li>
<li>bilgi@ayrisapart.com</li>
<li className="leading-relaxed">{dict.contact.visit.d}</li>
</ul>
</div>
{/* SOCIALS */}
<div className="space-y-8">
<h4 className="text-[10px] font-bold tracking-[0.4em] opacity-40 uppercase">SOCIALS</h4>
<h4 className="text-[10px] font-bold tracking-[0.4em] opacity-40 uppercase">{dict.footer.socials}</h4>
<ul className="space-y-4 text-sm font-medium opacity-60 uppercase tracking-widest">
<li><a href="#" className="hover:opacity-100 transition-opacity">Instagram</a></li>
<li><a href="https://instagram.com/ayrisapart" target="_blank" className="hover:opacity-100 transition-opacity">Instagram</a></li>
<li><a href="#" className="hover:opacity-100 transition-opacity">Facebook</a></li>
<li><a href="#" className="hover:opacity-100 transition-opacity">Twitter</a></li>
<li><a href="#" className="hover:opacity-100 transition-opacity">WhatsApp</a></li>
</ul>
</div>
</div>
@@ -109,7 +99,8 @@ export default function Footer({ lang, dict }: { lang: string, dict: any }) {
<Image
src="/logo.png"
alt="Ayris Apart Logo"
fill
fill
sizes="200px"
className="object-contain filter brightness-0 invert"
/>
</div>
+22 -22
View File
@@ -8,48 +8,48 @@ import Image from 'next/image'
const heroSlots = [
{
srcs: [
'https://images.unsplash.com/photo-1582719478250-c89cae4dc85b?q=80&w=2070&auto=format&fit=crop',
'https://images.unsplash.com/photo-1566665797739-1674de7a421a?q=80&w=2070&auto=format&fit=crop',
'https://images.unsplash.com/photo-1590490360182-c33d57733427?q=80&w=2070&auto=format&fit=crop',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641696/ayrisapart/hero/1_cxfvrw.jpg',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641696/ayrisapart/hero/9_vym2pc.jpg',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641696/ayrisapart/hero/8_kjih1z.jpg',
],
rotate: -12,
top: '15%',
rotate: 15,
top: '5%',
left: '22%',
size: 'w-48 h-64 md:w-64 md:h-80',
delay: 0.2
},
{
srcs: [
'https://images.unsplash.com/photo-1544124499-58912cbddaad?q=80&w=2127&auto=format&fit=crop',
'https://images.unsplash.com/photo-1520250497591-112f2f40a3f4?q=80&w=2127&auto=format&fit=crop',
'https://images.unsplash.com/photo-1571896349842-33c89424de2d?q=80&w=2127&auto=format&fit=crop',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641695/ayrisapart/hero/7_yuouc0.jpg',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641695/ayrisapart/hero/4_eeyoge.jpg',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641695/ayrisapart/hero/3_tolqzo.jpg',
],
rotate: 10,
top: '10%',
rotate: -15,
top: '8%',
left: '58%',
size: 'w-52 h-64 md:w-72 md:h-80',
delay: 0.4
},
{
srcs: [
'https://images.unsplash.com/photo-1507525428034-b723cf961d3e?q=80&w=2073&auto=format&fit=crop',
'https://images.unsplash.com/photo-1519046904884-53103b34b206?q=80&w=2073&auto=format&fit=crop',
'https://images.unsplash.com/photo-1506929199020-feee17651703?q=80&w=2073&auto=format&fit=crop',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641695/ayrisapart/hero/2_dfrmwi.jpg',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641695/ayrisapart/hero/5_mmcnjw.jpg',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641696/ayrisapart/hero/6_x44c4w.jpg',
],
rotate: -8,
top: '65%',
top: '60%',
left: '18%',
size: 'w-48 h-60 md:w-64 md:h-72',
delay: 0.6
},
{
srcs: [
'https://images.unsplash.com/photo-1536935338218-422119932906?q=80&w=1964&auto=format&fit=crop',
'https://images.unsplash.com/photo-1618773928121-c32242e63f39?q=80&w=1964&auto=format&fit=crop',
'https://images.unsplash.com/photo-1560185007-cde436f6a4d0?q=80&w=1964&auto=format&fit=crop',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641695/ayrisapart/hero/4_eeyoge.jpg',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641695/ayrisapart/hero/5_mmcnjw.jpg',
'https://res.cloudinary.com/du7xohbct/image/upload/v1776641696/ayrisapart/hero/9_vym2pc.jpg',
],
rotate: 15,
top: '72%',
rotate: -8,
top: '62%',
left: '62%',
size: 'w-52 h-64 md:w-72 md:h-88',
delay: 0.8
@@ -112,7 +112,7 @@ function FloatingSlot({ slot, idx }: { slot: typeof heroSlots[0], idx: number })
export default function Hero({ lang, dict }: { lang: string, dict: any }) {
return (
<section className="sticky top-0 z-[20] h-screen w-full bg-[#FAF7F0] flex items-center justify-center overflow-hidden">
<section className="sticky top-30 z-[20] h-screen w-full bg-[#FAF7F0] flex items-center justify-center overflow-hidden">
{/* BACKGROUND TEXT */}
<motion.div
initial={{ opacity: 0, scale: 0.95 }}
@@ -120,7 +120,7 @@ export default function Hero({ lang, dict }: { lang: string, dict: any }) {
transition={{ duration: 1.5, ease: [0.33, 1, 0.68, 1] }}
className="relative z-10 w-full text-center px-4"
>
<h1 className="text-[14vw] leading-[0.8] font-serif tracking-[-0.04em] text-[#1A1A1A] uppercase select-none drop-shadow-sm">
<h1 className="text-[18vw] leading-[0.8] font-serif tracking-[-0.04em] text-[#1F1C19] uppercase select-none drop-shadow-sm">
{dict.hero.title}
</h1>
</motion.div>
@@ -131,7 +131,7 @@ export default function Hero({ lang, dict }: { lang: string, dict: any }) {
))}
{/* BOTTOM CONTENT */}
<div className="absolute bottom-12 right-12 z-30 max-w-sm text-right flex flex-col items-end space-y-6">
<div className="absolute bottom-36 right-12 z-30 max-w-sm text-right flex flex-col items-end space-y-6">
<motion.p
initial={{ opacity: 0, x: 20 }}
animate={{ opacity: 1, x: 0 }}
+7 -7
View File
@@ -29,7 +29,7 @@ export default function Navbar({ lang, dict }: { lang: string, dict: any }) {
const navLinks = [
{ name: dict.nav.about, href: `/${lang}/about` },
{ name: dict.nav.suites, href: `/${lang}/suites`, hasDropdown: true },
{ name: dict.nav.news, href: `/${lang}/news` },
{ name: dict.nav.news, href: `/${lang}/blog` },
]
useEffect(() => {
@@ -55,13 +55,13 @@ export default function Navbar({ lang, dict }: { lang: string, dict: any }) {
initial={{ y: -100 }}
animate={{ y: isVisible ? 0 : -100 }}
transition={{ duration: 0.6, ease: [0.33, 1, 0.68, 1] }}
className={`fixed top-0 left-0 right-0 z-[100] transition-all duration-500 flex justify-center py-4 px-6 md:px-12`}
className={`fixed top-0 left-0 right-0 z-[100] transition-all duration-500 flex justify-center px-6 md:px-12`}
>
<div className={`w-full flex items-center justify-between bg-white rounded-[2px] transition-all duration-500 border border-[#1A1A1A]/5 ${isScrolled ? 'py-3 px-10' : 'py-5 px-12'}`}>
<div className={`w-full mx-auto max-w-[1700px] flex items-center justify-between bg-white rounded-[2px] transition-all duration-500 border border-[#1F1C19]/5 ${isScrolled ? 'py-3 px-10' : 'py-5 px-12'}`}>
{/* LOGO */}
<Link href={`/${lang}`} className="flex items-center group">
<span className="text-[24px] font-serif tracking-[0.25em] text-[#1A1A1A] uppercase">
AYRIS APART
<span className="text-[36px] font-serif font-bold text-[#1F1C19] ">
AyrisApart
</span>
</Link>
@@ -71,7 +71,7 @@ export default function Navbar({ lang, dict }: { lang: string, dict: any }) {
<Link
key={link.name}
href={link.href}
className="group relative text-[11px] font-bold tracking-[0.35em] uppercase text-[#1A1A1A]/70 hover:text-[#1A1A1A] transition-colors overflow-hidden"
className="group relative text-[18px] font-sans uppercase text-[#1F1C19] hover:text-[#1A1A1A] transition-colors overflow-hidden"
>
<span className="block">{link.name}</span>
<span className="absolute bottom-0 left-0 w-full h-[1.5px] bg-[#C88C4B] transform scale-x-0 group-hover:scale-x-100 transition-transform duration-500 origin-left" />
@@ -101,7 +101,7 @@ export default function Navbar({ lang, dict }: { lang: string, dict: any }) {
href={`/${lang}/contact`}
className="hidden lg:flex items-center space-x-3 group"
>
<span className="text-[11px] font-bold tracking-[0.35em] uppercase text-[#1A1A1A]">{dict.nav.contact}</span>
<span className="text-[18px] font-bold uppercase text-[#1F1C19]">{dict.nav.contact}</span>
<div className="w-10 h-10 rounded-full border border-[#1A1A1A]/10 flex items-center justify-center group-hover:bg-[#1A1A1A] group-hover:border-[#1A1A1A] transition-all duration-500">
<ArrowRight size={16} className="text-[#1A1A1A] group-hover:text-white transition-colors" />
</div>
+4 -4
View File
@@ -2,17 +2,17 @@
import { motion } from 'framer-motion'
export default function QuoteSection() {
export default function QuoteSection({ dict }: { dict: any }) {
return (
<section className="relative z-60 bg-[#FAF7F0] py-40 flex items-center justify-center text-center px-6">
<section className="relative z-60 bg-[#FAF7F0] pt-20 flex items-center justify-center text-center px-6 ">
<motion.h2
initial={{ opacity: 0, y: 40 }}
whileInView={{ opacity: 1, y: 0 }}
viewport={{ once: true }}
transition={{ duration: 1.5, ease: [0.33, 1, 0.68, 1] }}
className="text-4xl md:text-[80px] font-medium text-[#1A1A1A] leading-[1.1] max-w-5xl"
className="text-4xl md:text-[80px] font-medium text-[#1A1A1A] leading-[1.1] max-w-5xl w-[800px] mx-auto"
>
Luxury stays designed for ocean lovers
{dict.quote}
</motion.h2>
</section>
)
+4 -3
View File
@@ -12,12 +12,12 @@ export default function ShowcaseImage() {
})
// Slightly increased scales for a better balance
const scale = useTransform(scrollYProgress, [0, 0.4], [0.8, 1.0])
const scale = useTransform(scrollYProgress, [0, 0.4], [0.1, 1.0])
const opacity = useTransform(scrollYProgress, [0, 0.2], [0, 1])
return (
<section ref={containerRef} className="relative z-60 bg-[#FAF7F0] pb-32">
<div className="max-w-[1400px] mx-auto px-6 overflow-hidden">
<div className=" mx-auto px-6 overflow-hidden">
<motion.div
style={{
scale,
@@ -26,9 +26,10 @@ export default function ShowcaseImage() {
className="relative aspect-[16/9] w-full overflow-hidden shadow-xl rounded-sm"
>
<Image
src="https://images.unsplash.com/photo-1571896349842-33c89424de2d?q=80&w=2080&auto=format&fit=crop"
src="https://res.cloudinary.com/du7xohbct/image/upload/v1776642098/ayrisapart/hero/photo-1501696461415-6bd6660c6742_rkxjcu.avif"
alt="Luxury Cave Pool Experience"
fill
sizes="(max-width: 768px) calc(100vw - 48px), calc(100vw - 48px)"
className="object-cover"
priority
/>
+4 -3
View File
@@ -22,9 +22,9 @@ export default function SuitesHighlights({ lang, dict }: { lang: string, dict: a
{ id: 'arke', number: '03', name: dict.suites.s3.name, desc: dict.suites.s3.desc, image: 'https://res.cloudinary.com/du7xohbct/image/upload/v1776606654/ayrisapart/Daire%203/photo_1_2024-04-05_16-06-09.jpg' },
{ id: 'harpy', number: '04', name: dict.suites.s4.name, desc: dict.suites.s4.desc, image: 'https://res.cloudinary.com/du7xohbct/image/upload/v1776606661/ayrisapart/Daire%204/photo_1_2024-04-05_16-07-01.jpg' },
{ id: 'hydaspes', number: '05', name: dict.suites.s5.name, desc: dict.suites.s5.desc, image: 'https://res.cloudinary.com/du7xohbct/image/upload/v1776606671/ayrisapart/Daire%205/photo_1_2024-05-04_15-32-44.jpg' },
{ id: 'zephyrus', number: '06', name: dict.suites.s6.name, desc: dict.suites.s6.desc, image: 'https://res.cloudinary.com/du7xohbct/image/upload/v1776606681/ayrisapart/Daire%206/photo_1_2024-05-04_15-32-44.jpg' },
{ id: 'pothos', number: '07', name: dict.suites.s7.name, desc: dict.suites.s7.desc, image: 'https://res.cloudinary.com/du7xohbct/image/upload/v1776606689/ayrisapart/Daire%207/photo_1_2024-05-04_15-33-34.jpg' },
{ id: 'thaumas', number: '08', name: dict.suites.s8.name, desc: dict.suites.s8.desc, image: 'https://res.cloudinary.com/du7xohbct/image/upload/v1776606696/ayrisapart/Daire%208/photo_1_2024-05-04_15-33-34.jpg' },
{ id: 'zephyrus', number: '06', name: dict.suites.s6.name, desc: dict.suites.s6.desc, image: 'https://res.cloudinary.com/du7xohbct/image/upload/v1776606681/ayrisapart/Daire%206/photo_1_2024-05-04_15-33-08.jpg' },
{ id: 'pothos', number: '07', name: dict.suites.s7.name, desc: dict.suites.s7.desc, image: 'https://res.cloudinary.com/du7xohbct/image/upload/v1776606689/ayrisapart/Daire%207/photo_8_2024-05-04_15-33-34.jpg' },
{ id: 'thaumas', number: '08', name: dict.suites.s8.name, desc: dict.suites.s8.desc, image: 'https://res.cloudinary.com/du7xohbct/image/upload/v1776606696/ayrisapart/Daire%208/photo_9_2024-05-04_15-33-34.jpg' },
]
return (
@@ -100,6 +100,7 @@ function SuiteCard({ suite, index, lang, dict }: { suite: Suite, index: number,
src={suite.image}
alt={suite.name}
fill
sizes="(max-width: 768px) 100vw, 50vw"
className="object-cover"
/>
</motion.div>
+1 -1
View File
@@ -5,7 +5,7 @@ import Link from 'next/link'
export default function Welcome({ lang, dict }: { lang: string, dict: any }) {
return (
<section className="relative z-[70] bg-[#FAF7F0] mt-24 md:mt-32 rounded-t-[40px] md:rounded-t-[100px] py-32 md:py-48 px-6 md:px-12 flex flex-col items-center text-center shadow-[0_-40px_100px_rgba(0,0,0,0.1)] overflow-hidden">
<section className="relative z-[70] bg-[#FAF7F0] mt-24 md:mt-32 rounded-t-[40px] md:rounded-t-[100px] py-16 md:py-8 px-6 md:px-12 flex flex-col items-center text-center shadow-[0_-40px_100px_rgba(0,0,0,0.1)] overflow-hidden">
{/* Lotus/Floral Icon */}
<motion.div
initial={{ opacity: 0, y: 30 }}