8 Commits

Author SHA1 Message Date
5e727aead3 Update src/app/page.tsx 2026-04-27 23:45:18 +00:00
5b4251f4aa Add src/app/booking/page.tsx 2026-04-27 23:45:17 +00:00
94dde7dfcb Merge version_4 into main
Merge version_4 into main
2026-04-27 23:42:17 +00:00
0f5ca6ed48 Update src/app/page.tsx 2026-04-27 23:42:14 +00:00
319d505fcc Merge version_4 into main
Merge version_4 into main
2026-04-27 23:39:33 +00:00
11385226a1 Update theme colors 2026-04-27 23:39:30 +00:00
6c84f8b3e7 Merge version_3 into main
Merge version_3 into main
2026-04-27 23:39:29 +00:00
b3b7d76ee8 Merge version_2 into main
Merge version_2 into main
2026-04-27 23:38:14 +00:00
3 changed files with 86 additions and 16 deletions

69
src/app/booking/page.tsx Normal file
View File

@@ -0,0 +1,69 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import FooterBase from '@/components/sections/footer/FooterBase';
import { Calendar } from 'lucide-react';
export default function BookingPage() {
return (
<ThemeProvider
defaultButtonVariant="elastic-effect"
defaultTextAnimation="background-highlight"
borderRadius="soft"
contentWidth="small"
sizing="large"
background="floatingGradient"
cardStyle="soft-shadow"
primaryButtonStyle="gradient"
secondaryButtonStyle="radial-glow"
headingFontWeight="medium"
>
<div id="nav" data-section="nav">
<NavbarStyleCentered
brandName="Sharp Edge"
navItems={[
{ name: "Home", id: "/" },
{ name: "Our Story", id: "/#about" },
{ name: "Services", id: "/#cuts" },
{ name: "Barbers", id: "/#team" },
{ name: "Gallery", id: "/#experience" },
{ name: "FAQ", id: "/#faq" }
]}
button={{ text: "Book Now", href: "/booking" }}
/>
</div>
<div id="booking-form" data-section="contact">
<ContactSplitForm
title="Secure Your Appointment"
description="Select your preferred barber, choose a time slot, and tell us which service you need. We'll confirm your booking shortly."
inputs={[
{ name: "name", type: "text", placeholder: "Full Name", required: true },
{ name: "email", type: "email", placeholder: "Email Address", required: true },
{ name: "date", type: "date", placeholder: "Booking Date", required: true },
{ name: "time", type: "time", placeholder: "Booking Time", required: true }
]}
multiSelect={{
name: "barber", label: "Select Staff (or choose 'Any Available')", options: ["Any Available", "Marco V.", "Sarah J.", "David K.", "Liam R.", "Elena M.", "Jason B."]
}}
textarea={{ name: "notes", placeholder: "Additional notes (optional)", rows: 3 }}
buttonText="Confirm Booking"
/>
</div>
<div id="footer" data-section="footer">
<FooterBase
logoText="Sharp Edge"
columns={[
{ title: "Visit", items: [{ label: "Location", href: "#" }, { label: "Directions", href: "#" }] },
{ title: "Services", items: [{ label: "Cuts", href: "#" }, { label: "Shaves", href: "#" }] },
{ title: "Business", items: [{ label: "Book Now", href: "/booking" }, { label: "Contact", href: "/#contact" }] }
]
}
/>
</div>
</ThemeProvider>
);
}

View File

@@ -38,7 +38,7 @@ export default function LandingPage() {
{ name: "FAQ", id: "faq" } { name: "FAQ", id: "faq" }
]} ]}
button={{ button={{
text: "Book Now", href: "contact" text: "Book Now", href: "/booking"
}} }}
/> />
</div> </div>
@@ -51,8 +51,8 @@ export default function LandingPage() {
tagIcon={Scissors} tagIcon={Scissors}
background={{ variant: "plain" }} background={{ variant: "plain" }}
buttons={[ buttons={[
{ text: "Book with Your Barber", href: "contact" }, { text: "Book with Your Barber", href: "/booking" },
{ text: "View Services", href: "cuts" } { text: "View Services", href: "#cuts" }
]} ]}
buttonAnimation="slide-up" buttonAnimation="slide-up"
mediaItems={[ mediaItems={[
@@ -73,7 +73,7 @@ export default function LandingPage() {
{ value: "15+", title: "Years Experience" }, { value: "15+", title: "Years Experience" },
{ value: "10k+", title: "Happy Clients" } { value: "10k+", title: "Happy Clients" }
]} ]}
imageSrc="http://img.b2bpic.net/free-photo/medium-shot-hairdresser-washing-man-s-hair_23-2150665396.jpg" imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3CwVNjbVLmrqoXZ4wNOFBZ2c4u3/tmp/black-woman-hair-dresser-braiding-black--1777333282373-e3f6b864.png"
imageAlt="Expert barber at work" imageAlt="Expert barber at work"
mediaAnimation="slide-up" mediaAnimation="slide-up"
metricsAnimation="slide-up" metricsAnimation="slide-up"
@@ -162,11 +162,12 @@ export default function LandingPage() {
<ContactCenter <ContactCenter
tag="Bookings" tag="Bookings"
title="Book Your Appointment" title="Book Your Appointment"
description="Use the calendar below to secure your spot with your preferred barber." description="Use our online booking system to secure your spot with your preferred barber."
tagIcon={Calendar} tagIcon={Calendar}
background={{ variant: "sparkles-gradient" }} background={{ variant: "sparkles-gradient" }}
inputPlaceholder="Your name or email" inputPlaceholder="Your name or email"
buttonText="Reserve Now" buttonText="Go to Booking Page"
onSubmit={() => window.location.href = '/booking'}
/> />
</div> </div>
@@ -176,7 +177,7 @@ export default function LandingPage() {
columns={[ columns={[
{ title: "Visit", items: [{ label: "Location", href: "#" }, { label: "Directions", href: "#" }] }, { title: "Visit", items: [{ label: "Location", href: "#" }, { label: "Directions", href: "#" }] },
{ title: "Services", items: [{ label: "Cuts", href: "#" }, { label: "Shaves", href: "#" }] }, { title: "Services", items: [{ label: "Cuts", href: "#" }, { label: "Shaves", href: "#" }] },
{ title: "Business", items: [{ label: "Book Now", href: "#" }, { label: "Contact", href: "#" }] } { title: "Business", items: [{ label: "Book Now", href: "/booking" }, { label: "Contact", href: "#contact" }] }
]} ]}
/> />
</div> </div>

View File

@@ -10,15 +10,15 @@
--accent: #ffffff; --accent: #ffffff;
--background-accent: #ffffff; */ --background-accent: #ffffff; */
--background: #efebe5; --background: #0a0a0a;
--card: #f7f2ea; --card: #1a1a1a;
--foreground: #000000; --foreground: #f5f5f5;
--primary-cta: #000000; --primary-cta: #ffdf7d;
--primary-cta-text: #efebe5; --primary-cta-text: #0a0a0a;
--secondary-cta: #ffffff; --secondary-cta: #1a1a1a;
--secondary-cta-text: #000000; --secondary-cta-text: #ffffff;
--accent: #ffffff; --accent: #b8860b;
--background-accent: #e1b875; --background-accent: #8b6914;
/* text sizing - set by ThemeProvider */ /* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem); /* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);