Files
aydogannakliyat/components/ServicesPreview.tsx

87 lines
3.7 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
'use client';
import { motion } from "framer-motion";
import Image from "next/image";
import Link from "next/link";
import { ArrowRight } from "lucide-react";
import { cloudinaryUrl } from "@/lib/cloudinary";
const SERVICES = [
{
title: "Ağır Nakliyat",
description: "Gabari dışı yüklerin özel low-bed araçlarla taşınması.",
image: cloudinaryUrl("/images/Nakliyat-Taşımacılık/Ekran görüntüsü 2026-04-16 005533.png")
},
{
title: "Mobil Vinç",
description: "Yüksek tonajlı her türlü yük için teleskopik vinç çözümleri.",
image: cloudinaryUrl("/images/Vinç hizmetleri/Ekran görüntüsü 2026-04-16 005221.png")
},
{
title: "Sepetli Platform",
description: "75 metreye kadar yüksek irtifa çalışma alanları.",
image: cloudinaryUrl("/images/Sepetli platform hizmetleri/Ekran görüntüsü 2026-04-16 005332.png")
}
];
export function ServicesPreview() {
return (
<section className="py-24 bg-surface text-on-surface">
<div className="max-w-7xl mx-auto px-6 md:px-12">
<div className="flex flex-col md:flex-row justify-between items-start md:items-end gap-8 mb-16">
<div className="max-w-2xl">
<span className="font-label text-xs uppercase tracking-[0.4em] text-primary font-bold mb-4 block">Uzmanlık Alanlarımız</span>
<h2 className="font-headline text-5xl md:text-8xl font-black uppercase leading-none tracking-tighter">
Büyük Yüklerin <br/> <span className="text-primary">Kusursuz</span> Taşıyıcısı
</h2>
</div>
<Link
href="/hizmetler"
className="group flex items-center gap-4 text-on-surface font-headline font-bold uppercase tracking-widest text-sm"
>
Tüm Hizmetler
<div className="bg-primary p-4 text-on-primary group-hover:translate-x-4 transition-transform">
<ArrowRight size={20} />
</div>
</Link>
</div>
<div className="grid grid-cols-1 lg:grid-cols-3 gap-px bg-outline-variant/20">
{SERVICES.map((service, idx) => (
<motion.div
key={service.title}
initial={{ opacity: 0, y: 30 }}
whileInView={{ opacity: 1, y: 0 }}
transition={{ delay: idx * 0.1 }}
viewport={{ once: true }}
className="group relative h-[600px] overflow-hidden flex flex-col justify-end p-12"
>
<Image
src={service.image}
alt={service.title}
fill
sizes="(max-width: 768px) 100vw, 33vw"
className="object-cover grayscale group-hover:grayscale-0 group-hover:scale-110 transition-all duration-1000 z-0"
/>
<div className="absolute inset-0 bg-gradient-to-t from-background via-background/20 to-transparent z-10" />
<div className="relative z-20">
<h3 className="font-headline text-4xl font-black text-white uppercase mb-4 tracking-tighter">{service.title}</h3>
<p className="font-body text-on-surface-variant mb-8 opacity-0 group-hover:opacity-100 translate-y-4 group-hover:translate-y-0 transition-all duration-500">
{service.description}
</p>
<Link
href="/hizmetler"
className="bg-primary text-on-primary font-headline font-black text-2xl uppercase underline underline-offset-8 hover:tracking-widest transition-all"
>
Detaylar
</Link>
</div>
</motion.div>
))}
</div>
</div>
</section>
);
}