37 Commits

Author SHA1 Message Date
3a87ce8924 Update src/app/page.tsx 2026-04-16 16:51:22 +00:00
91a89cec1c Merge version_12 into main
Merge version_12 into main
2026-04-16 16:45:18 +00:00
ccea7837a8 Update src/app/page.tsx 2026-04-16 16:45:12 +00:00
dafafa4cfa Merge version_11 into main
Merge version_11 into main
2026-04-16 16:43:26 +00:00
f45dc80dee Update src/app/page.tsx 2026-04-16 16:43:23 +00:00
8481618b5c Merge version_10 into main
Merge version_10 into main
2026-04-16 16:42:11 +00:00
34562e3547 Update src/app/page.tsx 2026-04-16 16:42:08 +00:00
10b2f70044 Merge version_9 into main
Merge version_9 into main
2026-04-16 16:39:28 +00:00
c1a7e012c7 Update src/app/page.tsx 2026-04-16 16:39:25 +00:00
b544a8f516 Merge version_8 into main
Merge version_8 into main
2026-04-16 16:38:23 +00:00
8ef2a51617 Update src/app/page.tsx 2026-04-16 16:38:17 +00:00
cda52caab6 Merge version_8 into main
Merge version_8 into main
2026-04-16 16:36:04 +00:00
dc737307f2 Update theme colors 2026-04-16 16:35:58 +00:00
bc614524be Merge version_7 into main
Merge version_7 into main
2026-04-16 16:35:50 +00:00
ac44fa8a04 Update theme colors 2026-04-16 16:35:47 +00:00
d5495600fe Merge version_6 into main
Merge version_6 into main
2026-04-16 16:35:36 +00:00
53e726473c Update theme colors 2026-04-16 16:35:33 +00:00
e505baebe0 Merge version_5 into main
Merge version_5 into main
2026-04-16 16:32:05 +00:00
0eff2338f8 Update src/app/page.tsx 2026-04-16 16:32:02 +00:00
58e8d2db55 Merge version_5 into main
Merge version_5 into main
2026-04-16 16:31:37 +00:00
a4a5b51d72 Update src/app/page.tsx 2026-04-16 16:31:34 +00:00
c2fa2fcdc1 Merge version_5 into main
Merge version_5 into main
2026-04-16 16:26:40 +00:00
1f3817b736 Update src/app/page.tsx 2026-04-16 16:26:37 +00:00
2d143dd5e7 Merge version_5 into main
Merge version_5 into main
2026-04-16 16:21:58 +00:00
dab70193db Update src/app/page.tsx 2026-04-16 16:21:55 +00:00
577b896a03 Merge version_4 into main
Merge version_4 into main
2026-04-16 15:20:49 +00:00
4d87759c06 Update src/app/page.tsx 2026-04-16 15:20:43 +00:00
5168a5cfa1 Merge version_3 into main
Merge version_3 into main
2026-04-16 15:19:00 +00:00
21a9dd2de9 Remove watermark 2026-04-16 15:18:57 +00:00
1dd4b7fdeb Merge version_3 into main
Merge version_3 into main
2026-04-16 15:16:46 +00:00
60a954b01b Update src/app/page.tsx 2026-04-16 15:16:43 +00:00
582cdee74d Merge version_3 into main
Merge version_3 into main
2026-04-16 15:10:17 +00:00
f2313a01a0 Update src/app/page.tsx 2026-04-16 15:10:14 +00:00
33ef5db7f8 Merge version_2 into main
Merge version_2 into main
2026-04-16 15:04:37 +00:00
1fdcc85817 Update src/app/page.tsx 2026-04-16 15:04:34 +00:00
bcc4522657 Merge version_2 into main
Merge version_2 into main
2026-04-16 15:04:13 +00:00
5b2d26cb6f Update src/app/page.tsx 2026-04-16 15:04:10 +00:00
2 changed files with 75 additions and 302 deletions

View File

