16 Commits

Author SHA1 Message Date
1ab0039445 Update src/app/menu/page.tsx 2026-04-20 03:51:58 +00:00
b316b8a3df Update src/app/gallery/page.tsx 2026-04-20 03:51:58 +00:00
e521ebae9a Update src/app/order/page.tsx 2026-04-20 03:51:34 +00:00
d4d640b0f0 Update src/app/menu/page.tsx 2026-04-20 03:51:34 +00:00
c1e15afde0 Update src/app/gallery/page.tsx 2026-04-20 03:51:33 +00:00
af970e6085 Update src/app/about/page.tsx 2026-04-20 03:51:33 +00:00
179050d070 Update src/app/styles/variables.css 2026-04-20 03:51:00 +00:00
3a56d5fb1c Update src/app/page.tsx 2026-04-20 03:51:00 +00:00
4b0351f4f6 Add src/app/order/page.tsx 2026-04-20 03:50:59 +00:00
aaca50b3b0 Add src/app/menu/page.tsx 2026-04-20 03:50:59 +00:00
fb04c1e967 Add src/app/gallery/page.tsx 2026-04-20 03:50:58 +00:00
1269d28c72 Add src/app/contact/page.tsx 2026-04-20 03:50:58 +00:00
bf78189f11 Add src/app/about/page.tsx 2026-04-20 03:50:58 +00:00
f378442163 Merge version_1 into main
Merge version_1 into main
2026-04-20 03:44:06 +00:00
122c55e5eb Merge version_1 into main
Merge version_1 into main
2026-04-20 03:43:42 +00:00
62316a0686 Merge version_1 into main
Merge version_1 into main
2026-04-20 03:43:13 +00:00
7 changed files with 294 additions and 17 deletions

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

