Update components/miami-gallery.tsx

This commit is contained in:
kleap-admin 2026-01-16 16:41:48 +00:00
parent 96584bf495
commit 6db025c6c5
1 changed files with 69 additions and 0 deletions

View File

@ -0,0 +1,69 @@
import { Container } from "@/components/container";
import { Heading } from "@/components/heading";
import Image from "next/image";
const galleryImages = [
{
url: "https://images.unsplash.com/photo-1617372591452-9adad3e8070e?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wyOTY1MDl8MHwxfHNlYXJjaHwyfHxtaWFtaSUyMGJlYWNoJTIwZml0bmVzcyUyMHNwb3J0cyUyMHRyYWluaW5nJTIwb3V0ZG9vciUyMGd5bXxlbnwwfDB8fHwxNzY4MzEyMjA3fDA&ixlib=rb-4.1.0&q=80&w=1080",
alt: "Outdoor training Miami",
span: "md:col-span-2 md:row-span-2",
},
{
url: "https://images.unsplash.com/photo-1617372591456-cd79c5f0ac6e?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wyOTY1MDl8MHwxfHNlYXJjaHwzfHxtaWFtaSUyMGJlYWNoJTIwZml0bmVzcyUyMHNwb3J0cyUyMHRyYWluaW5nJTIwb3V0ZG9vciUyMGd5bXxlbnwwfDB8fHwxNzY4MzEyMjA3fDA&ixlib=rb-4.1.0&q=80&w=1080",
alt: "Yoga on the beach",
span: "md:col-span-1 md:row-span-1",
},
{
url: "https://images.unsplash.com/photo-1624480484750-648abd54aa00?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wyOTY1MDl8MHwxfHNlYXJjaHw1fHxtaWFtaSUyMGJlYWNoJTIwZml0bmVzcyUyMHNwb3J0cyUyMHRyYWluaW5nJTIwb3V0ZG9vciUyMGd5bXxlbnwwfDB8fHwxNzY4MzEyMjA3fDA&ixlib=rb-4.1.0&q=80&w=1080",
alt: "Athlete hydration",
span: "md:col-span-1 md:row-span-1",
},
];
export function MiamiGallery() {
return (
<section className="py-24 bg-white">
<Container>
<div className="flex flex-col md:flex-row justify-between items-end mb-12 gap-6">
<div className="max-w-2xl">
<Heading className="text-4xl md:text-5xl font-black mb-4">
TRAIN WHERE THE <span className="text-pink-500">VIBE</span> IS
</Heading>
<p className="text-neutral-600 text-lg">
Miami isn't just a location; it's a lifestyle. Our training sessions take place in the most iconic spots across the city.
</p>
</div>
<div className="hidden md:block">
<div className="flex -space-x-4">
{[1, 2, 3, 4].map((i) => (
<div key={i} className="w-12 h-12 rounded-full border-4 border-white bg-neutral-200 overflow-hidden">
<img src={`https://i.pravatar.cc/150?u=${i}`} alt="Client" />
</div>
))}
<div className="w-12 h-12 rounded-full border-4 border-white bg-cyan-500 flex items-center justify-center text-white text-xs font-bold">
+500
</div>
</div>
<p className="text-xs font-bold text-neutral-400 mt-2 text-right uppercase tracking-widest">Trusted by locals</p>
</div>
</div>
<div className="grid grid-cols-1 md:grid-cols-3 md:grid-rows-2 gap-4 h-[600px]">
{galleryImages.map((img, idx) => (
<div key={idx} className={`relative overflow-hidden rounded-3xl group ${img.span}`}>
<Image
src={img.url}
alt={img.alt}
fill
className="object-cover transition-transform duration-700 group-hover:scale-110"
/>
<div className="absolute inset-0 bg-gradient-to-t from-black/60 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex items-end p-8">
<p className="text-white font-bold text-xl">{img.alt}</p>
</div>
</div>
))}
</div>
</Container>
</section>
);
}