45 Commits

Author SHA1 Message Date
a34779b1e4 Update src/app/franchise/page.tsx 2026-05-26 18:40:20 +00:00
86a6580f98 Update src/app/page.tsx 2026-05-26 17:49:35 +00:00
b28d95a0c8 Update src/app/styles/variables.css 2026-05-26 17:49:01 +00:00
abf6b77e2b Update src/app/styles/base.css 2026-05-26 17:49:01 +00:00
32ef242dad Update src/app/page.tsx 2026-05-26 17:49:00 +00:00
6f895dde7e Add src/app/franchise/page.tsx 2026-05-26 17:49:00 +00:00
ed6bdc86c3 Merge version_8 into main
Merge version_8 into main
2026-05-26 17:42:38 +00:00
0a260f7ab6 Update src/app/blog/page.tsx 2026-05-26 17:42:35 +00:00
2c91ccdbbb Merge version_8 into main
Merge version_8 into main
2026-05-26 17:42:09 +00:00
912cd30097 Update src/app/blog/page.tsx 2026-05-26 17:42:06 +00:00
f388c96554 Merge version_7 into main
Merge version_7 into main
2026-05-26 17:33:58 +00:00
b8fac0dabd Update src/app/blog/page.tsx 2026-05-26 17:33:55 +00:00
87eb233c1a Merge version_7 into main
Merge version_7 into main
2026-05-26 17:33:22 +00:00
061eb5388b Update src/app/page.tsx 2026-05-26 17:33:19 +00:00
dd5450fcc4 Merge version_6 into main
Merge version_6 into main
2026-05-18 18:12:09 +00:00
006ae4c0cb Update src/app/page.tsx 2026-05-18 18:12:06 +00:00
ec4bd4997f Merge version_6 into main
Merge version_6 into main
2026-05-18 17:47:45 +00:00
4b23d62f73 Update src/app/layout.tsx 2026-05-18 17:47:42 +00:00
d1002474f3 Update src/app/favicon.ico 2026-05-18 17:47:41 +00:00
4f15a25670 Merge version_6 into main
Merge version_6 into main
2026-05-18 17:42:22 +00:00
8c3aab3959 Update src/app/page.tsx 2026-05-18 17:42:19 +00:00
4ef1da74af Merge version_6 into main
Merge version_6 into main
2026-05-18 17:42:18 +00:00
721b46cde2 Add src/app/blog/page.tsx 2026-05-18 17:42:12 +00:00
85e76d0978 Merge version_6 into main
Merge version_6 into main
2026-05-18 17:35:13 +00:00
b9ffc9d6a5 Update src/app/page.tsx 2026-05-18 17:35:10 +00:00
7aa5cd0464 Merge version_6 into main
Merge version_6 into main
2026-05-06 19:10:24 +00:00
68be6c90ca Update src/app/page.tsx 2026-05-06 19:10:21 +00:00
424fc1bda0 Merge version_6 into main
Merge version_6 into main
2026-05-06 19:08:41 +00:00
e7bdac001f Update theme fonts 2026-05-06 19:08:38 +00:00
0275050a84 Update theme fonts 2026-05-06 19:08:37 +00:00
d7b094f699 Merge version_6 into main
Merge version_6 into main
2026-05-06 19:08:04 +00:00
5c0e39ddb5 Update theme fonts 2026-05-06 19:08:01 +00:00
7be8de2298 Update theme fonts 2026-05-06 19:08:00 +00:00
b0e8fa1bcf Merge version_6 into main
Merge version_6 into main
2026-05-06 19:07:54 +00:00
4640a6ff8a Update theme fonts 2026-05-06 19:07:48 +00:00
7f44a844b7 Update theme fonts 2026-05-06 19:07:47 +00:00
a8c68f6bdc Merge version_6 into main
Merge version_6 into main
2026-05-06 19:05:03 +00:00
93dbd56af2 Update src/app/page.tsx 2026-05-06 19:05:00 +00:00
c2f5202634 Merge version_6 into main
Merge version_6 into main
2026-05-06 19:00:14 +00:00
f2d3be292c Update src/app/page.tsx 2026-05-06 19:00:11 +00:00
9a568791ce Merge version_6 into main
Merge version_6 into main
2026-05-06 18:50:53 +00:00
793e5a416f Update src/app/page.tsx 2026-05-06 18:50:50 +00:00
b527dc297e Merge version_5 into main
Merge version_5 into main
2026-05-06 18:47:31 +00:00
9223dd8d40 Merge version_5 into main
Merge version_5 into main
2026-05-06 18:45:47 +00:00
c60f83ccc0 Merge version_5 into main
Merge version_5 into main
2026-05-06 17:39:38 +00:00
7 changed files with 253 additions and 29 deletions

