18 Commits

Author SHA1 Message Date
96a05cf652 Update src/app/page.tsx 2026-03-05 00:37:13 +00:00
ad9a94e8e2 Update src/app/page.tsx 2026-03-05 00:35:12 +00:00
f6b04b9875 Update src/app/page.tsx 2026-03-05 00:33:23 +00:00
014b0799af Update src/app/page.tsx 2026-03-05 00:29:45 +00:00
60079df56f Update src/app/layout.tsx 2026-03-05 00:29:43 +00:00
6f2263b233 Update src/app/page.tsx 2026-03-05 00:17:58 +00:00
9e34b7f066 Update src/app/page.tsx 2026-03-05 00:16:03 +00:00
451f7617ae Update src/app/contact/page.tsx 2026-03-05 00:16:03 +00:00
c1db71c509 Add src/components/language/LanguageToggle.tsx 2026-03-05 00:14:07 +00:00
bc08d46941 Update src/app/page.tsx 2026-03-05 00:14:07 +00:00
8c6099e1c5 Update src/app/layout.tsx 2026-03-05 00:14:07 +00:00
320239433c Merge version_2 into main
Merge version_2 into main
2026-03-05 00:05:38 +00:00
a7773412e8 Update src/app/styles/variables.css 2026-03-05 00:05:34 +00:00
56613f5d81 Update src/app/page.tsx 2026-03-05 00:05:34 +00:00
2c807631ce Update src/app/layout.tsx 2026-03-05 00:05:34 +00:00
3d60864858 Merge version_1 into main
Merge version_1 into main
2026-03-05 00:00:36 +00:00
778cbb8ff3 Merge version_1 into main
Merge version_1 into main
2026-03-04 23:59:52 +00:00
fc8ab563fd Merge version_1 into main
Merge version_1 into main
2026-03-04 23:58:46 +00:00
5 changed files with 386 additions and 191 deletions

View File

@@ -1,92 +1,15 @@
"use client"; "use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import { Mail, Clock } from "lucide-react";
import NavbarStyleApple from "@/components/navbar/NavbarStyleApple/NavbarStyleApple";
import ContactCenter from "@/components/sections/contact/ContactCenter";
import TextSplitAbout from "@/components/sections/about/TextSplitAbout";
import FooterLogoReveal from "@/components/sections/footer/FooterLogoReveal";
import { Coffee, MapPin, Phone } from "lucide-react";
export default function ContactPage() { export default function ContactPage() {
const navItems = [
{ name: "Home", id: "/" },
{ name: "About", id: "about" },
{ name: "Services", id: "services" },
{ name: "Contact", id: "contact" },
];
return ( return (
<ThemeProvider <div className="flex flex-col items-center justify-center min-h-screen p-8">
defaultButtonVariant="hover-magnetic" <h1 className="text-4xl font-bold mb-4">Contact Page</h1>
defaultTextAnimation="background-highlight" <div className="flex gap-4">
borderRadius="rounded" <Mail className="w-6 h-6" />
contentWidth="small" <Clock className="w-6 h-6" />
sizing="large"
background="fluid"
cardStyle="gradient-radial"
primaryButtonStyle="gradient"
secondaryButtonStyle="radial-glow"
headingFontWeight="normal"
>
<div id="nav" data-section="nav">
<NavbarStyleApple
brandName="Aroma Café 100. Yıl"
navItems={navItems}
/>
</div> </div>
</div>
<div id="contact-hero" data-section="contact-hero">
<TextSplitAbout
title="Get In Touch"
description={[
"We'd love to hear from you! Whether you have questions about our menu, want to make a reservation, or are interested in hosting an event at Aroma Café 100. Yıl, we're here to help.",
"Located in the heart of İşçi Blokları, Ankara, we welcome your inquiries and look forward to welcoming you to our café.",
"Call us directly, send us an email, or fill out the form below. We typically respond to all inquiries within 2 hours during business hours.",
]}
buttons={[{ text: "View Location", href: "https://maps.app.goo.gl/kpHbpCi5318z68Fu7" }]}
showBorder={false}
useInvertedBackground={false}
/>
</div>
<div id="contact-section" data-section="contact-section">
<ContactCenter
tag="Contact Info"
title="Reach Out to Us"
description="Subscribe to our newsletter for updates, or contact us directly for reservations and special event inquiries."
tagIcon={Coffee}
background={{ variant: "rotated-rays-animated" }}
useInvertedBackground={false}
inputPlaceholder="your@email.com"
buttonText="Subscribe"
termsText="We respect your privacy. By subscribing, you agree to receive updates about our café, promotions, and special events."
/>
</div>
<div id="business-info" data-section="business-info">
<TextSplitAbout
title="Business Information"
description={[
"📍 Address: İşçi Blokları, 1524. Sk. No:3, 06530 Çankaya/Ankara, Türkiye",
"📞 Phone: +90 536 584 01 68 | WhatsApp: +90 536 584 01 68",
"⏰ Hours: Mon-Thu 08:00-22:00 | Fri 08:00-23:00 | Sat 09:00-23:00 | Sun 09:00-22:00",
]}
buttons={[
{ text: "Call Now", href: "tel:+905365840168" },
{ text: "WhatsApp", href: "https://wa.me/905365840168" },
]}
showBorder={true}
useInvertedBackground={false}
/>
</div>
<div id="footer" data-section="footer">
<FooterLogoReveal
logoText="Aroma Café 100. Yıl"
leftLink={{ text: "Privacy Policy", href: "#" }}
rightLink={{ text: "Terms of Service", href: "#" }}
/>
</div>
</ThemeProvider>
); );
} }

