60 Commits

Author SHA1 Message Date
70abadd4ec Update src/app/contact/page.tsx 2026-04-16 18:42:33 +00:00
bcd85e4403 Update src/app/contact/page.tsx 2026-04-16 18:42:08 +00:00
350bbba88d Update src/app/contact/page.tsx 2026-04-16 18:41:43 +00:00
d7a8fe39c9 Merge version_21 into main
Merge version_21 into main
2026-04-16 18:36:47 +00:00
e5ee48cc07 Update src/app/contact/page.tsx 2026-04-16 18:36:44 +00:00
33e28812d7 Merge version_20 into main
Merge version_20 into main
2026-04-16 18:32:02 +00:00
d949ae7cb3 Update src/app/about/page.tsx 2026-04-16 18:31:59 +00:00
e51edb2ab9 Merge version_20 into main
Merge version_20 into main
2026-04-16 18:31:38 +00:00
58bba9e16c Update src/app/page.tsx 2026-04-16 18:31:35 +00:00
3cb217e9b3 Add src/app/contact/page.tsx 2026-04-16 18:31:35 +00:00
e815a263c7 Update src/app/about/page.tsx 2026-04-16 18:31:34 +00:00
8d03c5e113 Merge version_19 into main
Merge version_19 into main
2026-04-16 17:05:15 +00:00
0d5bd9a8e7 Update src/app/page.tsx 2026-04-16 17:05:12 +00:00
357b1e99f1 Merge version_19 into main
Merge version_19 into main
2026-04-16 17:04:46 +00:00
be3f300dd9 Update src/app/page.tsx 2026-04-16 17:04:43 +00:00
fe98a8d669 Merge version_18 into main
Merge version_18 into main
2026-04-16 17:01:16 +00:00
f3b3d1b041 Update src/app/page.tsx 2026-04-16 17:01:13 +00:00
2b5743a2fd Update src/app/about/page.tsx 2026-04-16 17:01:12 +00:00
5669f9543a Merge version_18 into main
Merge version_18 into main
2026-04-16 17:00:52 +00:00
0b2b51c4a5 Update src/app/page.tsx 2026-04-16 17:00:49 +00:00
2e7dfb439b Add src/app/about/page.tsx 2026-04-16 17:00:48 +00:00
567a9a641f Merge version_17 into main
Merge version_17 into main
2026-04-16 16:59:15 +00:00
1c468fe31c Update src/app/page.tsx 2026-04-16 16:59:11 +00:00
71935b7066 Merge version_16 into main
Merge version_16 into main
2026-04-16 16:55:32 +00:00
bceadae530 Update src/app/page.tsx 2026-04-16 16:55:29 +00:00
cb5af2ec7a Merge version_15 into main
Merge version_15 into main
2026-04-16 16:54:08 +00:00
c0a817b43c Update src/app/page.tsx 2026-04-16 16:54:02 +00:00
7234fe2d99 Merge version_14 into main
Merge version_14 into main
2026-04-16 16:53:22 +00:00
6eff575a7c Update src/app/page.tsx 2026-04-16 16:53:19 +00:00
77a69d2a9b Merge version_13 into main
Merge version_13 into main
2026-04-16 16:51:29 +00:00
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
1dd4b7fdeb Merge version_3 into main
Merge version_3 into main
2026-04-16 15:16:46 +00:00
582cdee74d Merge version_3 into main
Merge version_3 into main
2026-04-16 15:10:17 +00:00
3 changed files with 161 additions and 93 deletions