@@ -0,0 +1,50 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
import TestimonialAboutCard from '@/components/sections/about/TestimonialAboutCard';
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
import { Award } from "lucide-react";
export default function AboutPage() {
return (
<ThemeProvider defaultButtonVariant="hover-magnetic" 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
navItems={[
{ name: "Home", id: "/" },
{ name: "About", id: "/about" },
{ name: "Menu", id: "/menu" },
{ name: "Gallery", id: "/gallery" },
{ name: "Order", id: "/order" },
{ name: "Contact", id: "/contact" },
]}
brandName="LMB"
/>
</div>
<div id="about" data-section="about">
<TestimonialAboutCard
tag="Our Story"
title="Our History"
description="Founded in 1950, LMB started with a small dream of bringing authentic flavors to everyone. Over the decades, we've stayed true to our roots."
subdescription="From our family to yours, we believe that tradition is the best ingredient."
icon={Award}
imageSrc="http://img.b2bpic.net/free-photo/male-cook-cuts-orange-into-pieces-marble-table_2831-7988.jpg?_wi=1"
useInvertedBackground={false}
/>
</div>
<div id="footer" data-section="footer">
<FooterBaseCard
logoText="LMB"
columns={[
{ title: "Shop", items: [{ label: "Menu", href: "/menu" }, { label: "About", href: "/about" }] },
{ title: "Legal", items: [{ label: "Privacy Policy", href: "#" }, { label: "Terms of Service", href: "#" }] },
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

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

@@ -0,0 +1,76 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
export default function ContactPage() {
return (
<ThemeProvider
defaultButtonVariant="bounce-effect"
defaultTextAnimation="entrance-slide"
borderRadius="pill"
contentWidth="medium"
sizing="medium"
background="circleGradient"
cardStyle="glass-elevated"
primaryButtonStyle="gradient"
secondaryButtonStyle="glass"
headingFontWeight="normal"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
navItems={[
{ name: "Home", id: "/" },
{ name: "About", id: "/#about" },
{ name: "Menu", id: "/#products" },
{ name: "Contact", id: "/contact" },
]}
brandName="LMB"
/>
</div>
<div id="contact" data-section="contact">
<ContactSplitForm
useInvertedBackground={false}
title="Contact Us"
description="We would love to hear from you. Reach out for bulk orders, inquiries, or just to say hello!"
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 you?", rows: 4, required: true }}
buttonText="Submit Message"
imageSrc="http://img.b2bpic.net/free-photo/front-view-vintage-shop-window_141667-3.jpg"
/>
</div>
<div className="flex justify-center p-10">
<a
href="https://wa.me/1234567890"
target="_blank"
rel="noopener noreferrer"
className="bg-green-500 text-white px-8 py-4 rounded-full font-bold shadow-lg hover:bg-green-600 transition-all"
>
Chat on WhatsApp
</a>
</div>
<div id="footer" data-section="footer">
<FooterBaseCard
logoText="LMB"
columns={[
{ title: "Shop", items: [{ label: "Menu", href: "/#products" }, { label: "About", href: "/#about" }] },
{ title: "Contact", items: [{ label: "Get in Touch", href: "/contact" }] },
{ title: "Legal", items: [{ label: "Privacy Policy", href: "#" }, { label: "Terms of Service", href: "#" }] },
]}
copyrightText="© 2025 | LMB Sweets"
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

54
src/app/gallery/page.tsx Normal file
View File

@@ -0,0 +1,54 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
import ProductCardThree from '@/components/sections/product/ProductCardThree';
export default function GalleryPage() {
return (
<ThemeProvider defaultButtonVariant="hover-magnetic" 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
navItems={[
{ name: "Home", id: "/" },
{ name: "About", id: "/about" },
{ name: "Menu", id: "/menu" },
{ name: "Gallery", id: "/gallery" },
{ name: "Order", id: "/order" },
{ name: "Contact", id: "/contact" },
]}
brandName="LMB"
/>
</div>
<div id="products" data-section="products">
<ProductCardThree
title="Our Sweet Shop Gallery"
description="A visual tour of our finest creations and store highlights."
gridVariant="four-items-2x2-equal-grid"
animationType="slide-up"
products={[
{ id: "g1", name: "Artisan Sweets", price: "", imageSrc: "http://img.b2bpic.net/free-photo/indian-dessert-presentation-wedding_23-2151994688.jpg" },
{ id: "g2", name: "Festive Collection", price: "", imageSrc: "http://img.b2bpic.net/free-photo/colorful-baskets-fresh-spices-sale-generated-by-ai_188544-9016.jpg?_wi=1" },
{ id: "g3", name: "Traditional Savories", price: "", imageSrc: "http://img.b2bpic.net/free-photo/variety-salted-crackers-orange-bowl_114579-54041.jpg?_wi=1" },
{ id: "g4", name: "Handcrafted Treats", price: "", imageSrc: "http://img.b2bpic.net/free-photo/orange-roll-barfee-barfi-sweet-mitlai_466689-71823.jpg?_wi=1" },
]}
textboxLayout="default"
useInvertedBackground={false}
/>
</div>
<div id="footer" data-section="footer">
<FooterBaseCard
logoText="LMB"
columns={[
{ title: "Shop", items: [{ label: "Menu", href: "/menu" }, { label: "Gallery", href: "/gallery" }, { label: "Order", href: "/order" }] },
{ title: "Legal", items: [{ label: "Privacy Policy", href: "#" }, { label: "Terms of Service", href: "#" }] },
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

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

@@ -0,0 +1,55 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
import ProductCardThree from '@/components/sections/product/ProductCardThree';
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
export default function MenuPage() {
return (
<ThemeProvider defaultButtonVariant="hover-magnetic" 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
navItems={[
{ name: "Home", id: "/" },
{ name: "About", id: "/about" },
{ name: "Menu", id: "/menu" },
{ name: "Gallery", id: "/gallery" },
{ name: "Order", id: "/order" },
{ name: "Contact", id: "/contact" },
]}
brandName="LMB"
/>
</div>
<div id="products" data-section="products">
<ProductCardThree
animationType="slide-up"
textboxLayout="default"
gridVariant="three-columns-all-equal-width"
products={[
{ id: "1", name: "Classic Laddu", price: "$12.00", imageSrc: "http://img.b2bpic.net/free-photo/top-view-pepernoten-dessert-still-life_23-2149766704.jpg" },
{ id: "2", name: "Gulab Jamun", price: "$15.00", imageSrc: "http://img.b2bpic.net/free-photo/baked-red-bean-paste-buns-place-brown-fabric-served-with-coffee_1150-35411.jpg" },
{ id: "3", name: "Royal Barfi", price: "$18.00", imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-pink-cakes-with-candies-cookies-white-desk-sweet-cake-biscuit-tea-pie-cookies_140725-64520.jpg" },
{ id: "4", name: "Crispy Samosa", price: "$8.00", imageSrc: "http://img.b2bpic.net/free-photo/variety-salted-crackers-orange-bowl_114579-54041.jpg?_wi=2" },
{ id: "5", name: "Fresh Jalebi", price: "$10.00", imageSrc: "http://img.b2bpic.net/free-photo/orange-roll-barfee-barfi-sweet-mitlai_466689-71823.jpg?_wi=2" },
]}
title="Our Menu"
description="Discover our wide selection of sweets and savory treats."
useInvertedBackground={false}
/>
</div>
<div id="footer" data-section="footer">
<FooterBaseCard
logoText="LMB"
columns={[
{ title: "Shop", items: [{ label: "Menu", href: "/menu" }, { label: "About", href: "/about" }] },
{ title: "Legal", items: [{ label: "Privacy Policy", href: "#" }, { label: "Terms of Service", href: "#" }] },
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

53
src/app/order/page.tsx Normal file
View File

@@ -0,0 +1,53 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
export default function OrderPage() {
return (
<ThemeProvider defaultButtonVariant="hover-magnetic" 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
navItems={[
{ name: "Home", id: "/" },
{ name: "About", id: "/about" },
{ name: "Menu", id: "/menu" },
{ name: "Gallery", id: "/gallery" },
{ name: "Order", id: "/order" },
{ name: "Contact", id: "/contact" },
]}
brandName="LMB"
/>
</div>
<div id="order" data-section="order">
<ContactSplitForm
title="Place Your Order"
description="Order your favorite sweets in bulk or individual portions using the form below."
inputs={[
{ name: "name", type: "text", placeholder: "Full Name" },
{ name: "phone", type: "tel", placeholder: "Phone Number" },
{ name: "email", type: "email", placeholder: "Email Address" },
{ name: "quantity", type: "number", placeholder: "Quantity (in kgs for bulk)" },
]}
textarea={{ name: "details", placeholder: "Special instructions or bulk order details", rows: 4 }}
buttonText="Send Order Request"
useInvertedBackground={false}
/>
</div>
<div id="footer" data-section="footer">
<FooterBaseCard
logoText="LMB"
columns={[
{ title: "Shop", items: [{ label: "Menu", href: "/#products" }, { label: "Gallery", href: "/gallery" }, { label: "Order", href: "/order" }] },
{ title: "Legal", items: [{ label: "Privacy Policy", href: "#" }, { label: "Terms of Service", href: "#" }] },
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -35,7 +35,7 @@ export default function LandingPage() {
{ name: "Home", id: "hero" },
{ name: "About", id: "about" },
{ name: "Menu", id: "products" },
{ name: "Contact", id: "contact" },
{ name: "Contact", id: "/contact" },
]}
brandName="LMB"
/>
@@ -146,26 +146,15 @@ export default function LandingPage() {
/>
</div>
<div id="contact" data-section="contact">
<ContactSplitForm
useInvertedBackground={false}
title="Visit or Reach Out"
description="Get in touch for orders or inquiries."
inputs={[
{ name: "name", type: "text", placeholder: "Your Name" },
{ name: "email", type: "email", placeholder: "Your Email" },
]}
imageSrc="http://img.b2bpic.net/free-photo/front-view-vintage-shop-window_141667-3.jpg"
/>
</div>
<div id="footer" data-section="footer">
<FooterBaseCard
logoText="LMB"
columns={[
{ title: "Shop", items: [{ label: "Menu", href: "#products" }, { label: "About", href: "#about" }] },
{ title: "Contact", items: [{ label: "Get in Touch", href: "/contact" }] },
{ title: "Legal", items: [{ label: "Privacy Policy", href: "#" }, { label: "Terms of Service", href: "#" }] },
]}
copyrightText="© 2025 | LMB Sweets"
/>
</div>
</ReactLenis>

View File

@@ -13,12 +13,12 @@
--background: #f6f0e9;
--card: #efe7dd;
--foreground: #2b180a;
--primary-cta: #2b180a;
--primary-cta: #991b1b;
--primary-cta-text: #f6f0e9;
--secondary-cta: #efe7dd;
--secondary-cta-text: #2b180a;
--accent: #94877c;
--background-accent: #afa094;
--accent: #b8860b;
--background-accent: #efe7dd;
/* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);