View File

@@ -1,66 +1,37 @@
import type { Metadata } from "next"; import type { Metadata } from "next";
import { Libre_Baskerville, Inter } from "next/font/google"; import { DM_Sans } from "next/font/google";
import "./globals.css"; import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
const libreBaskerville = Libre_Baskerville({ const dmSans = DM_Sans({
variable: "--font-libre-baskerville", variable: "--font-dm-sans", subsets: ["latin"],
subsets: ["latin"],
weight: ["400", "700"],
});
const inter = Inter({
variable: "--font-inter",
subsets: ["latin"],
}); });
export const metadata: Metadata = { export const metadata: Metadata = {
title: "Aroma Café 100. Yıl - Premium Turkish Coffee in Ankara", title: "Aroma Café 100. Yıl", description: "Experience premium Turkish coffee culture in the heart of Ankara."};
description: "Discover authentic Turkish coffee and premium pastries at Aroma Café 100. Yıl in Ankara. Located in İşçi Blokları. Reserve now or call +90 536 584 01 68.",
keywords: "Turkish coffee, café Ankara, premium coffee, Turkish pastries, coffee shop, barista, Turkish culture",
metadataBase: new URL("https://aromacafe100yil.com"),
alternates: {
canonical: "https://aromacafe100yil.com",
},
openGraph: {
title: "Aroma Café 100. Yıl - Premium Turkish Coffee House",
description: "Experience authentic Turkish coffee culture. Authentic flavors, warm hospitality, and premium pastries in the heart of Ankara.",
url: "https://aromacafe100yil.com",
siteName: "Aroma Café 100. Yıl",
type: "website",
images: [
{
url: "http://img.b2bpic.net/free-photo/side-view-iron-teapot-with-glass-tea-potted-plant-table_141793-13004.jpg",
alt: "Aroma Café 100. Yıl - Premium Turkish Coffee Experience",
},
],
},
twitter: {
card: "summary_large_image",
title: "Aroma Café 100. Yıl - Turkish Coffee in Ankara",
description: "Premium Turkish coffee and authentic pastries. Located in İşçi Blokları, Ankara. Reserve your table now.",
images: ["http://img.b2bpic.net/free-photo/side-view-iron-teapot-with-glass-tea-potted-plant-table_141793-13004.jpg"],
},
robots: {
index: true,
follow: true,
},
};
export default function RootLayout({ export default function RootLayout({
children, children,
}: Readonly<{ }: {
children: React.ReactNode; children: React.ReactNode;
}>) { }) {
return ( return (
<html lang="en" suppressHydrationWarning> <html lang="en">
<ServiceWrapper> <head>
<body <script
className={`${libreBaskerville.variable} ${inter.variable} antialiased`} type="text/javascript"
> dangerouslySetInnerHTML={{
<Tag /> __html: `
{children} (function() {
const savedLang = localStorage.getItem('siteLanguage') || 'en';
window.siteLanguage = savedLang;
document.documentElement.lang = savedLang;
})();
`,
}}
/>
</head>
<body className={dmSans.variable}>
{children}
<script <script
dangerouslySetInnerHTML={{ dangerouslySetInnerHTML={{
@@ -1429,7 +1400,6 @@ export default function RootLayout({
}} }}
/> />
</body> </body>
</ServiceWrapper>
</html> </html>
); );
} }

File diff suppressed because one or more lines are too long

View File

@@ -10,15 +10,15 @@
--accent: #ffffff; --accent: #ffffff;
--background-accent: #ffffff; */ --background-accent: #ffffff; */
--background: #ffffff; --background: #f5f4ef;
--card: #f9f9f9; --card: #efe7dd;
--foreground: #000612e6; --foreground: #2b180a;
--primary-cta: #106EFB; --primary-cta: #8b6f47;
--primary-cta-text: #ffffff; --primary-cta-text: #ffffff;
--secondary-cta: #f9f9f9; --secondary-cta: #efe7dd;
--secondary-cta-text: #000612e6; --secondary-cta-text: #000612e6;
--accent: #e2e2e2; --accent: #d4a574;
--background-accent: #106EFB; --background-accent: #c9956b;
/* text sizing - set by ThemeProvider */ /* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem); /* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);

View File

@@ -0,0 +1,93 @@
"use client";
import React from "react";
import { Globe } from "lucide-react";
interface LanguageToggleProps {
currentLanguage: 'en' | 'tr';
onLanguageChange: (lang: 'en' | 'tr') => void;
isTransitioning: boolean;
}
export default function LanguageToggle({
currentLanguage,
onLanguageChange,
isTransitioning,
}: LanguageToggleProps) {
return (
<div className="fixed top-6 right-6 z-50 md:top-8 md:right-8">
{/* Glassmorphism Background */}
<div className="absolute inset-0 bg-gradient-to-br from-[#d4af37] to-[#3e2723] opacity-70 rounded-full blur-xl"></div>
{/* Premium Glass Button Container */}
<div className="relative px-4 py-3 rounded-full backdrop-blur-2xl bg-white/10 border border-white/20 shadow-2xl hover:shadow-[0_0_40px_rgba(212,175,55,0.5)] transition-all duration-300 hover:border-[#d4af37]/50">
{/* Toggle Content */}
<div className="flex items-center gap-3">
{/* Language Icon */}
<Globe className="w-5 h-5 text-[#d4af37] animate-pulse" />
{/* Button Container with Smooth Sliding Animation */}
<div className="flex items-center gap-2 bg-white/5 rounded-full p-1 border border-white/10">
{/* TR Button */}
<button
onClick={() => onLanguageChange('tr')}
className={`px-3 py-1.5 rounded-full font-semibold text-sm transition-all duration-300 ${
currentLanguage === 'tr'
? 'bg-gradient-to-r from-[#d4af37] to-[#ffd700] text-[#3e2723] shadow-lg shadow-[#d4af37]/50 scale-105'
: 'text-white/60 hover:text-white/80 hover:bg-white/5'
}`}
disabled={isTransitioning}
aria-label="Switch to Turkish"
>
TR
</button>
{/* EN Button */}
<button
onClick={() => onLanguageChange('en')}
className={`px-3 py-1.5 rounded-full font-semibold text-sm transition-all duration-300 ${
currentLanguage === 'en'
? 'bg-gradient-to-r from-[#d4af37] to-[#ffd700] text-[#3e2723] shadow-lg shadow-[#d4af37]/50 scale-105'
: 'text-white/60 hover:text-white/80 hover:bg-white/5'
}`}
disabled={isTransitioning}
aria-label="Switch to English"
>
EN
</button>
</div>
</div>
{/* Hover Glow Effect */}
<div className="absolute inset-0 rounded-full bg-gradient-to-br from-[#d4af37]/0 via-[#d4af37]/0 to-[#ffd700]/0 opacity-0 group-hover:opacity-100 transition-opacity duration-300 blur-xl pointer-events-none"></div>
</div>
{/* Ambient Glow Background */}
<style jsx>{`
@keyframes glow-pulse {
0%, 100% {
box-shadow: 0 0 20px rgba(212, 175, 55, 0.3);
}
50% {
box-shadow: 0 0 40px rgba(212, 175, 55, 0.6);
}
}
@keyframes slide-in-button {
from {
transform: translateX(20px);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
}
}
.animate-slide-in {
animation: slide-in-button 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}
`}</style>
</div>
);
}