9 Commits

Author SHA1 Message Date
911df72d3a Update src/app/styles/variables.css 2026-03-04 11:20:24 +00:00
8497a6caee Update src/app/page.tsx 2026-03-04 11:20:23 +00:00
ed18b1129d Merge version_2 into main
Merge version_2 into main
2026-03-04 11:15:57 +00:00
1968c24e8b Update src/app/page.tsx 2026-03-04 11:15:52 +00:00
ab076dc074 Update src/app/layout.tsx 2026-03-04 11:15:52 +00:00
b9380ece33 Merge version_1 into main
Merge version_1 into main
2026-03-04 11:14:59 +00:00
671f77c42d Merge version_1 into main
Merge version_1 into main
2026-03-04 11:13:53 +00:00
79632383aa Merge version_1 into main
Merge version_1 into main
2026-03-04 11:12:22 +00:00
151d5c71e9 Merge version_1 into main
Merge version_1 into main
2026-03-04 11:11:00 +00:00
3 changed files with 42 additions and 84 deletions

View File

@@ -1,53 +1,27 @@
import type { Metadata } from "next"; import type { Metadata } from "next";
import { Figtree } from "next/font/google"; import { Geist, Geist_Mono } from "next/font/google";
import { Halant } from "next/font/google";
import { Inter } from "next/font/google";
import "./globals.css"; import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
const figtree = Figtree({ const geist = Geist({
variable: "--font-figtree", subsets: ["latin"], variable: "--font-geist-sans", subsets: ["latin"],
}); });
const halant = Halant({ const geistMono = Geist_Mono({
variable: "--font-halant", subsets: ["latin"], variable: "--font-geist-mono", subsets: ["latin"],
weight: ["300", "400", "500", "600", "700"],
});
const inter = Inter({
variable: "--font-inter", subsets: ["latin"],
}); });
export const metadata: Metadata = { export const metadata: Metadata = {
title: "XCLUSIVE Barbershop Miami | Luxury Grooming", description: "Miami's #1 luxury barbershop. Premium haircuts, beard services, and grooming experiences for discerning professionals. 5-star rated. Book online.", keywords: "luxury barbershop Miami, premium grooming, executive haircuts, beard trimming, upscale salon, men's grooming", robots: { title: "Create Next App", description: "Generated by create next app"};
index: true,
follow: true,
},
openGraph: {
title: "XCLUSIVE Barbershop Miami | Luxury Grooming Experience", description: "Step into luxury at Miami's premier barbershop. Expert craftsmanship, exclusive atmosphere, 5-star experience.", url: "https://xclusivebarbershop.com", siteName: "XCLUSIVE Barbershop", type: "website", images: [
{
url: "http://img.b2bpic.net/free-photo/portrait-stylish-male-who-himself-shaving-while-sitting-barber-chair-hairdressing-salon_613910-18629.jpg", alt: "XCLUSIVE Barbershop Luxury Grooming"},
],
},
twitter: {
card: "summary_large_image", title: "XCLUSIVE Barbershop | Miami's Luxury Grooming Destination", description: "Premium barbershop with expert barbers, exclusive atmosphere, and impeccable service.", images: ["http://img.b2bpic.net/free-photo/portrait-stylish-male-who-himself-shaving-while-sitting-barber-chair-hairdressing-salon_613910-18629.jpg"],
},
};
export default function RootLayout({ export default function RootLayout({
children, children,
}: Readonly<{ }: {
children: React.ReactNode; children: React.ReactNode;
}>) { }) {
return ( return (
<html lang="en" suppressHydrationWarning> <html lang="en">
<ServiceWrapper> <body className={`${geist.variable} ${geistMono.variable} antialiased`}>
<body {children}
className={`${figtree.variable} ${halant.variable} ${inter.variable} antialiased`}
>
<Tag />
{children}
<script <script
dangerouslySetInnerHTML={{ dangerouslySetInnerHTML={{
@@ -1416,7 +1390,6 @@ export default function RootLayout({
}} }}
/> />
</body> </body>
</ServiceWrapper>
</html> </html>
); );
} }

View File

@@ -81,44 +81,36 @@ export default function LandingPage() {
title: "Executive Haircuts", description: "Precision cuts tailored to your style. Classic fades, modern disconnects, and signature XCLUSIVE shapes. Every cut is a masterpiece.", icon: Scissors, title: "Executive Haircuts", description: "Precision cuts tailored to your style. Classic fades, modern disconnects, and signature XCLUSIVE shapes. Every cut is a masterpiece.", icon: Scissors,
mediaItems: [ mediaItems: [
{ {
imageSrc: "http://img.b2bpic.net/free-photo/close-up-image-female-hairdresser-washing-bearded-men-s-hair-before-haircut-saloon_613910-5446.jpg?_wi=1", imageAlt: "Executive haircut styling" imageSrc: "http://img.b2bpic.net/free-photo/close-up-image-female-hairdresser-washing-bearded-men-s-hair-before-haircut-saloon_613910-5446.jpg?_wi=1", imageAlt: "Executive haircut styling"},
},
{ {
imageSrc: "http://img.b2bpic.net/free-photo/close-up-image-female-hairdresser-washing-bearded-men-s-hair-before-haircut-saloon_613910-5446.jpg?_wi=2", imageAlt: "Professional barber technique" imageSrc: "http://img.b2bpic.net/free-photo/close-up-image-female-hairdresser-washing-bearded-men-s-hair-before-haircut-saloon_613910-5446.jpg?_wi=2", imageAlt: "Professional barber technique"},
},
], ],
}, },
{ {
title: "Luxury Beard Services", description: "Full beard sculpting, precise trims, and conditioning treatments. Our barbers shape beards with artistry and attention to detail.", icon: Sparkles, title: "Luxury Beard Services", description: "Full beard sculpting, precise trims, and conditioning treatments. Our barbers shape beards with artistry and attention to detail.", icon: Sparkles,
mediaItems: [ mediaItems: [
{ {
imageSrc: "http://img.b2bpic.net/free-photo/handsome-hipster-bearded-male-sitting-armchair-barber-shop-while-hairdresser-shaves-his-beard-with-dangerous-razor_613910-18507.jpg?_wi=1", imageAlt: "Beard styling and grooming" imageSrc: "http://img.b2bpic.net/free-photo/handsome-hipster-bearded-male-sitting-armchair-barber-shop-while-hairdresser-shaves-his-beard-with-dangerous-razor_613910-18507.jpg?_wi=1", imageAlt: "Beard styling and grooming"},
},
{ {
imageSrc: "http://img.b2bpic.net/free-photo/handsome-hipster-bearded-male-sitting-armchair-barber-shop-while-hairdresser-shaves-his-beard-with-dangerous-razor_613910-18507.jpg?_wi=2", imageAlt: "Premium beard trim" imageSrc: "http://img.b2bpic.net/free-photo/handsome-hipster-bearded-male-sitting-armchair-barber-shop-while-hairdresser-shaves-his-beard-with-dangerous-razor_613910-18507.jpg?_wi=2", imageAlt: "Premium beard trim"},
},
], ],
}, },
{ {
title: "Hot Towel Shave", description: "The ultimate traditional experience. Straight razor shave with premium products, hot towel treatments, and skin care—pure indulgence.", icon: Zap, title: "Hot Towel Shave", description: "The ultimate traditional experience. Straight razor shave with premium products, hot towel treatments, and skin care—pure indulgence.", icon: Zap,
mediaItems: [ mediaItems: [
{ {
imageSrc: "http://img.b2bpic.net/free-photo/close-up-image-female-hairdresser-washing-bearded-men-s-hair-before-haircut-saloon_613910-5446.jpg?_wi=3", imageAlt: "Hot towel shave experience" imageSrc: "http://img.b2bpic.net/free-photo/close-up-image-female-hairdresser-washing-bearded-men-s-hair-before-haircut-saloon_613910-5446.jpg?_wi=3", imageAlt: "Hot towel shave experience"},
},
{ {
imageSrc: "http://img.b2bpic.net/free-photo/close-up-image-female-hairdresser-washing-bearded-men-s-hair-before-haircut-saloon_613910-5446.jpg?_wi=4", imageAlt: "Premium shaving service" imageSrc: "http://img.b2bpic.net/free-photo/close-up-image-female-hairdresser-washing-bearded-men-s-hair-before-haircut-saloon_613910-5446.jpg?_wi=4", imageAlt: "Premium shaving service"},
},
], ],
}, },
{ {
title: "Grooming Packages", description: "Bundle services for maximum value. Haircut + beard sculpt + hot towel shave. Designed for the discerning gentleman.", icon: Package, title: "Grooming Packages", description: "Bundle services for maximum value. Haircut + beard sculpt + hot towel shave. Designed for the discerning gentleman.", icon: Package,
mediaItems: [ mediaItems: [
{ {
imageSrc: "http://img.b2bpic.net/free-photo/handsome-hipster-bearded-male-sitting-armchair-barber-shop-while-hairdresser-shaves-his-beard-with-dangerous-razor_613910-18507.jpg?_wi=3", imageAlt: "Complete grooming package" imageSrc: "http://img.b2bpic.net/free-photo/handsome-hipster-bearded-male-sitting-armchair-barber-shop-while-hairdresser-shaves-his-beard-with-dangerous-razor_613910-18507.jpg?_wi=3", imageAlt: "Complete grooming package"},
},
{ {
imageSrc: "http://img.b2bpic.net/free-photo/handsome-hipster-bearded-male-sitting-armchair-barber-shop-while-hairdresser-shaves-his-beard-with-dangerous-razor_613910-18507.jpg?_wi=4", imageAlt: "Full grooming experience" imageSrc: "http://img.b2bpic.net/free-photo/handsome-hipster-bearded-male-sitting-armchair-barber-shop-while-hairdresser-shaves-his-beard-with-dangerous-razor_613910-18507.jpg?_wi=4", imageAlt: "Full grooming experience"},
},
], ],
}, },
]} ]}
@@ -157,28 +149,22 @@ export default function LandingPage() {
testimonials={[ testimonials={[
{ {
id: "1", name: "Marcus Thompson", role: "CEO", company: "Tech Innovations Miami", rating: 5, id: "1", name: "Marcus Thompson", role: "CEO", company: "Tech Innovations Miami", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg?_wi=1", imageAlt: "Marcus Thompson testimonial" imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg?_wi=1", imageAlt: "Marcus Thompson testimonial"},
},
{ {
id: "2", name: "David Chen", role: "Executive VP", company: "Premium Ventures", rating: 5, id: "2", name: "David Chen", role: "Executive VP", company: "Premium Ventures", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg?_wi=2", imageAlt: "David Chen testimonial" imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg?_wi=2", imageAlt: "David Chen testimonial"},
},
{ {
id: "3", name: "James Rodriguez", role: "Entrepreneur", company: "Coastal Hospitality Group", rating: 5, id: "3", name: "James Rodriguez", role: "Entrepreneur", company: "Coastal Hospitality Group", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg?_wi=3", imageAlt: "James Rodriguez testimonial" imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg?_wi=3", imageAlt: "James Rodriguez testimonial"},
},
{ {
id: "4", name: "Alexander King", role: "Entertainment Manager", company: "Prestige Events", rating: 5, id: "4", name: "Alexander King", role: "Entertainment Manager", company: "Prestige Events", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg?_wi=4", imageAlt: "Alexander King testimonial" imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg?_wi=4", imageAlt: "Alexander King testimonial"},
},
{ {
id: "5", name: "Christopher Lee", role: "Financial Advisor", company: "Wealth Management Partners", rating: 5, id: "5", name: "Christopher Lee", role: "Financial Advisor", company: "Wealth Management Partners", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg?_wi=5", imageAlt: "Christopher Lee testimonial" imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg?_wi=5", imageAlt: "Christopher Lee testimonial"},
},
{ {
id: "6", name: "Michael Santos", role: "Business Owner", company: "Santos Luxury Goods", rating: 5, id: "6", name: "Michael Santos", role: "Business Owner", company: "Santos Luxury Goods", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg?_wi=6", imageAlt: "Michael Santos testimonial" imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg?_wi=6", imageAlt: "Michael Santos testimonial"},
},
]} ]}
gridVariant="uniform-all-items-equal" gridVariant="uniform-all-items-equal"
animationType="slide-up" animationType="slide-up"
@@ -195,8 +181,7 @@ export default function LandingPage() {
tagIcon={Star} tagIcon={Star}
tagAnimation="slide-up" tagAnimation="slide-up"
names={[ names={[
"Miami Luxury Magazine", "South Beach Style", "Elite Miami", "The Miami Herald", "Robb Report", "Forbes Miami", "Luxury Grooming Co.", "Men's Journal Miami" "Miami Luxury Magazine", "South Beach Style", "Elite Miami", "The Miami Herald", "Robb Report", "Forbes Miami", "Luxury Grooming Co.", "Men's Journal Miami"]}
]}
textboxLayout="default" textboxLayout="default"
useInvertedBackground={false} useInvertedBackground={false}
speed={40} speed={40}
@@ -218,7 +203,7 @@ export default function LandingPage() {
mediaAnimation="slide-up" mediaAnimation="slide-up"
mediaPosition="right" mediaPosition="right"
inputPlaceholder="Enter your email" inputPlaceholder="Enter your email"
buttonText="Subscribe" buttonText="Get Exclusive Access"
termsText="We respect your privacy. Unsubscribe anytime. Expect curated grooming tips and exclusive offers." termsText="We respect your privacy. Unsubscribe anytime. Expect curated grooming tips and exclusive offers."
onSubmit={(email: string) => console.log("Newsletter signup:", email)} onSubmit={(email: string) => console.log("Newsletter signup:", email)}
/> />

View File

@@ -2,23 +2,23 @@
/* Base units */ /* Base units */
/* --vw is set by ThemeProvider */ /* --vw is set by ThemeProvider */
/* --background: #fbfaff;; /* --background: #000000;;
--card: #f7f5ff;; --card: #1a1a1a;;
--foreground: #0f0022;; --foreground: #ffffff;;
--primary-cta: #8b5cf6;; --primary-cta: #ff0000;;
--secondary-cta: #ffffff;; --secondary-cta: #0066ff;;
--accent: #d8cef5;; --accent: #ff0000;;
--background-accent: #c4a8f9;; */ --background-accent: #0066ff;; */
--background: #fbfaff;; --background: #000000;;
--card: #f7f5ff;; --card: #1a1a1a;;
--foreground: #0f0022;; --foreground: #ffffff;;
--primary-cta: #8b5cf6;; --primary-cta: #ff0000;;
--primary-cta-text: #fbfaff;; --primary-cta-text: #fbfaff;;
--secondary-cta: #ffffff;; --secondary-cta: #0066ff;;
--secondary-cta-text: #0f0022;; --secondary-cta-text: #0f0022;;
--accent: #d8cef5;; --accent: #ff0000;;
--background-accent: #c4a8f9;; --background-accent: #0066ff;;
/* 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);