110
src/app/blog/page.tsx Normal file
View File

@@ -0,0 +1,110 @@
"use client";
import ReactLenis from "lenis/react";
import BlogCardOne from "@/components/sections/blog/BlogCardOne";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import { useBlogPosts } from "@/hooks/useBlogPosts";
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
import FooterMedia from '@/components/sections/footer/FooterMedia';
const bookingUrl = "/contact";
const franchisePagePath = "/franchise-doc-barnet-grooming-salon";
export default function BlogPage() {
const { posts, isLoading } = useBlogPosts();
return (
<ThemeProvider defaultButtonVariant="text-shift"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="mediumLarge"
sizing="largeSmallSizeLargeTitles"
background="none"
cardStyle="outline"
primaryButtonStyle="radial-glow"
secondaryButtonStyle="glass"
headingFontWeight="extrabold">
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay navItems={[
{
name: "Home", id: "/"},
{
name: "Services", id: "/#services"},
{
name: "Prices", id: "/#pricing"},
{
name: "Contact", id: "/#contact"},
{
name: "Blog", id: "/blog"},
{
name: "Franchise", id: franchisePagePath},
]}
brandName="Doc Barnet Grooming Salon"
button={{
text: "BOOK NOW", href: bookingUrl}} />
</div>
{isLoading ? (
<div className="w-content-width mx-auto py-20 text-center">
<p className="text-foreground">Loading posts...</p>
</div>
) : (
<div id="blog" data-section="blog">
<BlogCardOne
blogs={posts}
title="Latest Articles"
description="Stay updated with our latest insights"
textboxLayout="default"
useInvertedBackground={false}
carouselMode="buttons"
animationType="slide-up"
/>
</div>
)}
<div id="footer" data-section="footer">
<FooterMedia imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3DMGxfgFdRWLXzYqe2HfYt6JE4x/uploaded-1778094604107-kwe3q62f.jpg"
logoText="DOC BARNET"
columns={[
{
title: "Services", items: [
{
label: "Gents Hair", href: "/#services"},
{
label: "Ladies Cut", href: "/#services"},
{
label: "Beard Grooming", href: "/#services"},
],
},
{
title: "Company", items: [
{
label: "About Us", href: "/#about"},
{
label: "Contact", href: "/#contact"},
{
label: "Book Now", href: bookingUrl},
{
label: "Franchise", href: franchisePagePath},
],
},
{
title: "Social", items: [
{
label: "Instagram", href: "https://www.instagram.com/docbarnet?igsh=MWMwdHBnamFibXc3Yw%3D%3D&utm_source=qr"},
{
label: "Facebook", href: "#"},
{
label: "Privacy Policy", href: "#"},
],
},
]} />
</div>
</ReactLenis>
</ThemeProvider>
);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 87 KiB

109
src/app/franchise/page.tsx Normal file
View File

@@ -0,0 +1,109 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import FooterMedia from '@/components/sections/footer/FooterMedia';
export default function FranchisePage() {
const bookingUrl = "https://tinyurl.com/2kr8jy37";
return (
<ThemeProvider
defaultButtonVariant="text-shift"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="mediumLarge"
sizing="largeSmallSizeLargeTitles"
background="none"
cardStyle="outline"
primaryButtonStyle="radial-glow"
secondaryButtonStyle="glass"
headingFontWeight="extrabold"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
navItems={[
{
name: "Home", id: "hero"},
{
name: "Services", id: "services"},
{
name: "Prices", id: "pricing"},
{
name: "Franchise", id: "/franchise"},
{
name: "Contact", id: "contact"},
{ name: "Blog", id: "/blog" },
]}
brandName="Doc Barnet Grooming Salon"
button={{
text: "BOOK NOW", href: bookingUrl}}
/>
</div>
<div id="franchise-contact" data-section="franchise-contact">
<ContactSplitForm
useInvertedBackground={false}
title="Franchise Opportunities"
description="Interested in joining the Doc Barnet family? We are expanding and seeking passionate individuals to join our brand. Contact us today to learn more about our franchise model and how you can become a part of our success story.\n\nDoc Barnet Management:\n📞 07867777688\n📧 operations@docbarnet.uk"
inputs={[
{ name: "name", type: "text", placeholder: "Your Name", required: true },
{ name: "email", type: "email", placeholder: "Your Email", required: true },
{ name: "phone", type: "tel", placeholder: "Your Phone Number" },
{ name: "company", type: "text", placeholder: "Your Company (Optional)" }
]}
textarea={{
name: "message", placeholder: "Your Message", rows: 5
}}
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3DMGxfgFdRWLXzYqe2HfYt6JE4x/uploaded-1779820625891-kmygfm29.jpg"
mediaAnimation="slide-up"
buttonText="Send Enquiry"
/>
</div>
<div id="footer" data-section="footer">
<FooterMedia
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3DMGxfgFdRWLXzYqe2HfYt6JE4x/uploaded-1778094604107-kwe3q62f.jpg"
logoText="DOC BARNET"
columns={[
{
title: "Services", items: [
{
label: "Gents Hair", href: "#services"},
{
label: "Ladies Cut", href: "#services"},
{
label: "Beard Grooming", href: "#services"},
],
},
{
title: "Company", items: [
{
label: "About Us", href: "#about"},
{
label: "Contact", href: "#contact"},
{
label: "Book Now", href: bookingUrl},
],
},
{
title: "Social", items: [
{
label: "Instagram", href: "https://www.instagram.com/docbarnet?igsh=MWMwdHBnamFibXc3Yw%3D%3D&utm_source=qr"},
{
label: "Facebook", href: "#"},
{
label: "Privacy Policy", href: "#"},
],
},
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -6,12 +6,13 @@ import "@/lib/gsap-setup";
import { ServiceWrapper } from "@/components/ServiceWrapper"; import { ServiceWrapper } from "@/components/ServiceWrapper";
import { getVisualEditScript } from "@/utils/visual-edit-script"; import { getVisualEditScript } from "@/utils/visual-edit-script";
import { Public_Sans } from "next/font/google"; import { Public_Sans } from "next/font/google";
import { Roboto } from "next/font/google";
export const metadata: Metadata = { export const metadata: Metadata = {
title: 'Doc Barnet | Premium Grooming Salon Gloucester', title: "Doc Barnet Grooming Salon | Premium Barber & Hair Salon Gloucester Quays",
description: 'Experience premium barbering, ladies hair, and grooming at Doc Barnet Gloucester Quays. Now open.', description: "Luxury barbering, ladies hair, skin fades, beard grooming, and modern hair styling at Doc Barnet Grooming Salon in Gloucester Quays. EST. 2007. Book online today.",
openGraph: { openGraph: {
"title": "Doc Barnet Grooming Salon", "title": "Doc Barnet Grooming Salon",
"siteName": "Doc Barnet", "siteName": "Doc Barnet",
@@ -19,13 +20,13 @@ export const metadata: Metadata = {
}, },
}; };
const publicSans = Public_Sans({
variable: "--font-public-sans",
subsets: ["latin"],
}); const roboto = Roboto({
const inter = Inter({ variable: "--font-roboto",
variable: "--font-inter",
subsets: ["latin"], subsets: ["latin"],
weight: ["100", "300", "400", "500", "700", "900"],
}); });
export default function RootLayout({ export default function RootLayout({
@@ -36,7 +37,7 @@ export default function RootLayout({
return ( return (
<html lang="en" suppressHydrationWarning> <html lang="en" suppressHydrationWarning>
<ServiceWrapper> <ServiceWrapper>
<body className={`${publicSans.variable} ${inter.variable} antialiased`}> <body className={`${roboto.variable} antialiased`}>
{children} {children}
<script <script

View File

@@ -14,7 +14,7 @@ import ProductCardTwo from '@/components/sections/product/ProductCardTwo';
import TestimonialCardSixteen from '@/components/sections/testimonial/TestimonialCardSixteen'; import TestimonialCardSixteen from '@/components/sections/testimonial/TestimonialCardSixteen';
export default function LandingPage() { export default function LandingPage() {
const bookingUrl = "https://www.fresha.com/book-now/doc-barnet-hair-studio-tzv4uhw7/all-offer?share=true&pId=2750001"; const bookingUrl = "https://tinyurl.com/2kr8jy37";
return ( return (
<ThemeProvider <ThemeProvider
@@ -39,9 +39,13 @@ export default function LandingPage() {
name: "Services", id: "services"}, name: "Services", id: "services"},
{ {
name: "Prices", id: "pricing"}, name: "Prices", id: "pricing"},
{
name: "Franchise", id: "/franchise"},
{ {
name: "Contact", id: "contact"}, name: "Contact", id: "contact"},
]}
{ name: "Blog", id: "/blog" },
]}
brandName="Doc Barnet Grooming Salon" brandName="Doc Barnet Grooming Salon"
button={{ button={{
text: "BOOK NOW", href: bookingUrl}} text: "BOOK NOW", href: bookingUrl}}
@@ -78,17 +82,17 @@ export default function LandingPage() {
{ {
text: "VIEW PRICES", href: "#pricing"}, text: "VIEW PRICES", href: "#pricing"},
]} ]}
imageSrc="http://img.b2bpic.net/free-photo/close-up-details-hairdresser-salon_23-2149205856.jpg" imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3DMGxfgFdRWLXzYqe2HfYt6JE4x/uploaded-1778093237434-05qgab2c.jpg"
imageAlt="Doc Barnet Luxury Salon" imageAlt="Doc Barnet Luxury Salon"
avatars={[ avatars={[
{ {
src: "http://img.b2bpic.net/free-photo/shaving-process-small-dog-sits-table-dog-shaved-by-professional_1157-48807.jpg", alt: "Shaving process"}, src: "https://img.b2bpic.net/free-photo/high-fashion-portrait-young-elegant-blonde-woman-black-wool-hat-wearing-oversize-white-fringe-poncho-with-long-grey-dress_273443-3799.jpg?id=11195909", alt: "Shaving process"},
{ {
src: "http://img.b2bpic.net/free-photo/haircuting-process-small-dog-sits-table-dog-with-professional_1157-48820.jpg", alt: "Haircut process"}, src: "https://img.b2bpic.net/free-photo/fashion-studio-image-two-young-women-stylish-casual-spring-outfit-having-fun-show-tongue-bright-trendy-colors-stylish-hairstyle-with-buns-cool-sunglasses-friends-portrait_273443-1142.jpg?id=9331369", alt: "Haircut process"},
{ {
src: "http://img.b2bpic.net/free-photo/person-creating-online-content-with-their-pets_23-2151420269.jpg", alt: "Creative content"}, src: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3DMGxfgFdRWLXzYqe2HfYt6JE4x/uploaded-1779125338765-fdbqo198.jpg", alt: "Creative content"},
{ {
src: "http://img.b2bpic.net/free-photo/washing-process-small-dog-sits-table-dog-spaying-by-professional_1157-48817.jpg", alt: "Washing process"}, src: "https://img.b2bpic.net/free-photo/three-young-beautiful-smiling-girls-trendy-summer-casual-jeans-clothes-sexy-carefree-women-posing-positive-models-sunglasses_158538-4730.jpg?id=6601657", alt: "Washing process"},
{ {
src: "http://img.b2bpic.net/free-photo/handsome-afro-american-traveler-brown-jacket-hat-with-backpack-stands-studio-isolated-dark-background_613910-6586.jpg", alt: "Stylish traveler"}, src: "http://img.b2bpic.net/free-photo/handsome-afro-american-traveler-brown-jacket-hat-with-backpack-stands-studio-isolated-dark-background_613910-6586.jpg", alt: "Stylish traveler"},
]} ]}
@@ -133,9 +137,9 @@ export default function LandingPage() {
{ {
title: "Gents Haircuts", description: "Precision styling tailored to your unique look.", imageSrc: "http://img.b2bpic.net/free-photo/studio-portrait-fashionable-modern-male-grey-t-shirt_613910-532.jpg", imageAlt: "Gents Haircut"}, title: "Gents Haircuts", description: "Precision styling tailored to your unique look.", imageSrc: "http://img.b2bpic.net/free-photo/studio-portrait-fashionable-modern-male-grey-t-shirt_613910-532.jpg", imageAlt: "Gents Haircut"},
{ {
title: "Ladies Styling", description: "Wash, cut, and blow dry services for sophisticated style.", imageSrc: "http://img.b2bpic.net/free-photo/woman-with-hairdryer-hairbrush_1385-2900.jpg", imageAlt: "Ladies Styling"}, title: "Ladies Styling", description: "Wash, cut, and blow dry services for sophisticated style.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3DMGxfgFdRWLXzYqe2HfYt6JE4x/tmp/hairstyle-holding-hair-drayer-1779125588683-ef4b646b.png", imageAlt: "Ladies Styling"},
{ {
title: "Beard & Facial", description: "Expert beard shaping, hot towel shaves, and facial treatments.", imageSrc: "http://img.b2bpic.net/free-photo/woman-helping-man-applying-facial-mask_23-2148784320.jpg", imageAlt: "Facial treatment"}, title: "Beard & Facial", description: "Expert beard shaping, hot towel shaves, and facial treatments.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3DMGxfgFdRWLXzYqe2HfYt6JE4x/uploaded-1779127917991-ff4pbcfh.jpg", imageAlt: "Facial treatment"},
]} ]}
title="PREMIUM SERVICES" title="PREMIUM SERVICES"
description="Comprehensive grooming and hair solutions for gentlemen and ladies." description="Comprehensive grooming and hair solutions for gentlemen and ladies."
@@ -251,7 +255,7 @@ export default function LandingPage() {
variant: "gradient-bars"}} variant: "gradient-bars"}}
tag="LIMITED OFFER" tag="LIMITED OFFER"
title="20% OFF YOUR FIRST VISIT" title="20% OFF YOUR FIRST VISIT"
description="Join our club and enjoy premium grooming at a special introductory rate." description="TUSDAY ONLY CODE: DOCBARNET20 "
/> />
</div> </div>
@@ -277,7 +281,7 @@ export default function LandingPage() {
<div id="footer" data-section="footer"> <div id="footer" data-section="footer">
<FooterMedia <FooterMedia
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3DMGxfgFdRWLXzYqe2HfYt6JE4x/uploaded-1778093237434-05qgab2c.jpg" imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3DMGxfgFdRWLXzYqe2HfYt6JE4x/uploaded-1778094604107-kwe3q62f.jpg"
logoText="DOC BARNET" logoText="DOC BARNET"
columns={[ columns={[
{ {
@@ -303,7 +307,7 @@ export default function LandingPage() {
{ {
title: "Social", items: [ title: "Social", items: [
{ {
label: "Instagram", href: "#"}, label: "Instagram", href: "https://www.instagram.com/docbarnet?igsh=MWMwdHBnamFibXc3Yw%3D%3D&utm_source=qr"},
{ {
label: "Facebook", href: "#"}, label: "Facebook", href: "#"},
{ {

View File

@@ -24,5 +24,5 @@ h3,
h4, h4,
h5, h5,
h6 { h6 {
font-family: var(--font-public-sans), sans-serif; font-family: var(--font-libre-baskerville), serif;
} }

View File

@@ -10,15 +10,15 @@
--accent: #ffffff; --accent: #ffffff;
--background-accent: #ffffff; */ --background-accent: #ffffff; */
--background: #0a0a0a; --background: #1a1a1a;
--card: #171717; --card: #2e2e2e;
--foreground: #f5f5f5; --foreground: #f0e6d2;
--primary-cta: #C5A059; --primary-cta: #d4af37;
--primary-cta-text: #000000; --primary-cta-text: #000000;
--secondary-cta: #171717; --secondary-cta: #a67c00;
--secondary-cta-text: #f5f5f5; --secondary-cta-text: #f5f5f5;
--accent: #6B4F3C; --accent: #ffd700;
--background-accent: #262626; --background-accent: #0d0d0d;
/* 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);