Merge version_3 into main #5

Merged
bender merged 4 commits from version_3 into main 2026-04-26 02:40:18 +00:00
4 changed files with 146 additions and 65 deletions

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

@@ -0,0 +1,41 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
import TextSplitAbout from '@/components/sections/about/TextSplitAbout';
import FooterCard from '@/components/sections/footer/FooterCard';
import { Instagram, Facebook } from "lucide-react";
export default function AboutPage() {
return (
<ThemeProvider>
<ReactLenis root>
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "/" },
{ name: "Shop", id: "/shop" },
{ name: "About", id: "/about" },
{ name: "Contact", id: "/contact" },
]}
brandName="The Boutique"
/>
<TextSplitAbout
useInvertedBackground={false}
title="About The Boutique"
description={[
"We believe in the beauty of local commerce. Every product in our shop is sourced with care, ensuring that our community has access to the very best essentials.", "Our mission is simple: to provide a space where hospitality, convenience, and quality meet. Ahmad started this shop to be a neighborhood staple, a place where everyone is treated like family."
]}
/>
<FooterCard
logoText="The Boutique"
copyrightText="© 2025 The Boutique. All rights reserved."
socialLinks={[
{ icon: Instagram, href: "#", ariaLabel: "Instagram" },
{ icon: Facebook, href: "#", ariaLabel: "Facebook" }
]}
/>
</ReactLenis>
</ThemeProvider>
);
}

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

