11 Commits

Author SHA1 Message Date
461c06cc89 Update src/app/menu/page.tsx 2026-04-22 13:10:19 +00:00
1a57652e2f Update src/app/events/page.tsx 2026-04-22 13:10:18 +00:00
8763be04b3 Update src/app/contact/page.tsx 2026-04-22 13:10:17 +00:00
3e4ab4068b Update src/app/about/page.tsx 2026-04-22 13:10:16 +00:00
29eb0ca9e4 Update src/app/styles/variables.css 2026-04-22 13:08:07 +00:00
f537a2e2a5 Update src/app/page.tsx 2026-04-22 13:08:07 +00:00
22fe86e426 Add src/app/menu/page.tsx 2026-04-22 13:08:06 +00:00
f7ed0a8caa Add src/app/events/page.tsx 2026-04-22 13:08:06 +00:00
6c3954ef28 Add src/app/contact/page.tsx 2026-04-22 13:08:05 +00:00
4fefb25286 Add src/app/about/page.tsx 2026-04-22 13:08:05 +00:00
6cc52194a9 Merge version_1 into main
Merge version_1 into main
2026-04-22 13:07:08 +00:00
6 changed files with 288 additions and 73 deletions

40
src/app/about/page.tsx Normal file
View File

@@ -0,0 +1,40 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
import TextSplitAbout from '@/components/sections/about/TextSplitAbout';
import FooterCard from '@/components/sections/footer/FooterCard';
export default function AboutPage() {
return (
<ThemeProvider defaultButtonVariant="text-stagger" defaultTextAnimation="reveal-blur" 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">
<NavbarLayoutFloatingInline
navItems={[
{ name: "Home", id: "/" },
{ name: "About", id: "/about" },
{ name: "Events", id: "/events" },
{ name: "Contact", id: "/contact" },
]}
brandName="The Table"
button={{ text: "Book Now", href: "/contact" }}
/>
</div>
<div id="about" data-section="about">
<TextSplitAbout
title="Our Story: Community & Roots"
description={[
"At The Table, we believe in the power of shared experiences. Founded by local culinary enthusiasts, our cafe serves as a hub for the community to gather over thoughtfully sourced, farm-to-table meals.", "We are proudly women-owned and dedicated to supporting small, local producers. Every partnership we build ensures that we not only provide fresh, sustainable ingredients but also empower local entrepreneurs who share our vision for quality and integrity.", "Join us in celebrating the local spirit, one plate at a time."
]}
useInvertedBackground={false}
/>
</div>
<div id="footer" data-section="footer">
<FooterCard logoText="The Table" copyrightText="© 2025 The Table Restaurant" />
</div>
</ReactLenis>
</ThemeProvider>
);
}

89
src/app/contact/page.tsx Normal file
View File

