41 Commits

Author SHA1 Message Date
cc67b78475 Update src/app/reservations/page.tsx 2026-04-16 11:22:10 +00:00
6d2693909f Add src/app/reservations/page.tsx 2026-04-16 11:21:45 +00:00
223d0bdc2d Update src/app/page.tsx 2026-04-16 11:21:44 +00:00
0104f9ac89 Switch to version 3: modified src/app/page.tsx 2026-04-15 14:31:44 +00:00
1be31dd95f Switch to version 3: added src/app/our-story/page.tsx 2026-04-15 14:31:44 +00:00
3e5706a333 Switch to version 3: added src/app/contact-us/page.tsx 2026-04-15 14:31:44 +00:00
0ee95983cf Switch to version 3: added src/app/careers/page.tsx 2026-04-15 14:31:43 +00:00
70fa5a1a6b Switch to version 4: modified src/app/page.tsx 2026-04-15 14:31:26 +00:00
d524a135e5 Merge version_5 into main
Merge version_5 into main
2026-04-15 12:02:21 +00:00
e16551f014 Update src/app/page.tsx 2026-04-15 12:02:18 +00:00
8370888508 Merge version_5 into main
Merge version_5 into main
2026-04-15 12:01:57 +00:00
7d7978e1a3 Update src/app/page.tsx 2026-04-15 12:01:54 +00:00
a6a149ad65 Merge version_5 into main
Merge version_5 into main
2026-04-15 12:01:24 +00:00
3a77807667 Update src/app/page.tsx 2026-04-15 12:01:21 +00:00
dd52304e66 Merge version_5 into main
Merge version_5 into main
2026-04-15 12:00:52 +00:00
2c54a3c158 Update src/app/page.tsx 2026-04-15 12:00:49 +00:00
9209095113 Merge version_4 into main
Merge version_4 into main
2026-04-15 11:43:35 +00:00
2daa34b2f7 Update src/app/page.tsx 2026-04-15 11:43:31 +00:00
70bd366d19 Merge version_4 into main
Merge version_4 into main
2026-04-15 11:43:02 +00:00
60025afbab Update src/app/page.tsx 2026-04-15 11:42:59 +00:00
eeaad8f1c7 Merge version_4 into main
Merge version_4 into main
2026-04-15 11:42:30 +00:00
87e6d0182f Update src/app/page.tsx 2026-04-15 11:42:24 +00:00
886e912344 Switch to version 2: remove src/app/our-story/page.tsx 2026-04-15 11:36:32 +00:00
f977e55b42 Switch to version 2: remove src/app/contact-us/page.tsx 2026-04-15 11:36:32 +00:00
f09debbe24 Switch to version 2: remove src/app/careers/page.tsx 2026-04-15 11:36:31 +00:00
a3f52dbafe Switch to version 2: modified src/app/page.tsx 2026-04-15 11:36:31 +00:00
9ac389c115 Merge version_3 into main
Merge version_3 into main
2026-04-15 11:31:21 +00:00
8931ceae4f Update src/app/our-story/page.tsx 2026-04-15 11:31:18 +00:00
70c31300bc Update src/app/contact-us/page.tsx 2026-04-15 11:31:17 +00:00
012b3f10e4 Update src/app/careers/page.tsx 2026-04-15 11:31:17 +00:00
5170b267f4 Merge version_3 into main
Merge version_3 into main
2026-04-15 11:30:50 +00:00
76e15ece34 Update src/app/page.tsx 2026-04-15 11:30:47 +00:00
40a7a162d5 Add src/app/our-story/page.tsx 2026-04-15 11:30:46 +00:00
9014c7d385 Add src/app/contact-us/page.tsx 2026-04-15 11:30:46 +00:00
eb3a7ac5e9 Add src/app/careers/page.tsx 2026-04-15 11:30:45 +00:00
c4e7ace9c6 Merge version_2 into main
Merge version_2 into main
2026-04-15 11:20:18 +00:00
cbc4c15521 Update src/app/page.tsx 2026-04-15 11:20:15 +00:00
f9c26298da Merge version_2 into main
Merge version_2 into main
2026-04-15 11:19:46 +00:00
e45988f577 Update src/app/styles/variables.css 2026-04-15 11:19:43 +00:00
a70186372a Update src/app/styles/base.css 2026-04-15 11:19:42 +00:00
60aabbe6f5 Update src/app/page.tsx 2026-04-15 11:19:42 +00:00
7 changed files with 319 additions and 100 deletions

