This commit is contained in:
2026-04-16 01:36:18 +03:00
parent ef9d6fc40a
commit bac925b5bc
67 changed files with 275 additions and 82 deletions

View File

@@ -54,7 +54,7 @@ export function CTASection() {
onClick={handleWhatsApp}
className="bg-primary text-on-primary font-headline font-black uppercase tracking-widest px-12 py-6 text-xl hover:brightness-110 active:scale-95 transition-all rounded-none shadow-[10px_10px_0px_0px_rgba(0,0,0,0.5)] active:shadow-none whitespace-nowrap flex items-center justify-center gap-4 group"
>
ŞİMDİ TEKLİF ALIN
WHATSAPP'TAN TEKLİF ALIN
<MessageCircle className="w-6 h-6 group-hover:rotate-12 transition-transform" />
</button>
<p className="text-center font-label text-[10px] uppercase tracking-widest text-on-surface-variant font-bold">

View File

@@ -1,24 +1,72 @@
"use client";
import { MessageCircle } from "lucide-react";
import { motion } from "framer-motion";
import { motion, AnimatePresence } from "framer-motion";
import { siteConfig } from "@/lib/data";
import { useState, useEffect } from "react";
export function FloatingWhatsApp() {
const [isVisible, setIsVisible] = useState(false);
useEffect(() => {
const timer = setTimeout(() => setIsVisible(true), 1000);
return () => clearTimeout(timer);
}, []);
return (
<div className="fixed bottom-6 right-6 md:bottom-10 md:right-10 z-[110]">
<motion.a
href="https://wa.me/905XXXXXXXXX"
target="_blank"
rel="noopener noreferrer"
whileHover={{ x: -4, y: -4 }}
whileTap={{ scale: 0.95 }}
className="bg-[#25D366] text-white w-14 h-14 md:w-20 md:h-20 flex items-center justify-center shadow-[10px_10px_0px_0px_rgba(0,0,0,0.5)] hover:shadow-[4px_4px_0px_0px_rgba(0,0,0,0.5)] transition-all rounded-none relative group"
>
<MessageCircle size={32} fill="currentColor" className="text-white md:scale-125" />
<span className="absolute right-full mr-4 bg-surface-container-highest text-white px-4 py-2 text-[10px] uppercase tracking-widest font-black opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap pointer-events-none">
Hemen Whatsapp'tan Yazın
</span>
</motion.a>
</div>
<AnimatePresence>
{isVisible && (
<motion.div
initial={{ opacity: 0, scale: 0.8, y: 20 }}
animate={{ opacity: 1, scale: 1, y: 0 }}
exit={{ opacity: 0, scale: 0.8, y: 20 }}
className="fixed bottom-6 right-6 md:bottom-10 md:right-10 z-[110]"
>
{/* Main Container with Glassmorphism */}
<motion.a
href={`https://wa.me/${siteConfig.contact.whatsapp}`}
target="_blank"
rel="noopener noreferrer"
className="relative flex items-center group no-underline"
whileHover="hover"
>
{/* Expanded Label on Hover */}
<motion.div
variants={{
initial: { width: 64, opacity: 0 },
hover: { width: "auto", opacity: 1 }
}}
transition={{ type: "spring", damping: 20, stiffness: 200 }}
className="absolute right-0 flex items-center bg-white/10 backdrop-blur-xl border border-white/20 rounded-full pr-20 pl-6 py-4 overflow-hidden pointer-events-none shadow-2xl"
>
<div className="flex flex-col">
<span className="text-white text-[10px] font-black uppercase tracking-widest whitespace-nowrap">Hemen Yazın</span>
<span className="text-primary text-[12px] font-bold whitespace-nowrap">+90 537 720 09 90</span>
</div>
</motion.div>
{/* Icon Button */}
<div className="relative z-10 w-16 h-16 md:w-20 md:h-20">
{/* Outer Glows */}
<div className="absolute inset-0 bg-[#25D366] rounded-full blur-xl opacity-40 group-hover:opacity-70 transition-opacity animate-pulse" />
{/* Main Button Body */}
<div className="absolute inset-0 bg-gradient-to-tr from-[#128C7E] to-[#25D366] rounded-full flex items-center justify-center border-4 border-white/20 shadow-2xl group-hover:scale-110 transition-transform duration-500 overflow-hidden">
<MessageCircle size={32} fill="white" className="text-white md:scale-125 group-hover:rotate-[360deg] transition-transform duration-700" />
{/* Internal Reflection */}
<div className="absolute top-0 left-0 w-full h-1/2 bg-white/20 rounded-t-full" />
</div>
{/* Ping Indicator */}
<div className="absolute -top-1 -right-1 flex">
<span className="animate-ping absolute inline-flex h-full w-full rounded-full bg-[#25D366] opacity-75"></span>
<span className="relative inline-flex rounded-full h-4 w-4 bg-[#25D366] border-2 border-white"></span>
</div>
</div>
</motion.a>
</motion.div>
)}
</AnimatePresence>
);
}

View File

@@ -12,10 +12,11 @@ const QUICK_LINKS = [
];
const SERVICES = [
{ name: "Mobil Vinç Kiralama", href: "/hizmetler" },
{ name: "Sandiviç Panel Kaldırma", href: "/hizmetler" },
{ name: "Konteyner Nakliyesi", href: "/hizmetler" },
{ name: "Vinç Hizmetleri", href: "/hizmetler" },
{ name: "Sepetli Platform", href: "/hizmetler" },
{ name: "ır Nakliyat", href: "/hizmetler" },
{ name: "Proje Taşımacılığı", href: "/hizmetler" },
{ name: "Tekne ve Yat Kaldırma", href: "/hizmetler" },
];
export function Footer() {
@@ -108,9 +109,16 @@ export function Footer() {
<p className="text-on-surface-variant text-[10px] uppercase tracking-widest font-bold">
© {new Date().getFullYear()} {siteConfig.name}. Tüm hakları saklıdır.
</p>
<div className="flex gap-8">
<a href="#" className="text-on-surface-variant hover:text-white text-[10px] uppercase tracking-widest font-bold transition-colors">KVKK Aydınlatma Metni</a>
<a href="#" className="text-on-surface-variant hover:text-white text-[10px] uppercase tracking-widest font-bold transition-colors">Gizlilik Politikası</a>
<div className="flex items-center gap-2">
<span className="text-on-surface-variant text-[8px] uppercase tracking-[0.3em] opacity-40">Created By</span>
<a
href="https://ayris.tech"
target="_blank"
className="text-white hover:text-primary text-[10px] font-black uppercase tracking-[0.4em] transition-all"
>
AYRISTECH
</a>
</div>
</div>
</div>

View File

@@ -18,7 +18,7 @@ export function Hero() {
<div className="absolute inset-0 z-0">
<div className="absolute inset-0 bg-background/40 backdrop-blur-sm z-10" />
<Image
src="https://images.unsplash.com/photo-1504307651254-35680f356dfd?q=80&w=2070&auto=format&fit=crop"
src="/images/Vinç hizmetleri/Ekran görüntüsü 2026-04-16 005221.png"
alt="Industrial crane"
fill
priority
@@ -45,7 +45,7 @@ export function Hero() {
<span className="text-primary">VİNÇ</span>
</h1>
<p className="font-body text-lg md:text-2xl text-on-surface-variant max-w-2xl mb-12 leading-relaxed">
Muğla Dalaman merkezli, 500 tona kadar kaldırma kapasitesi ve uzman mühendislik kadrosuyla ır nakliyat ve vinç çözümleri.
Muğla Dalaman merkezli, her tonajda kaldırma kapasitesi ve uzman mühendislik kadrosuyla ır nakliyat ve vinç çözümleri.
</p>
<div className="flex flex-col sm:flex-row gap-6">
@@ -61,7 +61,7 @@ export function Hero() {
className="bg-surface-container-high text-white px-10 py-5 font-headline font-black uppercase tracking-widest text-lg hover:bg-white hover:text-black transition-all rounded-none border-b-2 border-primary/50 flex items-center justify-center gap-3"
>
<MessageCircle className="w-6 h-6" />
Teklif Alın
WhatsApp'tan Teklif Al
</button>
</div>
</motion.div>
@@ -70,7 +70,7 @@ export function Hero() {
{/* Side Status Indicators */}
<div className="absolute right-12 bottom-12 hidden xl:flex flex-col gap-8 z-40">
<div className="flex flex-col items-end">
<span className="font-headline text-5xl font-black text-white leading-none">500T</span>
<span className="font-headline text-5xl font-black text-white leading-none">HER YÜK</span>
<span className="font-label text-[10px] uppercase tracking-widest text-primary font-bold">Max Kapasite</span>
</div>
<div className="flex flex-col items-end">

View File

@@ -5,13 +5,13 @@ export const JsonLd = () => {
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Aydoğan Nakliyat Vinç",
"image": "https://aydogannakliyatvinc.com/logo.png", // Varsa gerçek logo URL'si
"image": "https://aydogannakliyatvinc.com/hero-bg.jpg",
"@id": "https://aydogannakliyatvinc.com",
"url": "https://aydogannakliyatvinc.com",
"telephone": "+902526920000",
"telephone": "+905377200990",
"address": {
"@type": "PostalAddress",
"streetAddress": "Merkez Mah. Sanayi Sitesi No: 42",
"streetAddress": "Sanayi Cd. 97",
"addressLocality": "Dalaman",
"addressRegion": "Muğla",
"postalCode": "48770",
@@ -19,8 +19,8 @@ export const JsonLd = () => {
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 36.7644,
"longitude": 28.8028
"latitude": 36.764123, // Updated to a more likely Sanayi location in Dalaman
"longitude": 28.799876
},
"openingHoursSpecification": {
"@type": "OpeningHoursSpecification",

View File

@@ -73,7 +73,7 @@ export function Navbar() {
className="bg-primary text-on-primary px-8 py-3 font-headline font-bold uppercase tracking-widest text-xs hover:brightness-110 active:scale-95 transition-all flex items-center gap-2"
>
<MessageCircle className="w-4 h-4" />
Hızlı Teklif
WhatsApp ile Teklif
</button>
</div>
@@ -141,7 +141,7 @@ export function Navbar() {
className="w-full bg-primary text-on-primary font-headline font-black uppercase tracking-widest py-6 text-xl flex items-center justify-center gap-3 active:scale-95 transition-all shadow-[0_20px_50px_rgba(234,179,8,0.2)]"
>
<MessageCircle className="w-6 h-6" />
HIZLI TEKLİF AL
WHATSAPP İLE TEKLİF AL
</button>
<a
href={`tel:${siteConfig.contact.phone.replace(/\s+/g, '')}`}

View File

@@ -9,17 +9,17 @@ const SERVICES = [
{
title: "Ağır Nakliyat",
description: "Gabari dışı yüklerin özel low-bed araçlarla taşınması.",
image: "https://images.unsplash.com/photo-1601584115197-04ecc0da31d7?q=80&w=2070&auto=format&fit=crop"
image: "/images/Nakliyat-Taşımacılık/Ekran görüntüsü 2026-04-16 005533.png"
},
{
title: "Mobil Vinç",
description: "300-500 ton kapasiteli teleskopik vinç çözümleri.",
image: "https://images.unsplash.com/photo-1504307651254-35680f356dfd?q=80&w=2070&auto=format&fit=crop"
description: "Yüksek tonajlı her türlü yük için teleskopik vinç çözümleri.",
image: "/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: "https://images.unsplash.com/photo-1578319439584-104c94d37305?q=80&w=2070&auto=format&fit=crop"
image: "/images/Sepetli platform hizmetleri/Ekran görüntüsü 2026-04-16 005332.png"
}
];