55
src/app/about/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 TextSplitAbout from '@/components/sections/about/TextSplitAbout';
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
export default function AboutPage() {
return (
<ThemeProvider
defaultButtonVariant="expand-hover"
defaultTextAnimation="background-highlight"
borderRadius="soft"
contentWidth="mediumSmall"
sizing="mediumLargeSizeMediumTitles"
background="blurBottom"
cardStyle="soft-shadow"
primaryButtonStyle="double-inset"
secondaryButtonStyle="layered"
headingFontWeight="extrabold"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
navItems={[
{ name: "Home", id: "/"},
{ name: "About", id: "/about"},
{ name: "Contact", id: "/contact"},
]}
brandName="Lackawanna"
/>
</div>
<div id="about-content" data-section="about-content" className="pt-32 pb-24">
<TextSplitAbout
title="About Lackawanna Barber Shop"
description={["At Lackawanna, we are dedicated to preserving the art of traditional barbering while serving the modern man. With over two decades of experience, our commitment to quality, community, and precision cuts has made us a cornerstone of Morristown."]}
useInvertedBackground={false}
/>
</div>
<div id="footer" data-section="footer">
<FooterLogoEmphasis
logoText="Lackawanna Barber Shop"
columns={[
{ items: [{ label: "132 Morris St, Morristown, NJ", href: "/contact" }, { label: "+1 (973) 538-1675", href: "tel:+19735381675" }] },
{ items: [{ label: "Services", href: "/#services" }, { label: "Team", href: "/#team" }, { label: "FAQs", href: "/#faq" }] }
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

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

@@ -0,0 +1,59 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import { useRouter } from "next/navigation";
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
import ContactCTA from '@/components/sections/contact/ContactCTA';
import FooterLogoReveal from '@/components/sections/footer/FooterLogoReveal';
export default function ContactPage() {
const router = useRouter();
return (
<ThemeProvider
defaultButtonVariant="expand-hover"
defaultTextAnimation="background-highlight"
borderRadius="soft"
contentWidth="mediumSmall"
sizing="mediumLargeSizeMediumTitles"
background="blurBottom"
cardStyle="soft-shadow"
primaryButtonStyle="double-inset"
secondaryButtonStyle="layered"
headingFontWeight="extrabold"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarStyleApple
navItems={[
{ name: "Home", id: "/" },
{ name: "About", id: "/about" },
{ name: "Contact", id: "/contact" }
]}
brandName="Lackawanna"
/>
</div>
<div id="contact-content" data-section="contact-content" className="pt-32 pb-24">
<ContactCTA
tag="Contact"
title="Ready for your next cut?"
description="Stop by our Morristown shop or give us a call at (973) 538-1675 to inquire about wait times."
buttons={[{ text: "Submit", onClick: () => router.push("/") }]}
background={{ variant: "plain" }}
useInvertedBackground={true}
/>
</div>
<div id="footer" data-section="footer">
<FooterLogoReveal
logoText="Lackawanna Barber Shop"
leftLink={{ text: "Contact", href: "/contact" }}
rightLink={{ text: "Home", href: "/" }}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

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,18 +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", id: "#about"}, { name: "Services", id: "services"},
{ { name: "Team", id: "team"},
name: "Services", id: "#services"}, { name: "Testimonials", id: "testimonials"},
{ { name: "FAQ", id: "faq"},
name: "Team", id: "#team"}, { name: "Contact", id: "/contact"},
{
name: "Testimonials", id: "#testimonials"},
{
name: "FAQ", id: "#faq"},
{
name: "Contact", id: "#contact"},
]} ]}
brandName="Lackawanna" brandName="Lackawanna"
/> />
@@ -49,31 +42,23 @@ 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+", label: "Years Experience"}, { value: "10/10", label: "Recommend Rate"},
{ { value: "100%", label: "Satisfaction"},
value: "10/10", label: "Recommend Rate"},
{
value: "100%", label: "Satisfaction"},
]} ]}
enableKpiAnimation={true} enableKpiAnimation={true}
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3CRaO5i0elf1aDIpszoFKWNR31x/uploaded-1776352201800-hefnk77v.jpg" imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3CRaO5i0elf1aDIpszoFKWNR31x/uploaded-1776352201800-hefnk77v.jpg?_wi=1"
imageAlt="Lackawanna Barber Shop" 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: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3CRaO5i0elf1aDIpszoFKWNR31x/uploaded-1776352201800-hefnk77v.jpg", alt: "Barber shop interior"}, { src: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3CRaO5i0elf1aDIpszoFKWNR31x/uploaded-1776352201801-bp8o0yyb.jpg", alt: "Detail view"},
{ { 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-bp8o0yyb.jpg", alt: "Detail view"}, { src: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3CRaO5i0elf1aDIpszoFKWNR31x/uploaded-1776352201801-opcyony6.jpg", alt: "Shop perspective"},
{
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"},
]} ]}
avatarText="Join 500+ satisfied clients" avatarText="Join 500+ satisfied clients"
marqueeItems={[ marqueeItems={[
@@ -86,43 +71,15 @@ export default function LandingPage() {
/> />
</div> </div>
<div id="about" data-section="about">
<SplitAbout
textboxLayout="split"
useInvertedBackground={false}
title="More Than Just a Haircut"
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."
bulletPoints={[
{
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="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3CRaO5i0elf1aDIpszoFKWNR31x/uploaded-1776352201801-bp8o0yyb.jpg"
mediaAnimation="blur-reveal"
/>
</div>
<div id="services" data-section="services"> <div id="services" data-section="services">
<PricingCardEight <PricingCardEight
animationType="slide-up" animationType="slide-up"
textboxLayout="default" textboxLayout="default"
useInvertedBackground={false} useInvertedBackground={false}
plans={[ plans={[
{ { id: "basic", badge: "Classic", price: "$40", subtitle: "Precision Haircut", features: ["Classic Scissor Cut", "Modern Styling", "Expert Consultation"], buttons: [{text: "Book Now", href: "/contact"}]},
id: "basic", badge: "Classic", price: "$40", subtitle: "Precision Haircut", buttons: [{ text: "Walk-in Only", href: "#contact" }], { id: "pro", badge: "Premium", price: "$75", subtitle: "Full Grooming Experience", features: ["Precision Haircut", "Beard Trim", "Hot Towel Service", "Relaxed Refresh"], buttons: [{text: "Book Now", href: "/contact"}]},
features: ["Classic Scissor Cut", "Modern Styling", "Expert Consultation"], { id: "kids", badge: "Family", price: "$30", subtitle: "Youth Haircut", features: ["Gentle Scissor Cut", "Fast Friendly Service", "Classic Style"], buttons: [{text: "Book Now", href: "/contact"}]},
},
{
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."
@@ -135,10 +92,8 @@ 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", name: "John Franco", role: "Master Barber", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3CRaO5i0elf1aDIpszoFKWNR31x/uploaded-1776352542504-tkr21jqa.png"}, { 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"},
{
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"},
]} ]}
title="Meet Your Staff" title="Meet Your Staff"
description="Our dedicated team is here to ensure you get the absolute best service in Morristown." description="Our dedicated team is here to ensure you get the absolute best service in Morristown."
@@ -153,6 +108,9 @@ export default function LandingPage() {
testimonials={[ testimonials={[
{ id: "1", name: "Barry H.", role: "Loyal Customer", company: "FL", rating: 5 }, { id: "1", name: "Barry H.", role: "Loyal Customer", company: "FL", rating: 5 },
{ id: "2", name: "Melissa C.", role: "Regular Client", company: "NY", rating: 5 }, { id: "2", name: "Melissa C.", role: "Regular Client", company: "NY", rating: 5 },
{ id: "3", name: "Tom K.", role: "Local Resident", company: "NJ", rating: 5 },
{ id: "4", name: "Sarah J.", role: "Frequent Visitor", company: "NJ", rating: 5 },
{ id: "5", name: "Michael P.", role: "Client", company: "NY", rating: 5 },
]} ]}
kpiItems={[ kpiItems={[
{ value: "100+", label: "Weekly Cuts" }, { value: "100+", label: "Weekly Cuts" },
@@ -165,34 +123,30 @@ 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: "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: "q2", title: "Is it cash only?", content: "Yes, we are a classic cash-only establishment." }, ]}
]} title="Common Questions"
sideTitle="Common Questions" description="Everything you need to know about our barber shop services."
faqsAnimation="blur-reveal" faqsAnimation="slide-up"
/> textboxLayout="default"
</div> mediaPosition="right"
useInvertedBackground={false}
<div id="contact" data-section="contact"> imageSrc="http://img.b2bpic.net/free-photo/front-view-baber-shop-chiar_23-2148506337.jpg"
<ContactText imageAlt="Lackawanna Barber Shop Interior"
useInvertedBackground={false} />
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!"
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={[
{ title: "Shop", items: [{ label: "Morristown, NJ", href: "#" }] }, { items: [{ label: "132 Morris St, Morristown, NJ", href: "/contact" }, { label: "+1 (973) 538-1675" }] },
]} { items: [{ label: "Services", href: "#services" }, { label: "Team", href: "#team" }, { label: "FAQs", href: "#faq" }] }
copyrightText="© 2024 Lackawanna Barber Shop. All rights reserved." ]}
/> />
</div> </div>
</ReactLenis> </ReactLenis>
</ThemeProvider> </ThemeProvider>