@@ -0,0 +1,89 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
import ContactSplit from '@/components/sections/contact/ContactSplit';
import FooterCard from '@/components/sections/footer/FooterCard';
import { Instagram, MapPin, Clock, Phone, Mail } from "lucide-react";
export default function ContactPage() {
return (
<ThemeProvider
defaultButtonVariant="text-stagger"
defaultTextAnimation="reveal-blur"
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">
<NavbarLayoutFloatingInline
navItems={[
{ name: "Home", id: "/" },
{ name: "About", id: "/about" },
{ name: "Events", id: "/events" },
{ name: "Contact", id: "/contact" },
]}
brandName="The Table"
button={{ text: "Contact", href: "#contact" }}
/>
</div>
<div id="contact" data-section="contact">
<ContactSplit
tag="Reach Out"
title="Visit or Contact Us"
description="We're located in the heart of the city and open for your enjoyment. Have a question or want to host an event? Use the form below."
background={{ variant: "sparkles-gradient" }}
useInvertedBackground={false}
imageSrc="http://img.b2bpic.net/free-photo/restaurant-hall-with-round-square-tables-some-chairs-plants_140725-8031.jpg"
inputPlaceholder="Enter your email"
buttonText="Join Newsletter"
/>
</div>
<div className="py-20 px-[5vw] grid grid-cols-1 md:grid-cols-2 gap-12">
<div className="space-y-8">
<h2 className="text-3xl font-bold">Location & Hours</h2>
<div className="flex items-center gap-4">
<MapPin className="text-accent" />
<p>123 Culinary Lane, Food City, FC 90210</p>
</div>
<div className="flex items-center gap-4">
<Clock className="text-accent" />
<p>Mon-Sun: 11:00 AM - 10:00 PM</p>
</div>
<div className="flex items-center gap-4">
<Phone className="text-accent" />
<p>(555) 123-4567</p>
</div>
<div className="flex items-center gap-4">
<Mail className="text-accent" />
<p>hello@thetable.com</p>
</div>
</div>
<div className="bg-card p-8 rounded-lg">
<h3 className="text-2xl font-semibold mb-4">Social Feed</h3>
<p className="mb-6">Follow our journey on Instagram for daily specials and updates.</p>
<a href="#" className="flex items-center gap-2 text-primary-cta font-bold hover:underline">
<Instagram /> @TheTableRestaurant
</a>
</div>
</div>
<div id="footer" data-section="footer">
<FooterCard
logoText="The Table"
copyrightText="© 2025 The Table Restaurant"
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

52
src/app/events/page.tsx Normal file
View File

@@ -0,0 +1,52 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
import MetricCardEleven from '@/components/sections/metrics/MetricCardEleven';
import FooterCard from '@/components/sections/footer/FooterCard';
export default function EventsPage() {
return (
<ThemeProvider defaultButtonVariant="text-stagger" defaultTextAnimation="reveal-blur" 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">
<NavbarLayoutFloatingInline
navItems={[
{ name: "Home", id: "/" },
{ name: "About", id: "/about" },
{ name: "Events", id: "/events" },
{ name: "Contact", id: "/contact" },
]}
brandName="The Table"
button={{ text: "View Full Calendar", href: "#contact" }}
/>
</div>
<div id="events" data-section="events">
<MetricCardEleven
animationType="slide-up"
title="Join Our Recurring Events"
description="Discover our weekly culinary traditions and special community gatherings. Book your spot today!"
textboxLayout="default"
useInvertedBackground={false}
metrics={[
{
id: "e1", value: "Weekly", title: "Sunday Brunch Club", description: "Farm-fresh seasonal brunch menu every Sunday. RSVP required to secure your favorite corner table.", imageSrc: "http://img.b2bpic.net/free-photo/group-young-friends-having-dinner-together_23-2148454081.jpg"
},
{
id: "e2", value: "Monthly", title: "Farmer Partner Dinners", description: "Exclusive seasonal tasting menus curated with our local farm partners. Join our mailing list for invites.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-black-plates-with-golden-spoons-dark-background-color-food-cutlery-restaurant-dinner-cafe_179666-19702.jpg"
},
{
id: "e3", value: "Seasonal", title: "Workshops & Tastings", description: "Learn from local experts in our monthly cooking and wine-tasting masterclasses.", imageSrc: "http://img.b2bpic.net/free-photo/girl-slices-vegetables-board-prepares-salad-nature-sunny-day-cooking-close-up-view_78826-3100.jpg"
},
]}
buttons={[{ text: "View Full Calendar", href: "#contact" }]}
/>
</div>
<div id="footer" data-section="footer">
<FooterCard logoText="The Table" copyrightText="© 2025 The Table Restaurant" />
</div>
</ReactLenis>
</ThemeProvider>
);
}

64
src/app/menu/page.tsx Normal file
View File

@@ -0,0 +1,64 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
import ProductCardOne from '@/components/sections/product/ProductCardOne';
import FooterCard from '@/components/sections/footer/FooterCard';
export default function MenuPage() {
return (
<ThemeProvider
defaultButtonVariant="text-stagger"
defaultTextAnimation="reveal-blur"
borderRadius="soft"
contentWidth="compact"
sizing="largeSmall"
background="blurBottom"
cardStyle="glass-depth"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="solid"
headingFontWeight="normal"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingInline
navItems={[
{ name: "Home", id: "/" },
{ name: "Menu", id: "/menu" },
{ name: "Events", id: "/events" },
{ name: "Contact", id: "/contact" }
]}
brandName="The Table"
button={{ text: "Order Now", href: "#menu" }}
/>
</div>
<div id="menu" data-section="menu">
<ProductCardOne
title="Our Menu"
description="Discover our curated selections of fine coffee, tea, pastries, wine, and small plates."
gridVariant="three-columns-all-equal-width"
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
products={[
{ id: "coffee", name: "Signature Roast Coffee", price: "$6", imageSrc: "http://img.b2bpic.net/free-photo/coffee-cup-with-latte-art-coffee-beans-dark-background_140725-6677.jpg", imageAlt: "Coffee" },
{ id: "tea", name: "Organic Jasmine Tea", price: "$7", imageSrc: "http://img.b2bpic.net/free-photo/tea-set-with-cups-tea-leaves-tea-pot-wooden-table_23-2148767931.jpg", imageAlt: "Tea" },
{ id: "pastry", name: "Butter Croissant", price: "$5", imageSrc: "http://img.b2bpic.net/free-photo/croissants-wooden-surface_1150-13654.jpg", imageAlt: "Pastry" },
{ id: "wine", name: "House Red Wine", price: "$12", imageSrc: "http://img.b2bpic.net/free-photo/wine-glass-with-red-wine-wooden-table_23-2148419688.jpg", imageAlt: "Wine" },
{ id: "plates", name: "Assorted Small Plates", price: "$15", imageSrc: "http://img.b2bpic.net/free-photo/tapas-platter-selection_114579-2462.jpg", imageAlt: "Small Plates" }
]}
/>
</div>
<div id="footer" data-section="footer">
<FooterCard
logoText="The Table"
copyrightText="© 2025 The Table Restaurant"
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -32,18 +32,15 @@ export default function LandingPage() {
<div id="nav" data-section="nav">
<NavbarLayoutFloatingInline
navItems={[
{
name: "Our Story", id: "about"},
{
name: "Menu", id: "menu"},
{
name: "Events", id: "events"},
{
name: "Contact", id: "contact"},
{ name: "Our Story", id: "about" },
{ name: "Menu", id: "menu" },
{ name: "Events", id: "events" },
{ name: "Contact", id: "/contact" },
]}
brandName="The Table"
button={{
text: "Order Now", href: "#menu"}}
text: "Order Now", href: "#menu"
}}
/>
</div>
@@ -55,16 +52,12 @@ export default function LandingPage() {
description="Experience fine dining reimagined with fresh local ingredients and a warm, welcoming atmosphere in the heart of the city."
tag="Voted Best in Town"
buttons={[
{
text: "Book Table", href: "#contact"},
{
text: "View Menu", href: "#menu"},
{ text: "Book Table", href: "/contact" },
{ text: "View Menu", href: "#menu" },
]}
mediaItems={[
{
imageSrc: "http://img.b2bpic.net/free-photo/restaurant-hall-with-round-square-tables-some-chairs-plants_140725-8031.jpg", imageAlt: "Restaurant Interior"},
{
imageSrc: "http://img.b2bpic.net/free-photo/steamed-bao-bun-with-braised-pork-belly-fresh-asian-slaw_84443-85877.jpg", imageAlt: "Chef Plating Dish"}
{ imageSrc: "http://img.b2bpic.net/free-photo/restaurant-hall-with-round-square-tables-some-chairs-plants_140725-8031.jpg", imageAlt: "Restaurant Interior" },
{ imageSrc: "http://img.b2bpic.net/free-photo/steamed-bao-bun-with-braised-pork-belly-fresh-asian-slaw_84443-85877.jpg", imageAlt: "Chef Plating Dish" }
]}
mediaAnimation="slide-up"
rating={5}
@@ -78,7 +71,8 @@ export default function LandingPage() {
useInvertedBackground={true}
title="Our Philosophy"
description={[
"Founded on a love for community, our kitchen celebrates the journey of fresh, seasonal ingredients from local farms directly to your table.", "Every dish is crafted with purpose, passion, and a touch of modern culinary magic."]}
"Founded on a love for community, our kitchen celebrates the journey of fresh, seasonal ingredients from local farms directly to your table.", "Every dish is crafted with purpose, passion, and a touch of modern culinary magic."
]}
/>
</div>
@@ -88,16 +82,11 @@ export default function LandingPage() {
textboxLayout="split"
useInvertedBackground={false}
features={[
{
id: "f1", title: "Mobile Responsive", subtitle: "View our menu effortlessly on any device.", category: "Service", value: "100%"},
{
id: "f2", title: "Online Ordering", subtitle: "Order your favorite meals ahead with one click.", category: "Convenience", value: "Fast"},
{
id: "f3", title: "Event RSVP", subtitle: "Manage your event attendance with ease.", category: "Booking", value: "Easy"},
{
id: "f4", title: "Newsletter Signup", subtitle: "Join our community for updates and perks.", category: "Community", value: "Join"},
{
id: "f5", title: "Social Feed", subtitle: "Follow our culinary journey on Instagram.", category: "Social", value: "Live"},
{ id: "f1", title: "Mobile Responsive", subtitle: "View our menu effortlessly on any device.", category: "Service", value: "100%" },
{ id: "f2", title: "Online Ordering", subtitle: "Order your favorite meals ahead with one click.", category: "Convenience", value: "Fast" },
{ id: "f3", title: "Event RSVP", subtitle: "Manage your event attendance with ease.", category: "Booking", value: "Easy" },
{ id: "f4", title: "Newsletter Signup", subtitle: "Join our community for updates and perks.", category: "Community", value: "Join" },
{ id: "f5", title: "Social Feed", subtitle: "Follow our culinary journey on Instagram.", category: "Social", value: "Live" },
]}
title="Modern Restaurant Amenities"
description="Designed for your comfort and connection, our digital-first approach ensures a seamless experience from booking to dining."
@@ -111,18 +100,12 @@ export default function LandingPage() {
gridVariant="three-columns-all-equal-width"
useInvertedBackground={true}
products={[
{
id: "p1", name: "Artisan Bread Basket", price: "$12", imageSrc: "http://img.b2bpic.net/free-photo/sliced-greenery-vegetables-pomegranate-arils-plate_114579-86474.jpg"},
{
id: "p2", name: "Seared Prime Steak", price: "$48", imageSrc: "http://img.b2bpic.net/free-photo/fried-eggplant-with-tomatoes-sesame-seeds-plate_140725-9191.jpg"},
{
id: "p3", name: "Homemade Basil Pasta", price: "$28", imageSrc: "http://img.b2bpic.net/free-photo/vegan-pasta-white-plate_23-2148305758.jpg"},
{
id: "p4", name: "Pan-Seared Sea Bass", price: "$36", imageSrc: "http://img.b2bpic.net/free-photo/delicious-dish-with-quinoa-meat_181624-28743.jpg"},
{
id: "p5", name: "Dark Chocolate Mousse", price: "$14", imageSrc: "http://img.b2bpic.net/free-photo/front-view-little-delicious-cake-with-chocolate-raisins-light-dark-background_140725-132620.jpg"},
{
id: "p6", name: "Fresh Harvest Salad", price: "$18", imageSrc: "http://img.b2bpic.net/free-photo/bowl-salad-with-fried-potatoes-arugula-cucumber-lettuce-yoghurt_140725-1500.jpg"},
{ id: "p1", name: "Artisan Bread Basket", price: "$12", imageSrc: "http://img.b2bpic.net/free-photo/sliced-greenery-vegetables-pomegranate-arils-plate_114579-86474.jpg" },
{ id: "p2", name: "Seared Prime Steak", price: "$48", imageSrc: "http://img.b2bpic.net/free-photo/fried-eggplant-with-tomatoes-sesame-seeds-plate_140725-9191.jpg" },
{ id: "p3", name: "Homemade Basil Pasta", price: "$28", imageSrc: "http://img.b2bpic.net/free-photo/vegan-pasta-white-plate_23-2148305758.jpg" },
{ id: "p4", name: "Pan-Seared Sea Bass", price: "$36", imageSrc: "http://img.b2bpic.net/free-photo/delicious-dish-with-quinoa-meat_181624-28743.jpg" },
{ id: "p5", name: "Dark Chocolate Mousse", price: "$14", imageSrc: "http://img.b2bpic.net/free-photo/front-view-little-delicious-cake-with-chocolate-raisins-light-dark-background_140725-132620.jpg" },
{ id: "p6", name: "Fresh Harvest Salad", price: "$18", imageSrc: "http://img.b2bpic.net/free-photo/bowl-salad-with-fried-potatoes-arugula-cucumber-lettuce-yoghurt_140725-1500.jpg" },
]}
title="Seasonal Menu Highlights"
description="Artisanal ingredients meet culinary expertise in every curated plate we serve."
@@ -135,12 +118,9 @@ export default function LandingPage() {
textboxLayout="split"
useInvertedBackground={false}
metrics={[
{
id: "m1", value: "15K+", title: "Happy Guests Served", description: "Delivering excellence at every seat.", imageSrc: "http://img.b2bpic.net/free-photo/group-young-friends-having-dinner-together_23-2148454081.jpg"},
{
id: "m2", value: "24", title: "Industry Awards", description: "Celebrating culinary excellence and innovation.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-black-plates-with-golden-spoons-dark-background-color-food-cutlery-restaurant-dinner-cafe_179666-19702.jpg"},
{
id: "m3", value: "12", title: "Local Farms Partners", description: "Directly sourcing sustainable ingredients.", imageSrc: "http://img.b2bpic.net/free-photo/girl-slices-vegetables-board-prepares-salad-nature-sunny-day-cooking-close-up-view_78826-3100.jpg"},
{ id: "m1", value: "15K+", title: "Happy Guests Served", description: "Delivering excellence at every seat.", imageSrc: "http://img.b2bpic.net/free-photo/group-young-friends-having-dinner-together_23-2148454081.jpg" },
{ id: "m2", value: "24", title: "Industry Awards", description: "Celebrating culinary excellence and innovation.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-black-plates-with-golden-spoons-dark-background-color-food-cutlery-restaurant-dinner-cafe_179666-19702.jpg" },
{ id: "m3", value: "12", title: "Local Farms Partners", description: "Directly sourcing sustainable ingredients.", imageSrc: "http://img.b2bpic.net/free-photo/girl-slices-vegetables-board-prepares-salad-nature-sunny-day-cooking-close-up-view_78826-3100.jpg" },
]}
title="Community Milestones"
description="Our passion drives impact in our local community through shared dining and meaningful gathering."
@@ -154,16 +134,11 @@ export default function LandingPage() {
rating={5}
author="Samantha W."
avatars={[
{
src: "http://img.b2bpic.net/free-photo/women-eating-traditional-italian-pizza-together_52683-110888.jpg", alt: "Customer"},
{
src: "http://img.b2bpic.net/free-photo/low-angle-friends-shaking-hands_23-2148395404.jpg", alt: "Customer"},
{
src: "http://img.b2bpic.net/free-photo/high-angle-friends-restaurant_23-2148395392.jpg", alt: "Customer"},
{
src: "http://img.b2bpic.net/free-photo/salad-with-oil-fresh-tomatoes-colourful-bell-peppers-red-beans_140725-10631.jpg", alt: "Customer"},
{
src: "http://img.b2bpic.net/free-photo/good-humoured-caucasian-woman-enjoying-healthy-food-indoor-shot-smiling-girl-eating-salad_197531-17196.jpg", alt: "Customer"},
{ src: "http://img.b2bpic.net/free-photo/women-eating-traditional-italian-pizza-together_52683-110888.jpg", alt: "Customer" },
{ src: "http://img.b2bpic.net/free-photo/low-angle-friends-shaking-hands_23-2148395404.jpg", alt: "Customer" },
{ src: "http://img.b2bpic.net/free-photo/high-angle-friends-restaurant_23-2148395392.jpg", alt: "Customer" },
{ src: "http://img.b2bpic.net/free-photo/salad-with-oil-fresh-tomatoes-colourful-bell-peppers-red-beans_140725-10631.jpg", alt: "Customer" },
{ src: "http://img.b2bpic.net/free-photo/good-humoured-caucasian-woman-enjoying-healthy-food-indoor-shot-smiling-girl-eating-salad_197531-17196.jpg", alt: "Customer" },
]}
ratingAnimation="slide-up"
avatarsAnimation="slide-up"
@@ -175,12 +150,9 @@ export default function LandingPage() {
textboxLayout="split"
useInvertedBackground={false}
faqs={[
{
id: "q1", title: "Do you take reservations?", content: "Yes, we highly recommend booking in advance through our website."},
{
id: "q2", title: "Are you pet friendly?", content: "Our patio area is pet friendly, though indoors is reserved for human diners."},
{
id: "q3", title: "Do you offer private dining?", content: "Absolutely! Contact us for private event packages and availability."},
{ id: "q1", title: "Do you take reservations?", content: "Yes, we highly recommend booking in advance through our website." },
{ id: "q2", title: "Are you pet friendly?", content: "Our patio area is pet friendly, though indoors is reserved for human diners." },
{ id: "q3", title: "Do you offer private dining?", content: "Absolutely! Contact us for private event packages and availability." },
]}
imageSrc="http://img.b2bpic.net/free-photo/side-view-woman-working-service-industry_23-2150722790.jpg"
mediaAnimation="slide-up"
@@ -193,12 +165,10 @@ export default function LandingPage() {
<div id="contact" data-section="contact">
<ContactText
useInvertedBackground={true}
background={{
variant: "sparkles-gradient"}}
background={{ variant: "sparkles-gradient" }}
text="Ready for your next favorite meal? Let us save you a seat."
buttons={[
{
text: "Contact Us", href: "mailto:hello@thetable.com"},
{ text: "Contact Us", href: "/contact" },
]}
/>
</div>
@@ -212,4 +182,4 @@ export default function LandingPage() {
</ReactLenis>
</ThemeProvider>
);
}
}

View File

@@ -10,14 +10,14 @@
--accent: #ffffff;
--background-accent: #ffffff; */
--background: #f5f4ef;
--card: #dad6cd;
--foreground: #2a2928;
--primary-cta: #2a2928;
--background: #fdfaf6;
--card: #f3eee7;
--foreground: #4a3b32;
--primary-cta: #7a5c48;
--primary-cta-text: #f5f4ef;
--secondary-cta: #ecebea;
--secondary-cta: #e8e0d5;
--secondary-cta-text: #2a2928;
--accent: #ffffff;
--accent: #b8a89c;
--background-accent: #c6b180;
/* text sizing - set by ThemeProvider */