@@ -4,7 +4,6 @@ import { Inter } from "next/font/google";
import "./globals.css"; import "./globals.css";
import "@/lib/gsap-setup"; import "@/lib/gsap-setup";
import { ServiceWrapper } from "@/components/ServiceWrapper"; import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
import { getVisualEditScript } from "@/utils/visual-edit-script"; import { getVisualEditScript } from "@/utils/visual-edit-script";
import { Manrope } from "next/font/google"; import { Manrope } from "next/font/google";
import { DM_Sans } from "next/font/google"; import { DM_Sans } from "next/font/google";
@@ -39,7 +38,7 @@ export default function RootLayout({
<html lang="en" suppressHydrationWarning> <html lang="en" suppressHydrationWarning>
<ServiceWrapper> <ServiceWrapper>
<body className={`${manrope.variable} ${dmSans.variable} antialiased`}> <body className={`${manrope.variable} ${dmSans.variable} antialiased`}>
<Tag />
{children} {children}
<script <script
dangerouslySetInnerHTML={{ dangerouslySetInnerHTML={{

View File

@@ -2,13 +2,12 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react"; import ReactLenis from "lenis/react";
import ContactText from '@/components/sections/contact/ContactText'; import ContactCenter from '@/components/sections/contact/ContactCenter';
import FaqSplitText from '@/components/sections/faq/FaqSplitText'; import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal'; import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
import HeroSplitKpi from '@/components/sections/hero/HeroSplitKpi'; import HeroSplitKpi from '@/components/sections/hero/HeroSplitKpi';
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay'; import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
import PricingCardEight from '@/components/sections/pricing/PricingCardEight'; import PricingCardEight from '@/components/sections/pricing/PricingCardEight';
import SplitAbout from '@/components/sections/about/SplitAbout';
import TeamCardFive from '@/components/sections/team/TeamCardFive'; import TeamCardFive from '@/components/sections/team/TeamCardFive';
import TestimonialCardSixteen from '@/components/sections/testimonial/TestimonialCardSixteen'; import TestimonialCardSixteen from '@/components/sections/testimonial/TestimonialCardSixteen';
@@ -30,30 +29,12 @@ export default function LandingPage() {
<div id="nav" data-section="nav"> <div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay <NavbarLayoutFloatingOverlay
navItems={[ navItems={[
{ { name: "About", id: "about"},
name: "About", { name: "Services", id: "services"},
id: "#about", { name: "Team", id: "team"},
}, { name: "Testimonials", id: "testimonials"},
{ { name: "FAQ", id: "faq"},
name: "Services", { name: "Contact", id: "contact"},
id: "#services",
},
{
name: "Team",
id: "#team",
},
{
name: "Testimonials",
id: "#testimonials",
},
{
name: "FAQ",
id: "#faq",
},
{
name: "Contact",
id: "#contact",
},
]} ]}
brandName="Lackawanna" brandName="Lackawanna"
/> />
@@ -61,100 +42,43 @@ export default function LandingPage() {
<div id="hero" data-section="hero"> <div id="hero" data-section="hero">
<HeroSplitKpi <HeroSplitKpi
background={{ background={{ variant: "downward-rays-static"}}
variant: "downward-rays-static",
}}
title="Classic Style, Contemporary Precision." title="Classic Style, Contemporary Precision."
description="At Lackawanna, we blend old-school charm with modern barbering. Experience the best cut in Morristown from barbers who actually care about your look." description="At Lackawanna, we blend old-school charm with modern barbering. Experience the best cut in Morristown from barbers who actually care about your look."
kpis={[ kpis={[
{ { value: "20+", label: "Years Experience"},
value: "20+", { value: "10/10", label: "Recommend Rate"},
label: "Years Experience", { value: "100%", label: "Satisfaction"},
},
{
value: "10/10",
label: "Recommend Rate",
},
{
value: "100%",
label: "Satisfaction",
},
]} ]}
enableKpiAnimation={true} enableKpiAnimation={true}
imageSrc="http://img.b2bpic.net/free-photo/barber-shop-retro-vintage-style_1150-17931.jpg" imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3CRaO5i0elf1aDIpszoFKWNR31x/uploaded-1776352201800-hefnk77v.jpg"
imageAlt="Lackawanna Barber Shop Interior" imageAlt="Lackawanna Barber Shop"
mediaAnimation="slide-up" mediaAnimation="slide-up"
avatars={[ avatars={[
{ { src: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3CRaO5i0elf1aDIpszoFKWNR31x/uploaded-1776352201800-hefnk77v.jpg", alt: "Barber shop interior"},
src: "http://img.b2bpic.net/free-photo/retro-theatre-scene-celebrate-world-theatre-day_23-2151211458.jpg", { src: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3CRaO5i0elf1aDIpszoFKWNR31x/uploaded-1776352201801-bp8o0yyb.jpg", alt: "Detail view"},
alt: "Retro theatre scene to celebrate world theatre day", { src: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3CRaO5i0elf1aDIpszoFKWNR31x/uploaded-1776352201801-l2nw3w51.jpg", alt: "Chair and tools"},
}, { src: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3CRaO5i0elf1aDIpszoFKWNR31x/uploaded-1776352201801-opcyony6.jpg", alt: "Shop perspective"},
{
src: "http://img.b2bpic.net/free-photo/tall-bar-stool-wooden-background_181624-30147.jpg",
alt: "Tall bar stool on a wooden background",
},
{
src: "http://img.b2bpic.net/free-photo/hair-salon-chair-with-towel-armchair_23-2148242777.jpg",
alt: "Hair salon chair with towel on armchair",
},
{
src: "http://img.b2bpic.net/free-photo/retro-world-theatre-day-scenes-with-backstage_23-2151211363.jpg",
alt: "Retro world theatre day scenes with a backstage",
},
{
src: "http://img.b2bpic.net/free-photo/client-barber-greeting-each-other-barbershop_23-2148181951.jpg",
alt: "Client and barber greeting each other at barbershop",
},
]} ]}
avatarText="Join 500+ satisfied clients" avatarText="Join 500+ satisfied clients"
marqueeItems={[ marqueeItems={[
{ { type: "text", text: "Classic Cuts" },
type: "text", { type: "text", text: "Hot Towel Shave" },
text: "Classic Cuts", { type: "text", text: "Beard Grooming" },
}, { type: "text", text: "Expert Fades" },
{ { type: "text", text: "Precision Styling" },
type: "text",
text: "Hot Towel Shave",
},
{
type: "text",
text: "Beard Grooming",
},
{
type: "text",
text: "Expert Fades",
},
{
type: "text",
text: "Precision Styling",
},
]} ]}
/> />
</div> </div>
<div id="about" data-section="about"> <div id="about" data-section="about" className="py-24 bg-background">
<SplitAbout <div className="container mx-auto px-4">
textboxLayout="split" <h2 className="text-3xl font-bold mb-12 text-center">Shop Contact Information</h2>
useInvertedBackground={false} <div className="text-center py-10">
title="More Than Just a Haircut" <p className="text-lg font-medium">Location: Morristown, NJ</p>
description="We are a throwback barber shop where you can get a classic men's cut, beard trim, or a hot towel shave. We treat you like family, ensuring you leave with both the cut you wanted and the confidence you deserve." <p className="text-lg font-medium">Phone: +1 (973) 538-1675</p>
bulletPoints={[ </div>
{ </div>
title: "Old School Values",
description: "Classic techniques combined with current styling trends.",
},
{
title: "Warm Environment",
description: "Friendly, sociable atmosphere where you feel right at home.",
},
{
title: "Expert Care",
description: "Knowledgeable barbers who understand every hair type.",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/side-view-man-hair-salon_23-2150665451.jpg"
mediaAnimation="blur-reveal"
/>
</div> </div>
<div id="services" data-section="services"> <div id="services" data-section="services">
@@ -163,58 +87,9 @@ export default function LandingPage() {
textboxLayout="default" textboxLayout="default"
useInvertedBackground={false} useInvertedBackground={false}
plans={[ plans={[
{ { id: "basic", badge: "Classic", price: "$40", subtitle: "Precision Haircut", buttons: [{ text: "Walk-in Only", href: "#contact" }], features: ["Classic Scissor Cut", "Modern Styling", "Expert Consultation"]},
id: "basic", { id: "pro", badge: "Premium", price: "$75", subtitle: "Full Grooming Experience", buttons: [{ text: "Walk-in Only", href: "#contact" }], features: ["Precision Haircut", "Beard Trim", "Hot Towel Service", "Relaxed Refresh"]},
badge: "Classic", { id: "kids", badge: "Family", price: "$30", subtitle: "Youth Haircut", buttons: [{ text: "Walk-in Only", href: "#contact" }], features: ["Gentle Scissor Cut", "Fast Friendly Service", "Classic Style"]},
price: "$40",
subtitle: "Precision Haircut",
buttons: [
{
text: "Walk-in Only",
href: "#contact",
},
],
features: [
"Classic Scissor Cut",
"Modern Styling",
"Expert Consultation",
],
},
{
id: "pro",
badge: "Premium",
price: "$75",
subtitle: "Full Grooming Experience",
buttons: [
{
text: "Walk-in Only",
href: "#contact",
},
],
features: [
"Precision Haircut",
"Beard Trim",
"Hot Towel Service",
"Relaxed Refresh",
],
},
{
id: "kids",
badge: "Family",
price: "$30",
subtitle: "Youth Haircut",
buttons: [
{
text: "Walk-in Only",
href: "#contact",
},
],
features: [
"Gentle Scissor Cut",
"Fast Friendly Service",
"Classic Style",
],
},
]} ]}
title="Quality Service, Transparent Price" title="Quality Service, Transparent Price"
description="Simple, honest pricing for the services you need." description="Simple, honest pricing for the services you need."
@@ -227,27 +102,11 @@ export default function LandingPage() {
textboxLayout="default" textboxLayout="default"
useInvertedBackground={false} useInvertedBackground={false}
team={[ team={[
{ { id: "t1", name: "John Franco", role: "Master Barber", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3CRaO5i0elf1aDIpszoFKWNR31x/uploaded-1776352542504-tkr21jqa.png"},
id: "t1", { id: "t2", name: "Elio", role: "Old School Specialist", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3CRaO5i0elf1aDIpszoFKWNR31x/uploaded-1776352566826-2nyt55b1.jpg"},
name: "John Franco",
role: "Master Barber",
imageSrc: "http://img.b2bpic.net/free-photo/pleased-looking-down-young-beautiful-female-barber-uniform-wearing-glasses-combing-hair-isolated-blue-wall_141793-106074.jpg",
},
{
id: "t2",
name: "Elio",
role: "Old School Specialist",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-man-with-tattoo-his-face-with-crossed-arms-dressed-white-shirt-grey-background_613910-1374.jpg",
},
{
id: "t3",
name: "The New Crew",
role: "Modern Stylists",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-hairdresser-making-haircut_23-2149220581.jpg",
},
]} ]}
title="Meet Your Barbers" title="Meet Your Staff"
description="Classy, skilled, and sociable our team is here to give you the best experience in Morristown." description="Our dedicated team is here to ensure you get the absolute best service in Morristown."
/> />
</div> </div>
@@ -257,60 +116,16 @@ export default function LandingPage() {
textboxLayout="split-description" textboxLayout="split-description"
useInvertedBackground={false} useInvertedBackground={false}
testimonials={[ testimonials={[
{ { id: "1", name: "Barry H.", role: "Loyal Customer", company: "FL", rating: 5 },
id: "1", { id: "2", name: "Melissa C.", role: "Regular Client", company: "NY", rating: 5 },
name: "Barry H.", { id: "3", name: "Tom K.", role: "Local Resident", company: "NJ", rating: 5 },
role: "Loyal Customer", { id: "4", name: "Sarah J.", role: "Frequent Visitor", company: "NJ", rating: 5 },
company: "FL, FL", { id: "5", name: "Michael P.", role: "Client", company: "NY", rating: 5 },
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: "2",
name: "Melissa C.",
role: "Regular Client",
company: "New York, NY",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/back-view-father-son-shaving_23-2149434975.jpg",
},
{
id: "3",
name: "Aidan D.",
role: "Customer",
company: "Morristown, NJ",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/happy-men-bachelor-party_23-2149275459.jpg",
},
{
id: "4",
name: "Justin D.",
role: "Long-time Client",
company: "Morristown, NJ",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/drunk-friends-call-waiter_171337-19383.jpg",
},
{
id: "5",
name: "Jay V.",
role: "First-time Visitor",
company: "Little Falls, NJ",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/excited-young-male-barber-wearing-glasses-red-shirt-barber-apron-holding-barbering-tools-looking-camera-showing-thumb-up-isolated-blue-background_141793-138548.jpg",
},
]} ]}
kpiItems={[ kpiItems={[
{ { value: "100+", label: "Weekly Cuts" },
value: "100+", { value: "20+", label: "Years Served" },
label: "Weekly Cuts", { value: "5★", label: "Rating Average" },
},
{
value: "20+",
label: "Years Served",
},
{
value: "5★",
label: "Rating Average",
},
]} ]}
title="What Our Clients Say" title="What Our Clients Say"
description="We are proud to serve our community and deliver the best cuts in town." description="We are proud to serve our community and deliver the best cuts in town."
@@ -318,79 +133,38 @@ export default function LandingPage() {
</div> </div>
<div id="faq" data-section="faq"> <div id="faq" data-section="faq">
<FaqSplitText <FaqSplitMedia
useInvertedBackground={false} faqs={[
faqs={[ { id: "q1", title: "Do you accept appointments?", content: "We operate primarily as a walk-in shop to maintain that classic, casual vibe." },
{ { id: "q2", title: "Is it cash only?", content: "Yes, we are a classic cash-only establishment." },
id: "q1", ]}
title: "Do you accept appointments?", title="Common Questions"
content: "We operate primarily as a walk-in shop to maintain that classic, casual vibe.", description="Everything you need to know about our barber shop services."
}, faqsAnimation="slide-up"
{ textboxLayout="default"
id: "q2", mediaPosition="right"
title: "Is it cash only?", useInvertedBackground={false}
content: "Yes, we are a classic cash-only establishment.", />
},
{
id: "q3",
title: "Are you a salon or a barber shop?",
content: "We are a traditional barber shop no salon fluff, just great cuts.",
},
]}
sideTitle="Common Questions"
faqsAnimation="blur-reveal"
/>
</div> </div>
<div id="contact" data-section="contact"> <div id="contact" data-section="contact">
<ContactText <ContactCenter
useInvertedBackground={false} tag="Visit Us"
background={{ title="Ready for your next cut?"
variant: "sparkles-gradient", description="Stop by our Morristown shop to experience the Lackawanna difference."
}} background={{ variant: "sparkles-gradient" }}
text="Ready for your next haircut? Stop by the shop today and meet the team. We look forward to seeing you!" useInvertedBackground={true}
buttons={[ />
{
text: "Visit Us Today",
href: "#",
},
]}
/>
</div> </div>
<div id="footer" data-section="footer"> <div id="footer" data-section="footer">
<FooterBaseReveal <FooterLogoEmphasis
logoText="Lackawanna Barber Shop" logoText="Lackawanna Barber Shop"
columns={[ columns={[
{ { items: [{ label: "132 Morris St, Morristown, NJ" }, { label: "+1 (973) 538-1675" }] },
title: "Shop", { items: [{ label: "Services" }, { label: "Team" }, { label: "FAQs" }] }
items: [ ]}
{ />
label: "Morristown, NJ",
href: "#",
},
{
label: "Cash Only",
href: "#",
},
],
},
{
title: "Social",
items: [
{
label: "Instagram",
href: "#",
},
{
label: "Facebook",
href: "#",
},
],
},
]}
copyrightText="© 2024 Lackawanna Barber Shop. All rights reserved."
/>
</div> </div>
</ReactLenis> </ReactLenis>
</ThemeProvider> </ThemeProvider>