@@ -0,0 +1,40 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
import ContactCenter from '@/components/sections/contact/ContactCenter';
import FooterCard from '@/components/sections/footer/FooterCard';
import { Instagram, Facebook } from "lucide-react";
export default function ContactPage() {
return (
<ThemeProvider>
<ReactLenis root>
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "/" },
{ name: "Shop", id: "/shop" },
{ name: "About", id: "/about" },
{ name: "Contact", id: "/contact" },
]}
brandName="The Boutique"
/>
<ContactCenter
tag="Reach Out"
title="Get in Touch"
description="Have questions or want to say hello? We'd love to hear from you!"
background={{ variant: "plain" }}
/>
<FooterCard
logoText="The Boutique"
copyrightText="© 2025 The Boutique. All rights reserved."
socialLinks={[
{ icon: Instagram, href: "#", ariaLabel: "Instagram" },
{ icon: Facebook, href: "#", ariaLabel: "Facebook" }
]}
/>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -2,15 +2,15 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import FeatureCardTwentySix from '@/components/sections/feature/FeatureCardTwentySix';
import FooterCard from '@/components/sections/footer/FooterCard';
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
import MetricCardThree from '@/components/sections/metrics/MetricCardThree';
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
import FeatureCardTwentySix from '@/components/sections/feature/FeatureCardTwentySix';
import TextSplitAbout from '@/components/sections/about/TextSplitAbout';
import ProductCardOne from '@/components/sections/product/ProductCardOne';
import MetricCardThree from '@/components/sections/metrics/MetricCardThree';
import TeamCardTwo from '@/components/sections/team/TeamCardTwo';
import TestimonialCardFifteen from '@/components/sections/testimonial/TestimonialCardFifteen';
import TextSplitAbout from '@/components/sections/about/TextSplitAbout';
import FooterCard from '@/components/sections/footer/FooterCard';
import { Calendar, Package, Users, Star, Award, Shield, Zap, Instagram, Facebook } from "lucide-react";
export default function LandingPage() {
@@ -31,10 +31,10 @@ export default function LandingPage() {
<div id="nav" data-section="nav">
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "#hero" },
{ name: "Shop", id: "#products" },
{ name: "About", id: "#about" },
{ name: "Reviews", id: "#testimonials" },
{ name: "Home", id: "/" },
{ name: "Shop", id: "/shop" },
{ name: "About", id: "/about" },
{ name: "Contact", id: "/contact" },
]}
brandName="The Boutique"
/>
@@ -45,24 +45,10 @@ export default function LandingPage() {
background={{ variant: "plain" }}
title="Local Goods, Boutique Refinement."
description="Discover a carefully curated selection of essentials where corner-store convenience meets five-star hospitality. Ahmad welcomes you home."
buttons={[{ text: "Visit Us", href: "#contact" }]}
buttons={[{ text: "Visit Us", href: "/contact" }]}
imageSrc="http://img.b2bpic.net/free-photo/stylish-young-woman-enjoying-coffee_23-2148756287.jpg?_wi=1"
imageAlt="luxury store interior dark"
mediaAnimation="blur-reveal"
avatars={[
{ src: "http://img.b2bpic.net/free-photo/hallway-building_23-2149397564.jpg", alt: "Hallway of a building" },
{ src: "http://img.b2bpic.net/free-photo/city-background-panoramic-view_23-2148892970.jpg", alt: "City background panoramic view" },
{ src: "http://img.b2bpic.net/free-photo/abstract-store-with-futuristic-concept-architecture_23-2150862168.jpg", alt: "Abstract store with futuristic concept and architecture" },
{ src: "http://img.b2bpic.net/free-photo/table-full-tailoring-instruments_482257-96375.jpg", alt: "Table full of tailoring instruments" },
{ src: "http://img.b2bpic.net/free-photo/stylish-young-woman-enjoying-coffee_23-2148756287.jpg", alt: "luxury store interior dark" }
]}
marqueeItems={[
{ type: "text", text: "Artisan Goods" },
{ type: "text", text: "Daily Luxury" },
{ type: "text", text: "Premium Curation" },
{ type: "text", text: "Five-Star Service" },
{ type: "text", text: "Neighborhood Gem" }
]}
/>
</div>
@@ -74,8 +60,7 @@ export default function LandingPage() {
{ title: "4.7 Star Rating", description: "Consistently rated by our community.", buttonIcon: Star, imageSrc: "http://img.b2bpic.net/free-photo/golden-star-icon-symbol-ranking-rating-review-sign-illustration-3d-rendering_56104-1227.jpg", imageAlt: "gold star rating badge" },
{ title: "Artisan Curation", description: "Hand-picked local goods.", buttonIcon: Award, imageSrc: "http://img.b2bpic.net/free-photo/stylish-young-woman-enjoying-coffee_23-2148756287.jpg?_wi=2", imageAlt: "gold star rating badge" },
{ title: "Boutique Service", description: "Personalized attention.", buttonIcon: Shield, imageSrc: "http://img.b2bpic.net/free-photo/abstract-scene-background-luxury-podium-background-gold-product-presentation-mock-up_272375-4865.jpg", imageAlt: "gold star rating badge" },
{ title: "Everyday Luxury", description: "Elevated daily essentials.", buttonIcon: Zap, imageSrc: "http://img.b2bpic.net/free-photo/preserved-food-concept-with-jars_23-2148626064.jpg?_wi=1", imageAlt: "gold star rating badge" },
{ title: "Community Focus", description: "Built for the neighborhood.", buttonIcon: Users, imageSrc: "http://img.b2bpic.net/free-photo/woman-standing-bread-counter_107420-63655.jpg?_wi=1", imageAlt: "gold star rating badge" }
{ title: "Everyday Luxury", description: "Elevated daily essentials.", buttonIcon: Zap, imageSrc: "http://img.b2bpic.net/free-photo/preserved-food-concept-with-jars_23-2148626064.jpg?_wi=1", imageAlt: "gold star rating badge" }
]}
title="Why Neighbors Choose Us"
description="Experience a standard of service built on genuine care and premium quality."
@@ -88,7 +73,7 @@ export default function LandingPage() {
title="Welcome to the Neighborhood"
description={[
"Founded on the principle that convenience doesn't have to sacrifice class. We treat every visitor like a guest in a boutique hotel.", "Mention this site during your first visit to receive 10% off your purchase. We can't wait to serve you."]}
buttons={[{ text: "Join Our List", href: "#contact" }]}
buttons={[{ text: "Contact Us", href: "/contact" }]}
/>
</div>
@@ -101,14 +86,11 @@ export default function LandingPage() {
products={[
{ id: "p1", name: "Small Batch Coffee", price: "$18", imageSrc: "http://img.b2bpic.net/free-photo/preserved-food-concept-with-jars_23-2148626064.jpg?_wi=2" },
{ id: "p2", name: "Artisan Olive Oil", price: "$24", imageSrc: "http://img.b2bpic.net/free-photo/woman-standing-bread-counter_107420-63655.jpg?_wi=2" },
{ id: "p3", name: "Handmade Soaps", price: "$12", imageSrc: "http://img.b2bpic.net/free-photo/top-view-jars-with-pickled-vegetables_23-2148606777.jpg" },
{ id: "p4", name: "Local Honey", price: "$15", imageSrc: "http://img.b2bpic.net/free-photo/overhead-view-quartz-prism-with-dark-shadow-white-background_23-2147949079.jpg" },
{ id: "p5", name: "Boutique Teas", price: "$14", imageSrc: "http://img.b2bpic.net/free-photo/black-coffee-bag-mockup_187299-47334.jpg" },
{ id: "p6", name: "Gourmet Chocolates", price: "$20", imageSrc: "http://img.b2bpic.net/free-photo/front-view-bottle-natural-olive-oil_23-2148364476.jpg" }
{ id: "p3", name: "Handmade Soaps", price: "$12", imageSrc: "http://img.b2bpic.net/free-photo/top-view-jars-with-pickled-vegetables_23-2148606777.jpg" }
]}
title="Curated Collections"
description="Refined essentials for the modern home."
buttons={[{ text: "View Full Collection", href: "#shop" }]}
buttons={[{ text: "View Full Shop", href: "/shop" }]}
/>
</div>
@@ -127,42 +109,10 @@ export default function LandingPage() {
/>
</div>
<div id="meet-ahmad" data-section="meet-ahmad">
<TeamCardTwo
animationType="slide-up"
textboxLayout="default"
gridVariant="uniform-all-items-equal"
useInvertedBackground={false}
members={[
{ id: "ahmad", name: "Ahmad", role: "Owner & Curator", description: "Ahmad believes that the corner shop is the heart of the community. With over a decade of hospitality experience, he brings boutique standards to your daily routine.", imageSrc: "http://img.b2bpic.net/free-photo/chef-cooking-kitchen-while-wearing-professional-attire_23-2151208273.jpg" }
]}
title="Meet Ahmad"
description="The face behind the counter, dedicated to your daily experience."
/>
</div>
<div id="testimonials" data-section="testimonials">
<TestimonialCardFifteen
useInvertedBackground={false}
testimonial="The best selection in the area, and Ahmad is always so welcoming. It feels like walking into a luxury boutique every time I need milk."
rating={5}
author="Sarah M."
avatars={[
{ src: "http://img.b2bpic.net/free-vector/golden-notification-message-icon-symbol-social-media-communication-vector-design-style-3d-rendering_40876-3542.jpg", alt: "minimalist abstract profile portrait" },
{ src: "http://img.b2bpic.net/free-photo/top-view-shape-star-table_23-2148330475.jpg", alt: "Top view shape of star on a table" },
{ src: "http://img.b2bpic.net/free-vector/book-review-icon_632498-3978.jpg", alt: "Book review icon" },
{ src: "http://img.b2bpic.net/free-vector/golden-notification-message-icon-symbol-social-media-communication-vector-design-style-3d-rendering_40876-3527.jpg", alt: "Golden notification message icon" },
{ src: "http://img.b2bpic.net/free-photo/portrait-young-woman-smiling-holding-her-chin_23-2149374984.jpg", alt: "Portrait of a young woman" }
]}
ratingAnimation="slide-up"
avatarsAnimation="blur-reveal"
/>
</div>
<div id="footer" data-section="footer">
<FooterCard
logoText="The Boutique"
copyrightText="© 2024 The Boutique. All rights reserved."
copyrightText="© 2025 The Boutique. All rights reserved."
socialLinks={[
{ icon: Instagram, href: "#", ariaLabel: "Instagram" },
{ icon: Facebook, href: "#", ariaLabel: "Facebook" }

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

@@ -0,0 +1,50 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
import ProductCardOne from '@/components/sections/product/ProductCardOne';
import FooterCard from '@/components/sections/footer/FooterCard';
import { Instagram, Facebook } from "lucide-react";
export default function ShopPage() {
return (
<ThemeProvider>
<ReactLenis root>
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "/" },
{ name: "Shop", id: "/shop" },
{ name: "About", id: "/about" },
{ name: "Contact", id: "/contact" },
]}
brandName="The Boutique"
/>
<ProductCardOne
animationType="slide-up"
textboxLayout="default"
gridVariant="uniform-all-items-equal"
useInvertedBackground={false}
title="Our Full Collection"
description="Browse our complete selection of artisan goods."
products={[
{ id: "p1", name: "Small Batch Coffee", price: "$18", imageSrc: "http://img.b2bpic.net/free-photo/preserved-food-concept-with-jars_23-2148626064.jpg?_wi=2" },
{ id: "p2", name: "Artisan Olive Oil", price: "$24", imageSrc: "http://img.b2bpic.net/free-photo/woman-standing-bread-counter_107420-63655.jpg?_wi=2" },
{ id: "p3", name: "Handmade Soaps", price: "$12", imageSrc: "http://img.b2bpic.net/free-photo/top-view-jars-with-pickled-vegetables_23-2148606777.jpg" },
{ id: "p4", name: "Local Honey", price: "$15", imageSrc: "http://img.b2bpic.net/free-photo/overhead-view-quartz-prism-with-dark-shadow-white-background_23-2147949079.jpg" },
{ id: "p5", name: "Boutique Teas", price: "$14", imageSrc: "http://img.b2bpic.net/free-photo/black-coffee-bag-mockup_187299-47334.jpg" },
{ id: "p6", name: "Gourmet Chocolates", price: "$20", imageSrc: "http://img.b2bpic.net/free-photo/front-view-bottle-natural-olive-oil_23-2148364476.jpg" }
]}
/>
<FooterCard
logoText="The Boutique"
copyrightText="© 2025 The Boutique. All rights reserved."
socialLinks={[
{ icon: Instagram, href: "#", ariaLabel: "Instagram" },
{ icon: Facebook, href: "#", ariaLabel: "Facebook" }
]}
/>
</ReactLenis>
</ThemeProvider>
);
}