Merge version_2 into main #2

Merged
bender merged 2 commits from version_2 into main 2026-03-04 11:42:13 +00:00
2 changed files with 13 additions and 36 deletions

View File

@@ -1,51 +1,28 @@
import type { Metadata } from "next";
import { Public_Sans } from "next/font/google";
import { Inter } from "next/font/google";
import { Geist, Geist_Mono } from "next/font/google";
import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
const publicSans = Public_Sans({
variable: "--font-public-sans", subsets: ["latin"],
const geist = Geist({
variable: "--font-geist-sans", subsets: ["latin"],
});
const inter = Inter({
variable: "--font-inter", subsets: ["latin"],
const geistMono = Geist_Mono({
variable: "--font-geist-mono", subsets: ["latin"],
});
export const metadata: Metadata = {
title: "Luxe Salon | Professional Hair & Beauty Services", description: "Modern unisex salon offering professional haircuts, styling, nail art, makeup, and beauty treatments. Book your appointment today.", keywords: "salon, haircut, nail art, makeup, beauty services, styling, professional salon, unisex salon", metadataBase: new URL("https://example.com"),
alternates: {
canonical: "https://example.com"},
openGraph: {
title: "Luxe Salon | Professional Hair & Beauty Services", description: "Professional haircuts, styling, nail art, makeup, and beauty treatments in a welcoming, inclusive environment.", url: "https://example.com", siteName: "Luxe Salon", type: "website", images: [
{
url: "http://img.b2bpic.net/free-photo/brunette-woman-with-mobile-phone-getting-her-hair-done_23-2148108788.jpg", alt: "Luxury salon interior"},
],
},
twitter: {
card: "summary_large_image", title: "Luxe Salon | Professional Hair & Beauty Services", description: "Book your beauty appointment at our professional unisex salon.", images: ["http://img.b2bpic.net/free-photo/brunette-woman-with-mobile-phone-getting-her-hair-done_23-2148108788.jpg"],
},
robots: {
index: true,
follow: true,
},
};
title: "Luxe Salon", description: "Professional haircuts, styling, nail art, makeup, and beauty treatments"};
export default function RootLayout({
children,
}: Readonly<{
}: {
children: React.ReactNode;
}>) {
}) {
return (
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body
className={`${publicSans.variable} ${inter.variable} antialiased`}
>
<Tag />
{children}
<html lang="en">
<body className={`${geist.variable} ${geistMono.variable} antialiased`}>
{children}
<script
dangerouslySetInnerHTML={{
__html: `
@@ -1413,7 +1390,6 @@ export default function RootLayout({
}}
/>
</body>
</ServiceWrapper>
</html>
);
}

View File

@@ -99,6 +99,7 @@ export default function LandingPage() {
tagAnimation="slide-up"
textboxLayout="default"
useInvertedBackground={false}
cardClassName="group relative overflow-hidden rounded-lg border border-white/10 bg-gradient-to-br from-white/5 to-white/1 p-6 backdrop-blur-sm transition-all duration-300 hover:shadow-lg hover:shadow-primary-cta/20 before:absolute before:inset-0 before:-translate-y-1 before:bg-gradient-to-b before:from-white/20 before:to-transparent before:opacity-0 before:transition-all before:duration-500 hover:before:translate-y-0 hover:before:opacity-100 after:absolute after:inset-x-0 after:top-0 after:h-px after:bg-gradient-to-r after:from-transparent after:via-white/50 after:to-transparent after:opacity-0 after:transition-opacity after:duration-300 hover:after:opacity-100 flex flex-col justify-between"
/>
</div>