5 Commits

Author SHA1 Message Date
8b5a4b5e46 Merge version_2 into main
Merge version_2 into main
2026-04-06 19:23:37 +00:00
2f6f5f68e7 Update src/app/page.tsx 2026-04-06 19:23:34 +00:00
a9c464d722 Merge version_2 into main
Merge version_2 into main
2026-04-06 19:23:05 +00:00
b685878e24 Update src/app/page.tsx 2026-04-06 19:23:02 +00:00
fcc2936dc2 Merge version_1 into main
Merge version_1 into main
2026-04-06 19:02:56 +00:00

View File

@@ -2,6 +2,7 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react"; import ReactLenis from "lenis/react";
import { Sparkles, MapPin } from "lucide-react";
import ContactSplit from '@/components/sections/contact/ContactSplit'; import ContactSplit from '@/components/sections/contact/ContactSplit';
import FeatureCardSix from '@/components/sections/feature/FeatureCardSix'; import FeatureCardSix from '@/components/sections/feature/FeatureCardSix';
import FooterMedia from '@/components/sections/footer/FooterMedia'; import FooterMedia from '@/components/sections/footer/FooterMedia';
@@ -30,22 +31,11 @@ export default function LandingPage() {
<div id="nav" data-section="nav"> <div id="nav" data-section="nav">
<NavbarStyleFullscreen <NavbarStyleFullscreen
navItems={[ navItems={[
{ { name: "Home", id: "hero" },
name: "Home", { name: "About", id: "about" },
id: "hero", { name: "Services", id: "services" },
}, { name: "Testimonials", id: "testimonials" },
{ { name: "Contact", id: "contact" },
name: "About",
id: "about",
},
{
name: "Services",
id: "services",
},
{
name: "Contact",
id: "contact",
},
]} ]}
brandName="Ann's Barber & Stylist" brandName="Ann's Barber & Stylist"
/> />
@@ -53,69 +43,17 @@ export default function LandingPage() {
<div id="hero" data-section="hero"> <div id="hero" data-section="hero">
<HeroSplit <HeroSplit
background={{ background={{ variant: "gradient-bars" }}
variant: "gradient-bars",
}}
title="Walk In. Walk Out Looking Like You Meant It." title="Walk In. Walk Out Looking Like You Meant It."
description="Great haircuts. Friendly people. No weird vibes. Just one of the best barbershops in Gaithersburg." description="Great haircuts. Friendly people. No weird vibes. Just one of the best barbershops in Gaithersburg."
buttons={[ buttons={[
{ { text: "Call Now", href: "tel:+13015550123" },
text: "Call Now", { text: "Get Directions", href: "#contact" },
href: "tel:+13015550123",
},
{
text: "Get Directions",
href: "#contact",
},
]} ]}
imageSrc="http://img.b2bpic.net/free-photo/barber-shop-retro-vintage-style_1150-17931.jpg" imageSrc="http://img.b2bpic.net/free-photo/barber-shop-retro-vintage-style_1150-17931.jpg"
imageAlt="Professional barber in shop" imageAlt="Professional barber in shop"
mediaAnimation="slide-up" mediaAnimation="slide-up"
avatars={[
{
src: "http://img.b2bpic.net/free-photo/young-joyful-blonde-male-barber-uniform-holds-hair-clipper-raises-fist-up-isolated-olive-green-space-with-copy-space_141793-60317.jpg",
alt: "Client 1",
},
{
src: "http://img.b2bpic.net/free-photo/young-handsome-man-black-polo-shirt-swinging-paint-brush-with-aggressive-expression-standing-white-background_141793-20662.jpg",
alt: "Client 2",
},
{
src: "http://img.b2bpic.net/free-photo/front-view-smiley-woman-getting-haircut_23-2148817196.jpg",
alt: "Client 3",
},
{
src: "testimonial-4",
alt: "Client 4",
},
{
src: "testimonial-5",
alt: "Client 5",
},
]}
avatarText="Trusted by 100+ regulars" avatarText="Trusted by 100+ regulars"
marqueeItems={[
{
type: "text",
text: "Precision Cuts",
},
{
type: "text",
text: "Friendly Atmosphere",
},
{
type: "text",
text: "Classic Techniques",
},
{
type: "text",
text: "Quality Grooming",
},
{
type: "text",
text: "No Nonsense",
},
]}
/> />
</div> </div>
@@ -123,15 +61,11 @@ export default function LandingPage() {
<SocialProofOne <SocialProofOne
textboxLayout="default" textboxLayout="default"
useInvertedBackground={false} useInvertedBackground={false}
names={[ tag="Testimonials"
"⭐ Best haircut Ive had in a long time", tagIcon={Sparkles}
"⭐ Always a great experience", names={["⭐⭐⭐⭐⭐ Best haircut Ive had", "⭐⭐⭐⭐⭐ Always a great experience", "⭐⭐⭐⭐⭐ Friendly staff", "⭐⭐⭐⭐⭐ Consistent quality", "⭐⭐⭐⭐⭐ Great atmosphere"]}
"⭐ Friendly staff, quick service", title="Why Regulars Choose Us"
"⭐ First haircut I liked right away", description="Don't just take our word for it—join the hundred plus locals who trust Ann's with their look."
"⭐ Great atmosphere, no drama",
]}
title="People Dont Just Come Back… They Recommend Us."
description="Our regulars are our best marketing. Here's why people keep coming back to Ann's."
/> />
</div> </div>
@@ -140,10 +74,7 @@ export default function LandingPage() {
useInvertedBackground={true} useInvertedBackground={true}
title="Good Cuts. Good People. Thats It." title="Good Cuts. Good People. Thats It."
description={[ description={[
"Anns Barber & Stylist has built a reputation for doing things right. No overcomplicated styles, no rushed jobs. Just solid haircuts, friendly conversations, and people who actually care how you look when you leave.", "Anns Barber & Stylist has built a reputation for doing things right. No overcomplicated styles, no rushed jobs. Just solid haircuts, friendly conversations, and people who actually care how you look when you leave.", "Regulars come here because they trust it. First-timers come back because they didnt expect it to be this good."]}
"Regulars come here because they trust it. First-timers come back because they didnt expect it to be this good.",
"Also, yes… the dog is part of the experience.",
]}
/> />
</div> </div>
@@ -152,33 +83,12 @@ export default function LandingPage() {
textboxLayout="default" textboxLayout="default"
useInvertedBackground={false} useInvertedBackground={false}
features={[ features={[
{ { title: "Precision Haircuts", description: "Tailored to your specific style and hair type.", imageSrc: "http://img.b2bpic.net/free-photo/attractive-young-man-shaving-before-work-holding-disposable-razor-shave-his-face-using-foam_343059-1186.jpg?_wi=1", imageAlt: "Haircut" },
title: "Haircuts", { title: "Straight Razor Shaves", description: "The ultimate smooth finish with classic techniques.", imageSrc: "http://img.b2bpic.net/free-photo/attractive-young-man-shaving-before-work-holding-disposable-razor-shave-his-face-using-foam_343059-1186.jpg?_wi=2", imageAlt: "Shave" },
description: "Clean, sharp, and exactly what you asked for.", { title: "Quick Maintenance", description: "Ideal for beard trims or touch-ups on the go.", imageSrc: "http://img.b2bpic.net/free-photo/attractive-young-man-shaving-before-work-holding-disposable-razor-shave-his-face-using-foam_343059-1186.jpg?_wi=3", imageAlt: "Trim" },
imageSrc: "http://img.b2bpic.net/free-photo/attractive-young-man-shaving-before-work-holding-disposable-razor-shave-his-face-using-foam_343059-1186.jpg?_wi=1",
imageAlt: "Professional haircut",
},
{
title: "Straight Razor Shaves",
description: "Old-school, smooth, and done right.",
imageSrc: "http://img.b2bpic.net/free-photo/attractive-young-man-shaving-before-work-holding-disposable-razor-shave-his-face-using-foam_343059-1186.jpg?_wi=2",
imageAlt: "Razor shave",
},
{
title: "Quick Cuts",
description: "In, out, still looking great.",
imageSrc: "http://img.b2bpic.net/free-photo/attractive-young-man-shaving-before-work-holding-disposable-razor-shave-his-face-using-foam_343059-1186.jpg?_wi=3",
imageAlt: "Quick haircut",
},
{
title: "Kids Cuts",
description: "Fast enough to keep them still.",
imageSrc: "http://img.b2bpic.net/free-photo/attractive-young-man-shaving-before-work-holding-disposable-razor-shave-his-face-using-foam_343059-1186.jpg?_wi=4",
imageAlt: "Kids haircut",
},
]} ]}
title="What We Do (Really Well)" title="What We Do Well"
description="We keep it simple, clean, and professional. Every cut is tailored to you." description="Simple, clean, professional service."
/> />
</div> </div>
@@ -187,58 +97,12 @@ export default function LandingPage() {
animationType="slide-up" animationType="slide-up"
textboxLayout="default" textboxLayout="default"
useInvertedBackground={true} useInvertedBackground={true}
title="Transparent Quality"
description="Professional grooming doesn't need to be expensive or complicated."
plans={[ plans={[
{ { id: "p1", tag: "Standard", price: "$25", period: "avg", description: "Full haircut service", button: { text: "Book Now" }, featuresTitle: "Includes", features: ["Wash", "Cut", "Style"] },
id: "p1", { id: "p2", tag: "Premium", price: "$40", period: "avg", description: "Haircut & Shave combo", button: { text: "Book Now" }, featuresTitle: "Includes", features: ["Everything in Standard", "Hot Towel", "Straight Razor"] },
tag: "Benefit",
price: "Quality",
period: "Guaranteed",
description: "You like your haircut immediately.",
button: {
text: "Book Now",
},
featuresTitle: "Why it matters",
features: [
"Precision cutting",
"Professional styling",
"Friendly environment",
],
},
{
id: "p2",
tag: "Benefit",
price: "Service",
period: "Friendly",
description: "Friendly staff who listen to your needs.",
button: {
text: "Book Now",
},
featuresTitle: "Our approach",
features: [
"Listening first",
"Customer focus",
"Expert advice",
],
},
{
id: "p3",
tag: "Benefit",
price: "Value",
period: "Honest",
description: "Fair prices, no surprises.",
button: {
text: "Book Now",
},
featuresTitle: "The promise",
features: [
"Fair pricing",
"Transparent service",
"No nonsense",
],
},
]} ]}
title="Why People Keep Coming Back"
description="No surprises, just quality."
/> />
</div> </div>
@@ -247,63 +111,24 @@ export default function LandingPage() {
animationType="slide-up" animationType="slide-up"
textboxLayout="default" textboxLayout="default"
gridVariant="asymmetric-60-wide-40-narrow" gridVariant="asymmetric-60-wide-40-narrow"
title="What Our Clients Say"
description="We value every single review from our community."
useInvertedBackground={false} useInvertedBackground={false}
testimonials={[ testimonials={[
{ { id: "t1", name: "Mike R.", role: "Local", company: "Gaithersburg", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/young-joyful-blonde-male-barber-uniform-holds-hair-clipper-raises-fist-up-isolated-olive-green-space-with-copy-space_141793-60317.jpg" },
id: "t1", { id: "t2", name: "Sarah K.", role: "Local", company: "Gaithersburg", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/front-view-smiley-woman-getting-haircut_23-2148817196.jpg" },
name: "Mike R.",
role: "Regular",
company: "Gaithersburg",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/young-joyful-blonde-male-barber-uniform-holds-hair-clipper-raises-fist-up-isolated-olive-green-space-with-copy-space_141793-60317.jpg",
},
{
id: "t2",
name: "Dave S.",
role: "Regular",
company: "Gaithersburg",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/young-handsome-man-black-polo-shirt-swinging-paint-brush-with-aggressive-expression-standing-white-background_141793-20662.jpg",
},
{
id: "t3",
name: "Sarah K.",
role: "Mom",
company: "Gaithersburg",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/front-view-smiley-woman-getting-haircut_23-2148817196.jpg",
},
{
id: "t4",
name: "Chris B.",
role: "Pro",
company: "Gaithersburg",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/side-view-man-hair-salon_23-2150665451.jpg",
},
{
id: "t5",
name: "John P.",
role: "Regular",
company: "Gaithersburg",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/hairdresser-cutting-man-s-hair-barber-shop_23-2149186462.jpg",
},
]} ]}
title="Real People. Real Opinions."
description="Don't take our word for it."
/> />
</div> </div>
<div id="contact" data-section="contact"> <div id="contact" data-section="contact">
<ContactSplit <ContactSplit
useInvertedBackground={true} useInvertedBackground={true}
background={{ background={{ variant: "plain" }}
variant: "plain",
}}
tag="Find Us" tag="Find Us"
title="Ready for a Better Haircut?" tagIcon={MapPin}
description="Easy to find. Hard to leave without looking better. Walk in or call ahead." title="Visit Ann's Today"
description="We're located in the heart of Gaithersburg. Walk-ins are always welcome, or give us a call to check wait times."
imageSrc="http://img.b2bpic.net/free-photo/full-shot-business-owner-standing-outdoors_23-2149434497.jpg?_wi=1" imageSrc="http://img.b2bpic.net/free-photo/full-shot-business-owner-standing-outdoors_23-2149434497.jpg?_wi=1"
mediaPosition="right" mediaPosition="right"
/> />
@@ -314,42 +139,13 @@ export default function LandingPage() {
imageSrc="http://img.b2bpic.net/free-photo/full-shot-business-owner-standing-outdoors_23-2149434497.jpg?_wi=2" imageSrc="http://img.b2bpic.net/free-photo/full-shot-business-owner-standing-outdoors_23-2149434497.jpg?_wi=2"
logoText="Ann's Barber & Stylist" logoText="Ann's Barber & Stylist"
columns={[ columns={[
{ { title: "Location", items: [{ label: "123 Main St, Gaithersburg, MD", href: "#" }] },
title: "Visit", { title: "Contact", items: [{ label: "(301) 555-0123", href: "tel:+13015550123" }] },
items: [ { title: "Hours", items: [{ label: "M-F: 9am-7pm", href: "#" }, { label: "Sat: 9am-5pm", href: "#" }] }
{
label: "123 Main St, Gaithersburg, MD",
href: "#",
},
],
},
{
title: "Call",
items: [
{
label: "(301) 555-0123",
href: "tel:+13015550123",
},
],
},
{
title: "Hours",
items: [
{
label: "Mon-Fri: 9am-7pm",
href: "#",
},
{
label: "Sat: 9am-5pm",
href: "#",
},
],
},
]} ]}
copyrightText="© 2025 Ann's Barber & Stylist. Good haircuts. No nonsense."
/> />
</div> </div>
</ReactLenis> </ReactLenis>
</ThemeProvider> </ThemeProvider>
); );
} }