47
src/app/careers/page.tsx Normal file
View File

@@ -0,0 +1,47 @@
"use client";
import ReactLenis from "lenis/react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
import FooterBase from "@/components/sections/footer/FooterBase";
export default function CareersPage() {
return (
<ThemeProvider defaultButtonVariant="text-stagger" defaultTextAnimation="entrance-slide" borderRadius="rounded" contentWidth="medium" sizing="medium" background="circleGradient" cardStyle="glass-elevated" primaryButtonStyle="gradient" secondaryButtonStyle="glass" headingFontWeight="normal">
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
brandName="Epicure Buffet"
navItems={[
{ name: "Menu", id: "/ #menu" },
{ name: "Pricing", id: "/ #pricing" },
{ name: "Our Story", id: "/our-story" },
{ name: "Careers", id: "/careers" },
{ name: "Contact Us", id: "/contact-us" },
]}
button={{ text: "Book Now", href: "/ #contact" }}
/>
</div>
<div className="pt-32 pb-20 px-6 max-w-4xl mx-auto min-h-screen">
<h1 className="text-5xl font-bold mb-8">Careers</h1>
<p className="text-lg mb-6">Join our team of passionate culinary enthusiasts. We're always looking for talented individuals who value fresh, quality ingredients and exceptional customer service.</p>
<h2 className="text-2xl font-semibold mt-10 mb-4">Open Positions</h2>
<ul className="list-disc pl-6 space-y-2">
<li>Line Cook</li>
<li>Front of House Manager</li>
<li>Server Assistant</li>
</ul>
</div>
<FooterBase
logoText="Epicure Buffet"
copyrightText="© 2026 | Epicure Buffet"
columns={[
{ title: "Dining", items: [{ label: "Lunch Menu", href: "/ #menu" }, { label: "Dinner Menu", href: "/ #menu" }] },
{ title: "Company", items: [{ label: "Our Story", href: "/our-story" }, { label: "Careers", href: "/careers" }] },
{ title: "Support", items: [{ label: "Reservations", href: "/ #contact" }, { label: "Contact Us", href: "/contact-us" }] },
]}
/>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -0,0 +1,47 @@
"use client";
import ReactLenis from "lenis/react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
import ContactSplitForm from "@/components/sections/contact/ContactSplitForm";
import FooterBase from "@/components/sections/footer/FooterBase";
export default function ContactUsPage() {
return (
<ThemeProvider defaultButtonVariant="text-stagger" defaultTextAnimation="entrance-slide" borderRadius="rounded" contentWidth="medium" sizing="medium" background="circleGradient" cardStyle="glass-elevated" primaryButtonStyle="gradient" secondaryButtonStyle="glass" headingFontWeight="normal">
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
brandName="Epicure Buffet"
navItems={[
{ name: "Menu", id: "/ #menu" },
{ name: "Pricing", id: "/ #pricing" },
{ name: "Our Story", id: "/our-story" },
{ name: "Careers", id: "/careers" },
{ name: "Contact Us", id: "/contact-us" },
]}
button={{ text: "Book Now", href: "/ #contact" }}
/>
</div>
<div className="pt-32 pb-20" id="contact" data-section="contact">
<ContactSplitForm
title="Get in Touch"
description="Have a special request or a question about your upcoming reservation? Let us know."
inputs={[{ name: "name", type: "text", placeholder: "Your Name", required: true }, { name: "email", type: "email", placeholder: "Your Email", required: true }]}
textarea={{ name: "message", placeholder: "How can we help?", rows: 4 }}
useInvertedBackground={false}
/>
</div>
<FooterBase
logoText="Epicure Buffet"
copyrightText="© 2026 | Epicure Buffet"
columns={[
{ title: "Dining", items: [{ label: "Lunch Menu", href: "/ #menu" }, { label: "Dinner Menu", href: "/ #menu" }] },
{ title: "Company", items: [{ label: "Our Story", href: "/our-story" }, { label: "Careers", href: "/careers" }] },
{ title: "Support", items: [{ label: "Reservations", href: "/ #contact" }, { label: "Contact Us", href: "/contact-us" }] },
]}
/>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -0,0 +1,42 @@
"use client";
import ReactLenis from "lenis/react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
import FooterBase from "@/components/sections/footer/FooterBase";
export default function OurStoryPage() {
return (
<ThemeProvider defaultButtonVariant="text-stagger" defaultTextAnimation="entrance-slide" borderRadius="rounded" contentWidth="medium" sizing="medium" background="circleGradient" cardStyle="glass-elevated" primaryButtonStyle="gradient" secondaryButtonStyle="glass" headingFontWeight="normal">
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
brandName="Epicure Buffet"
navItems={[
{ name: "Menu", id: "/ #menu" },
{ name: "Pricing", id: "/ #pricing" },
{ name: "Our Story", id: "/our-story" },
{ name: "Careers", id: "/careers" },
{ name: "Contact Us", id: "/contact-us" },
]}
button={{ text: "Book Now", href: "/ #contact" }}
/>
</div>
<div className="pt-32 pb-20 px-6 max-w-4xl mx-auto min-h-screen">
<h1 className="text-5xl font-bold mb-8">Our Story</h1>
<p className="text-lg mb-6 leading-relaxed">Founded in 2015, Epicure Buffet began with a single vision: to transform the way people experience all-you-can-eat dining. We believed that quality shouldn't be sacrificed for variety.</p>
<p className="text-lg leading-relaxed">Today, we source our ingredients from local farmers and premium global suppliers to bring you a dining experience that feels both indulgent and fresh.</p>
</div>
<FooterBase
logoText="Epicure Buffet"
copyrightText="© 2026 | Epicure Buffet"
columns={[
{ title: "Dining", items: [{ label: "Lunch Menu", href: "/ #menu" }, { label: "Dinner Menu", href: "/ #menu" }] },
{ title: "Company", items: [{ label: "Our Story", href: "/our-story" }, { label: "Careers", href: "/careers" }] },
{ title: "Support", items: [{ label: "Reservations", href: "/ #contact" }, { label: "Contact Us", href: "/contact-us" }] },
]}
/>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -7,13 +7,12 @@ import HeroSplitDoubleCarousel from "@/components/sections/hero/HeroSplitDoubleC
import FeatureBento from "@/components/sections/feature/FeatureBento";
import FeatureCardTwentySix from "@/components/sections/feature/FeatureCardTwentySix";
import FeatureCardSixteen from "@/components/sections/feature/FeatureCardSixteen";
import MetricCardOne from "@/components/sections/metrics/MetricCardOne";
import TeamCardFive from "@/components/sections/team/TeamCardFive";
import PricingCardFive from "@/components/sections/pricing/PricingCardFive";
import TestimonialCardTwelve from "@/components/sections/testimonial/TestimonialCardTwelve";
import FaqBase from "@/components/sections/faq/FaqBase";
import ContactCTA from "@/components/sections/contact/ContactCTA";
import FooterBase from "@/components/sections/footer/FooterBase";
import TestimonialCardFifteen from "@/components/sections/testimonial/TestimonialCardFifteen";
import { Sparkles, Utensils, Award, Users, TrendingUp, Shield, Clock, Smile, CheckCircle, XCircle } from "lucide-react";
import { Sparkles, Utensils, Award, Star, Smile } from "lucide-react";
export default function BuffetPage() {
return (
@@ -33,86 +32,100 @@ export default function BuffetPage() {
<NavbarLayoutFloatingOverlay
brandName="Epicure Buffet"
navItems={[
{ name: "Menu", id: "menu" },
{ name: "Pricing", id: "pricing" },
{ name: "Experience", id: "about" },
{ name: "Reserve", id: "contact" },
{ name: "Menu", id: "#menu" },
{ name: "Pricing", id: "#pricing" },
{ name: "Our Story", id: "/our-story" },
{ name: "Careers", id: "/careers" },
{ name: "Contact Us", id: "/contact-us" },
]}
button={{ text: "Book Now", href: "#contact" }}
/>
<HeroSplitDoubleCarousel
title="A Global Feast, Fresh Daily"
description="Indulge in an endless variety of premium sushi, fresh-caught seafood, and chef-curated international cuisines. Always freshly refilled for your perfect dining experience."
tag="🔥 87 people dining right now"
tagIcon={Sparkles}
tagAnimation="slide-up"
background={{ variant: "canvas-reveal" }}
buttons={[
{ text: "Reserve Your Table", href: "#contact" },
{ text: "View Menu", href: "#menu" },
<div id="hero">
<HeroSplitDoubleCarousel
title="A Global Feast, Fresh Daily"
description="Indulge in an endless variety of premium sushi, fresh-caught seafood, and chef-curated international cuisines. Always freshly refilled for your perfect dining experience."
tag="🔥 87 people dining right now"
tagIcon={Sparkles}
tagAnimation="slide-up"
background={{ variant: "canvas-reveal" }}
buttons={[
{ text: "Reserve Your Table", href: "#contact" },
{ text: "View Menu", href: "#menu" },
]}
buttonAnimation="slide-up"
carouselPosition="right"
leftCarouselItems={[
{ imageSrc: "http://img.b2bpic.net/free-photo/sushi-with-variety-fish-delivery-sushi-package-different-types-rolls_132075-14235.jpg", imageAlt: "Freshly prepared sushi rolls" },
{ imageSrc: "http://img.b2bpic.net/free-photo/crawfish-plate_23-2150346588.jpg", imageAlt: "Premium crab and shrimp" },
{ imageSrc: "http://img.b2bpic.net/free-photo/square-slice-chocolate-cheesecake_114579-16589.jpg", imageAlt: "Decadent dessert selection" },
]}
rightCarouselItems={[
{ imageSrc: "http://img.b2bpic.net/free-photo/life-style_1122-1851.jpg", imageAlt: "Family dining atmosphere" },
{ imageSrc: "http://img.b2bpic.net/free-photo/waiter-carries-dish-with-snacks-walking-backyard_8353-9017.jpg", imageAlt: "Live refill stations" },
{ imageSrc: "http://img.b2bpic.net/free-photo/male-chef-kitchen-cooking_23-2148934672.jpg", imageAlt: "Chef at work" },
]}
carouselItemClassName="!aspect-[4/5]"
/>
</div>
<div id="menu">
<FeatureBento
title="The Epicure Experience"
description="We combine culinary variety with premium service to redefine the buffet concept."
textboxLayout="default"
useInvertedBackground={false}
animationType="slide-up"
features={[
{
title: "Live Refill Stations",
description: "Our chefs monitor every tray, ensuring hot food is served at the perfect temperature.", bentoComponent: "reveal-icon", icon: Utensils
},
{
title: "Always Fresh",
description: "Sourcing premium seafood and seasonal produce daily for quality you can taste.", bentoComponent: "media-stack", items: [
{ imageSrc: "http://img.b2bpic.net/free-photo/vegetables-stall-market-sanarysurmer_268835-3890.jpg", imageAlt: "Fresh ingredients" },
{ imageSrc: "http://img.b2bpic.net/free-photo/beef-with-pistachio-topping-served-with-fruits-berries_7502-7390.jpg", imageAlt: "Plated dishes" },
{ imageSrc: "http://img.b2bpic.net/free-photo/culinary-expert-commercial-kitchen-prepares-dish-with-fresh-basil-parsley_482257-124314.jpg", imageAlt: "Chef station" }
]
},
{
title: "Improved Desserts",
description: "Discover our expanded dessert bar with artisan pastries and seasonal fruits.", bentoComponent: "reveal-icon", icon: Smile
}
]}
/>
</div>
<div id="pricing">
<PricingCardFive
title="Transparent Value"
description="Choose the perfect dining time for you and your family."
textboxLayout="split-actions"
animationType="slide-up"
useInvertedBackground={false}
plans={[
{
id: "lunch", tag: "Most Popular", tagIcon: Star,
price: "$15.99", period: "per person", description: "Full access to our lunch selection until 4:00 PM.", button: { text: "Reserve Lunch", href: "#contact" },
featuresTitle: "Includes:", features: ["All Lunch Stations", "Soft Drinks", "Fresh Sushi Bar"]
},
{
id: "dinner", tag: "Premium Choice", tagIcon: Award,
price: "$29.99", period: "per person", description: "Complete dinner experience with full seafood bar.", button: { text: "Reserve Dinner", href: "#contact" },
featuresTitle: "Includes:", features: ["All Lunch Features", "Premium Crab Legs", "Chef Specials"]
}
]}
/>
</div>
<TestimonialCardTwelve
cardTitle="Join 10,000+ Happy Guests"
cardTag="Testimonials"
cardTagIcon={Star}
cardAnimation="slide-up"
useInvertedBackground={true}
testimonials={[
{ id: "1", name: "Sarah Jenkins", imageSrc: "http://img.b2bpic.net/free-photo/happy-woman-enjoying-dining-table-while-communicating-with-her-husband_637285-3516.jpg" },
{ id: "2", name: "Mark Thompson", imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-young-man_23-2148213458.jpg" },
{ id: "3", name: "Elena Rodriguez", imageSrc: "http://img.b2bpic.net/free-photo/smiling-woman-looking-away_23-2148213451.jpg" }
]}
buttonAnimation="slide-up"
carouselPosition="right"
leftCarouselItems={[
{ imageSrc: "http://img.b2bpic.net/free-photo/sushi-with-variety-fish-delivery-sushi-package-different-types-rolls_132075-14235.jpg", imageAlt: "Freshly prepared sushi rolls" },
{ imageSrc: "http://img.b2bpic.net/free-photo/crawfish-plate_23-2150346588.jpg", imageAlt: "Premium crab and shrimp" },
{ imageSrc: "http://img.b2bpic.net/free-photo/square-slice-chocolate-cheesecake_114579-16589.jpg", imageAlt: "Decadent dessert selection" },
]}
rightCarouselItems={[
{ imageSrc: "http://img.b2bpic.net/free-photo/life-style_1122-1851.jpg", imageAlt: "Family dining atmosphere" },
{ imageSrc: "http://img.b2bpic.net/free-photo/waiter-carries-dish-with-snacks-walking-backyard_8353-9017.jpg", imageAlt: "Live refill stations" },
{ imageSrc: "http://img.b2bpic.net/free-photo/male-chef-kitchen-cooking_23-2148934672.jpg", imageAlt: "Chef at work" },
]}
carouselItemClassName="!aspect-[4/5]"
/>
<FeatureBento
title="The Epicure Experience"
description="We combine culinary variety with premium service to redefine the buffet concept."
textboxLayout="default"
useInvertedBackground={false}
animationType="slide-up"
features={[
{
title: "Live Refill Stations",
description: "Our chefs monitor every tray, ensuring hot food is served at the perfect temperature.", bentoComponent: "reveal-icon", icon: Utensils
},
{
title: "Always Fresh",
description: "Sourcing premium seafood and seasonal produce daily for quality you can taste.", bentoComponent: "media-stack", items: [
{ imageSrc: "http://img.b2bpic.net/free-photo/vegetables-stall-market-sanarysurmer_268835-3890.jpg", imageAlt: "Fresh ingredients" },
{ imageSrc: "http://img.b2bpic.net/free-photo/beef-with-pistachio-topping-served-with-fruits-berries_7502-7390.jpg", imageAlt: "Plated dishes" },
{ imageSrc: "http://img.b2bpic.net/free-photo/culinary-expert-commercial-kitchen-prepares-dish-with-fresh-basil-parsley_482257-124314.jpg", imageAlt: "Chef station" }
]
},
{
title: "Improved Desserts",
description: "Discover our expanded dessert bar with artisan pastries and seasonal fruits.", bentoComponent: "reveal-icon", icon: Smile
}
]}
/>
<MetricCardOne
title="Transparent Value"
description="Simple, family-friendly pricing with something for everyone."
textboxLayout="default"
useInvertedBackground={false}
gridVariant="uniform-all-items-equal"
animationType="slide-up"
metrics={[
{ id: "lunch", value: "$15.99", title: "Lunch", description: "Available daily until 4:00 PM", icon: Clock },
{ id: "dinner", value: "$19.99", title: "Dinner", description: "Full evening buffet experience", icon: Utensils },
{ id: "kids", value: "Age-Based", title: "Kids Pricing", description: "Special rates for younger guests", icon: Users },
]}
/>
<TestimonialCardFifteen
testimonial="The variety here is unmatched! From the fresh sashimi to the hot crab legs, everything was constantly replenished and tasted incredible. Truly the best value in the city."
rating={5}
author="— Sarah Jenkins, Local Foodie"
avatars={[
{ src: "http://img.b2bpic.net/free-photo/happy-woman-enjoying-dining-table-while-communicating-with-her-husband_637285-3516.jpg", alt: "Guest" },
]}
ratingAnimation="slide-up"
avatarsAnimation="slide-up"
useInvertedBackground={false}
/>
<FeatureCardSixteen
title="Our Commitment to Excellence"
@@ -136,24 +149,26 @@ export default function BuffetPage() {
{ id: "4", title: "Do I need to reserve?", content: "While walk-ins are welcome, weekend dining fills up fast. We recommend booking in advance to ensure your table is waiting." }
]}
/>
<ContactCTA
tag="Book Your Table"
title="Join Us Tonight"
description="Weekend dining fills fast — reserve now to guarantee your spot for an exceptional evening."
background={{ variant: "rotated-rays-animated" }}
buttons={[
{ text: "Book Now", href: "#contact" }
]}
buttonAnimation="slide-up"
useInvertedBackground={false}
/>
<div id="contact">
<ContactCTA
tag="Hurry, Seats Filling Fast"
title="Join Us Tonight"
description="Urgency Alert: Peak hours filling up. Book now to guarantee your spot for an exceptional evening."
background={{ variant: "rotated-rays-animated" }}
buttons={[
{ text: "Reserve Now", href: "/contact-us" }
]}
buttonAnimation="slide-up"
useInvertedBackground={false}
/>
</div>
<FooterBase
logoText="Epicure Buffet"
copyrightText="© 2026 | Epicure Buffet"
columns={[
{ title: "Dining", items: [{ label: "Lunch Menu", href: "#" }, { label: "Dinner Menu", href: "#" }] },
{ title: "Company", items: [{ label: "Our Story", href: "#" }, { label: "Careers", href: "#" }] },
{ title: "Support", items: [{ label: "Reservations", href: "#" }, { label: "Contact Us", href: "#" }] },
{ title: "Dining", items: [{ label: "Lunch Menu", href: "#menu" }, { label: "Dinner Menu", href: "#menu" }] },
{ title: "Company", items: [{ label: "Our Story", href: "/our-story" }, { label: "Careers", href: "/careers" }] },
{ title: "Support", items: [{ label: "Reservations", href: "#contact" }, { label: "Contact Us", href: "/contact-us" }] },
]}
/>
</ReactLenis>

View File

@@ -0,0 +1,68 @@
"use client";
import { useState } from "react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
import ReactLenis from "lenis/react";
export default function ReservationsPage() {
const [formData, setFormData] = useState({ name: "", date: "", guests: "" });
const [status, setStatus] = useState<"idle" | "success" | "error">("idle");
const handleSubmit = (e: React.FormEvent) => {
e.preventDefault();
if (!formData.name || !formData.date || !formData.guests) {
setStatus("error");
return;
}
localStorage.setItem("booking", JSON.stringify(formData));
setStatus("success");
};
return (
<ThemeProvider
defaultButtonVariant="text-stagger"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="medium"
sizing="medium"
background="circleGradient"
cardStyle="glass-elevated"
primaryButtonStyle="gradient"
secondaryButtonStyle="glass"
headingFontWeight="normal"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
brandName="Epicure Buffet"
navItems={[{ name: "Home", id: "/" }, { name: "Reservations", id: "/reservations" }]}
/>
</div>
<main className="min-h-screen pt-32 flex flex-col items-center justify-center p-6">
<h1 className="text-4xl font-bold mb-8">Book Your Table</h1>
<form onSubmit={handleSubmit} className="bg-card p-8 rounded-xl shadow-lg w-full max-w-md space-y-4">
<input
type="text" placeholder="Name"
className="w-full p-2 border rounded"
onChange={(e) => setFormData({...formData, name: e.target.value})}
/>
<input
type="date"
className="w-full p-2 border rounded"
onChange={(e) => setFormData({...formData, date: e.target.value})}
/>
<input
type="number" placeholder="Guests"
className="w-full p-2 border rounded"
onChange={(e) => setFormData({...formData, guests: e.target.value})}
/>
<button type="submit" className="w-full bg-primary-cta text-white py-2 rounded">Confirm Booking</button>
</form>
{status === "success" && <p className="mt-4 text-green-600">Booking successful!</p>}
{status === "error" && <p className="mt-4 text-red-600">Please fill in all fields.</p>}
</main>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -11,7 +11,7 @@ html {
body {
background-color: var(--background);
color: var(--foreground);
font-family: var(--font-inter-tight), sans-serif;
font-family: undefined;
position: relative;
min-height: 100vh;
overscroll-behavior: none;
@@ -24,5 +24,5 @@ h3,
h4,
h5,
h6 {
font-family: var(--font-inter-tight), sans-serif;
font-family: undefined;
}

View File

@@ -13,12 +13,12 @@
--background: #0a0a0a;
--card: #161616;
--foreground: #f0f0f0;
--primary-cta: #ffffff;
--primary-cta: #d4af37;
--primary-cta-text: #0a0a0a;
--secondary-cta: #1e1e1e;
--secondary-cta: #8b0000;
--secondary-cta-text: #e0e0e0;
--accent: #d0d0d0;
--background-accent: #9a9a9a;
--accent: #d4af37;
--background-accent: #2e0000;
/* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);