15 Commits

Author SHA1 Message Date
9faf3d0ff5 Merge version_3 into main
Merge version_3 into main
2026-03-05 18:01:36 +00:00
e7edafbc41 Update src/app/page.tsx 2026-03-05 18:01:32 +00:00
07117ea5e5 Merge version_3 into main
Merge version_3 into main
2026-03-05 17:59:34 +00:00
56f631286a Update src/app/page.tsx 2026-03-05 17:59:29 +00:00
d9632150cb Update src/app/layout.tsx 2026-03-05 17:59:29 +00:00
e6e0388d5c Merge version_2 into main
Merge version_2 into main
2026-03-05 17:51:23 +00:00
2eace87f55 Update theme colors 2026-03-05 17:51:16 +00:00
28714ec16b Merge version_2 into main
Merge version_2 into main
2026-03-05 17:48:22 +00:00
cb990232f3 Update src/app/page.tsx 2026-03-05 17:48:18 +00:00
1e09ff477a Merge version_2 into main
Merge version_2 into main
2026-03-05 17:47:03 +00:00
91f40d5741 Update src/app/styles/variables.css 2026-03-05 17:46:59 +00:00
e9174e2252 Update src/app/styles/base.css 2026-03-05 17:46:59 +00:00
bea56ad91f Update src/app/page.tsx 2026-03-05 17:46:59 +00:00
0e267437f3 Update src/app/layout.tsx 2026-03-05 17:46:58 +00:00
8e182eddaa Merge version_1 into main
Merge version_1 into main
2026-03-05 17:42:57 +00:00
4 changed files with 58 additions and 77 deletions

View File

@@ -1,51 +1,24 @@
import type { Metadata } from "next"; import type { Metadata } from "next";
import { Mulish } from "next/font/google";
import { Inter } from "next/font/google"; import { Inter } from "next/font/google";
import "./globals.css"; import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper"; import "./styles/variables.css";
import Tag from "@/tag/Tag"; import "./styles/base.css";
const mulish = Mulish({ const inter = Inter({ subsets: ["latin"] });
variable: "--font-mulish", subsets: ["latin"],
});
const inter = Inter({
variable: "--font-inter", subsets: ["latin"],
});
export const metadata: Metadata = { export const metadata: Metadata = {
title: "Tendance Vintage - Salon de Coiffure Bordeaux | Luxe & Excellence", description: "Découvrez Tendance Vintage, votre salon de coiffure haut de gamme à Bordeaux. Services experts: balayage, coloration, brushing, lissage. 4.9★ (571 avis). 05 56 72 79 35", keywords: "salon coiffure Bordeaux, coiffeur Bordeaux, balayage, coloration cheveux, brushing, lissage brésilien, soins kératine, taille barbe", metadataBase: new URL("https://tendance-vintage-bordeaux.fr"), title: "Tendance Vintage - Salon de Coiffure à Bordeaux", description: "Salon de coiffure haut de gamme à Bordeaux. Services professionnels de coiffure, coloration, et soins capillaires."};
alternates: {
canonical: "https://tendance-vintage-bordeaux.fr"},
openGraph: {
title: "Tendance Vintage - Salon de Coiffure Luxe à Bordeaux", description: "Salon de coiffure d'exception au cœur de Bordeaux. Services premium: balayage, coloration, brushing. 4.9★ (571 avis)", url: "https://tendance-vintage-bordeaux.fr", siteName: "Tendance Vintage", type: "website", images: [
{
url: "http://img.b2bpic.net/free-photo/two-hairstylers-posing-standing-modern-spacy-beaty-salon_651396-986.jpg", alt: "Tendance Vintage - Salon de Coiffure Bordeaux"},
],
},
twitter: {
card: "summary_large_image", title: "Tendance Vintage - Salon de Coiffure Luxe à Bordeaux", description: "Salon de coiffure d'exception à Bordeaux. Services premium et stylistes experts. 4.9★ (571 avis)", images: ["http://img.b2bpic.net/free-photo/two-hairstylers-posing-standing-modern-spacy-beaty-salon_651396-986.jpg"],
},
robots: {
index: true,
follow: true,
},
};
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="fr">
<ServiceWrapper> <body className={inter.className}>
<body {children}
className={`${mulish.variable} ${inter.variable} antialiased`}
>
<Tag />
{children}
<script <script
dangerouslySetInnerHTML={{ dangerouslySetInnerHTML={{
__html: ` __html: `
@@ -1413,7 +1386,6 @@ export default function RootLayout({
}} }}
/> />
</body> </body>
</ServiceWrapper>
</html> </html>
); );
} }

View File

@@ -15,16 +15,16 @@ import { Heart, Phone, Sparkles } from "lucide-react";
export default function LandingPage() { export default function LandingPage() {
return ( return (
<ThemeProvider <ThemeProvider
defaultButtonVariant="directional-hover" defaultButtonVariant="hover-magnetic"
defaultTextAnimation="entrance-slide" defaultTextAnimation="reveal-blur"
borderRadius="rounded" borderRadius="pill"
contentWidth="mediumLarge" contentWidth="mediumLarge"
sizing="largeSmallSizeMediumTitles" sizing="largeSizeMediumTitles"
background="fluid" background="circleGradient"
cardStyle="gradient-radial" cardStyle="glass-elevated"
primaryButtonStyle="double-inset" primaryButtonStyle="radial-glow"
secondaryButtonStyle="solid" secondaryButtonStyle="glass"
headingFontWeight="extrabold" headingFontWeight="semibold"
> >
<div id="nav" data-section="nav"> <div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay <NavbarLayoutFloatingOverlay
@@ -37,7 +37,7 @@ export default function LandingPage() {
{ name: "Avis", id: "testimonials" }, { name: "Avis", id: "testimonials" },
{ name: "Contact", id: "contact" }, { name: "Contact", id: "contact" },
]} ]}
button={{ text: "Appeler", href: "tel:+33556727935" }} button={{ text: "Appeler", href: "tel:05567279353" }}
/> />
</div> </div>
@@ -46,13 +46,15 @@ export default function LandingPage() {
title="Tendance Vintage" title="Tendance Vintage"
description="Salon de coiffure au cœur de Bordeaux" description="Salon de coiffure au cœur de Bordeaux"
tag="Depuis 2010 | Excellence & Élégance" tag="Depuis 2010 | Excellence & Élégance"
imageSrc="http://img.b2bpic.net/free-photo/two-hairstylers-posing-standing-modern-spacy-beaty-salon_651396-986.jpg" tagAnimation="blur-reveal"
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AXIQ1nqdfSgd3JeWRNW0QbYaXZ/uploaded-1772733679520-7kbanhde.jpg"
imageAlt="Luxury hair salon interior at Tendance Vintage" imageAlt="Luxury hair salon interior at Tendance Vintage"
textPosition="bottom-left" textPosition="bottom-left"
showBlur={true} showBlur={true}
showDimOverlay={true} showDimOverlay={true}
buttonAnimation="blur-reveal"
buttons={[ buttons={[
{ text: "Appeler", href: "tel:+33556727935" }, { text: "Appeler", href: "tel:05567279353" },
{ text: "Itinéraire", href: "https://maps.google.com/?q=204+Rue+Sainte-Catherine,+33000+Bordeaux,+France" }, { text: "Itinéraire", href: "https://maps.google.com/?q=204+Rue+Sainte-Catherine,+33000+Bordeaux,+France" },
]} ]}
/> />
@@ -62,14 +64,15 @@ export default function LandingPage() {
<TestimonialAboutCard <TestimonialAboutCard
tag="À propos de nous" tag="À propos de nous"
tagIcon={Sparkles} tagIcon={Sparkles}
tagAnimation="blur-reveal"
title="Un salon d'exception pour vos cheveux" title="Un salon d'exception pour vos cheveux"
description="Tendance Vintage" description="Tendance Vintage"
subdescription="204 Rue Sainte-Catherine, Bordeaux" subdescription="204 Rue Sainte-Catherine, Bordeaux"
icon={Heart} icon={Heart}
imageSrc="http://img.b2bpic.net/free-photo/skies-snowboard-lounge-area_482257-76730.jpg" imageSrc="http://img.b2bpic.net/free-photo/skies-snowboard-lounge-area_482257-76730.jpg"
imageAlt="Interior view of Tendance Vintage salon" imageAlt="Interior view of Tendance Vintage salon"
mediaAnimation="slide-up" mediaAnimation="blur-reveal"
useInvertedBackground={true} useInvertedBackground={false}
/> />
</div> </div>
@@ -78,7 +81,7 @@ export default function LandingPage() {
title="Nos Services Experts" title="Nos Services Experts"
description="Découvrez notre gamme complète de services capillaires haut de gamme, conçus pour sublimer vos cheveux" description="Découvrez notre gamme complète de services capillaires haut de gamme, conçus pour sublimer vos cheveux"
tag="Expertise & Qualité" tag="Expertise & Qualité"
tagAnimation="slide-up" tagAnimation="blur-reveal"
features={[ features={[
{ {
id: "1", title: "Balayage", tags: ["Coloration", "Tendance"], id: "1", title: "Balayage", tags: ["Coloration", "Tendance"],
@@ -105,9 +108,10 @@ export default function LandingPage() {
id: "8", title: "Taille de Barbe", tags: ["Homme", "Précision"], id: "8", title: "Taille de Barbe", tags: ["Homme", "Précision"],
imageSrc: "http://img.b2bpic.net/free-photo/professional-hairdresser-modeling-beard-barbershop-close-up-photo_613910-18422.jpg", imageAlt: "Professional beard trimming service"}, imageSrc: "http://img.b2bpic.net/free-photo/professional-hairdresser-modeling-beard-barbershop-close-up-photo_613910-18422.jpg", imageAlt: "Professional beard trimming service"},
]} ]}
animationType="slide-up" animationType="blur-reveal"
textboxLayout="default" textboxLayout="default"
useInvertedBackground={false} useInvertedBackground={true}
buttonAnimation="blur-reveal"
/> />
</div> </div>
@@ -116,7 +120,7 @@ export default function LandingPage() {
title="Notre Galerie" title="Notre Galerie"
description="Découvrez les réalisations de nos stylistes experts à travers une sélection de nos plus beaux travaux" description="Découvrez les réalisations de nos stylistes experts à travers une sélection de nos plus beaux travaux"
tag="Portfolio" tag="Portfolio"
tagAnimation="slide-up" tagAnimation="blur-reveal"
products={[ products={[
{ {
id: "1", name: "Coupe & Coloration", price: "Inspiration", imageSrc: "http://img.b2bpic.net/free-photo/woman-preparing-girl-haircut-procedure_23-2147769867.jpg", imageAlt: "Professional haircut and color work"}, id: "1", name: "Coupe & Coloration", price: "Inspiration", imageSrc: "http://img.b2bpic.net/free-photo/woman-preparing-girl-haircut-procedure_23-2147769867.jpg", imageAlt: "Professional haircut and color work"},
@@ -128,9 +132,10 @@ export default function LandingPage() {
id: "4", name: "Transformation", price: "Luxe", imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-woman-black-sweater-standing-posing_114579-81883.jpg?_wi=2", imageAlt: "Complete hair transformation result"}, id: "4", name: "Transformation", price: "Luxe", imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-woman-black-sweater-standing-posing_114579-81883.jpg?_wi=2", imageAlt: "Complete hair transformation result"},
]} ]}
gridVariant="two-columns-alternating-heights" gridVariant="two-columns-alternating-heights"
animationType="slide-up" animationType="blur-reveal"
textboxLayout="default" textboxLayout="default"
useInvertedBackground={true} useInvertedBackground={false}
buttonAnimation="blur-reveal"
/> />
</div> </div>
@@ -139,7 +144,7 @@ export default function LandingPage() {
title="Témoignages Clients" title="Témoignages Clients"
description="Découvrez ce que nos clients satisfaits pensent de nos services et de notre expertise" description="Découvrez ce que nos clients satisfaits pensent de nos services et de notre expertise"
tag="4.9 ⭐ / 571 avis" tag="4.9 ⭐ / 571 avis"
tagAnimation="slide-up" tagAnimation="blur-reveal"
testimonials={[ testimonials={[
{ {
id: "1", name: "Marie Dubois", role: "Professionnelle", testimonial: "Tendance Vintage est un véritable havre de paix. Les stylistes sont exceptionnels et comprennent mes besoins. Je recommande vivement !", imageSrc: "http://img.b2bpic.net/free-photo/casual-smile-street-style-background-spring_1139-777.jpg", imageAlt: "Client testimonial - Marie Dubois", icon: Heart, id: "1", name: "Marie Dubois", role: "Professionnelle", testimonial: "Tendance Vintage est un véritable havre de paix. Les stylistes sont exceptionnels et comprennent mes besoins. Je recommande vivement !", imageSrc: "http://img.b2bpic.net/free-photo/casual-smile-street-style-background-spring_1139-777.jpg", imageAlt: "Client testimonial - Marie Dubois", icon: Heart,
@@ -160,10 +165,11 @@ export default function LandingPage() {
id: "6", name: "Monique Leclerc", role: "Médecin", testimonial: "Service impeccable, stylistes talentueux et ambiance luxueuse. C'est mon endroit préféré pour me sentir bien. Vivement la prochaine visite !", imageSrc: "http://img.b2bpic.net/free-photo/smiling-middle-aged-attractive-woman-showing-thumb-up-outdoors_1262-12526.jpg", imageAlt: "Client testimonial - Monique Leclerc", icon: Heart, id: "6", name: "Monique Leclerc", role: "Médecin", testimonial: "Service impeccable, stylistes talentueux et ambiance luxueuse. C'est mon endroit préféré pour me sentir bien. Vivement la prochaine visite !", imageSrc: "http://img.b2bpic.net/free-photo/smiling-middle-aged-attractive-woman-showing-thumb-up-outdoors_1262-12526.jpg", imageAlt: "Client testimonial - Monique Leclerc", icon: Heart,
}, },
]} ]}
animationType="slide-up" animationType="blur-reveal"
textboxLayout="default" textboxLayout="default"
useInvertedBackground={false} useInvertedBackground={true}
carouselMode="auto" carouselMode="auto"
buttonAnimation="blur-reveal"
/> />
</div> </div>
@@ -172,7 +178,7 @@ export default function LandingPage() {
title="Nos Succès" title="Nos Succès"
description="Des chiffres qui parlent de notre engagement envers l'excellence" description="Des chiffres qui parlent de notre engagement envers l'excellence"
tag="Performance" tag="Performance"
tagAnimation="slide-up" tagAnimation="blur-reveal"
metrics={[ metrics={[
{ id: "1", value: "571", description: "Avis Clients Satisfaits" }, { id: "1", value: "571", description: "Avis Clients Satisfaits" },
{ id: "2", value: "4.9", description: "Note Moyenne ⭐" }, { id: "2", value: "4.9", description: "Note Moyenne ⭐" },
@@ -180,9 +186,10 @@ export default function LandingPage() {
{ id: "4", value: "1000+", description: "Clients Réguliers" }, { id: "4", value: "1000+", description: "Clients Réguliers" },
]} ]}
gridVariant="uniform-all-items-equal" gridVariant="uniform-all-items-equal"
animationType="slide-up" animationType="blur-reveal"
textboxLayout="default" textboxLayout="default"
useInvertedBackground={true} useInvertedBackground={false}
buttonAnimation="blur-reveal"
/> />
</div> </div>
@@ -190,12 +197,14 @@ export default function LandingPage() {
<ContactCTA <ContactCTA
tag="Nous Contacter" tag="Nous Contacter"
tagIcon={Phone} tagIcon={Phone}
tagAnimation="blur-reveal"
title="Prêt à transformer vos cheveux ?" title="Prêt à transformer vos cheveux ?"
description="Réservez votre rendez-vous dès aujourd'hui ou visitez-nous au cœur de Bordeaux. Nos stylistes experts vous accueillent du lundi au samedi." description="Réservez votre rendez-vous dès aujourd'hui ou visitez-nous au cœur de Bordeaux. Nos stylistes experts vous accueillent du lundi au samedi."
buttons={[ buttons={[
{ text: "Appeler", href: "tel:+33556727935" }, { text: "Appeler", href: "tel:05567279353" },
{ text: "Itinéraire", href: "https://maps.google.com/?q=204+Rue+Sainte-Catherine,+33000+Bordeaux,+France" }, { text: "Itinéraire", href: "https://maps.google.com/?q=204+Rue+Sainte-Catherine,+33000+Bordeaux,+France" },
]} ]}
buttonAnimation="blur-reveal"
background={{ variant: "plain" }} background={{ variant: "plain" }}
useInvertedBackground={false} useInvertedBackground={false}
/> />
@@ -215,7 +224,7 @@ export default function LandingPage() {
}, },
{ {
title: "Contact", items: [ title: "Contact", items: [
{ label: "Téléphone: 05 56 72 79 35", href: "tel:+33556727935" }, { label: "Téléphone: 05 56 72 79 35", href: "tel:05567279353" },
{ label: "Adresse: 204 Rue Sainte-Catherine, 33000 Bordeaux", href: "https://maps.google.com/?q=204+Rue+Sainte-Catherine,+33000+Bordeaux,+France" }, { label: "Adresse: 204 Rue Sainte-Catherine, 33000 Bordeaux", href: "https://maps.google.com/?q=204+Rue+Sainte-Catherine,+33000+Bordeaux,+France" },
{ label: "Facebook", href: "https://facebook.com" }, { label: "Facebook", href: "https://facebook.com" },
], ],

View File

@@ -11,7 +11,7 @@ html {
body { body {
background-color: var(--background); background-color: var(--background);
color: var(--foreground); color: var(--foreground);
font-family: var(--font-inter), sans-serif; font-family: var(--font-poppins), sans-serif;
position: relative; position: relative;
min-height: 100vh; min-height: 100vh;
overscroll-behavior: none; overscroll-behavior: none;
@@ -24,5 +24,5 @@ h3,
h4, h4,
h5, h5,
h6 { h6 {
font-family: var(--font-mulish), sans-serif; font-family: var(--font-poppins), sans-serif;
} }

View File

@@ -10,15 +10,15 @@
--accent: #ffffff; --accent: #ffffff;
--background-accent: #ffffff; */ --background-accent: #ffffff; */
--background: #e3deea; --background: #ffffff;
--card: #ffffff; --card: #f9f9f9;
--foreground: #27231f; --foreground: #000612e6;
--primary-cta: #27231f; --primary-cta: #15479c;
--primary-cta-text: #e3deea; --primary-cta-text: #ffffff;
--secondary-cta: #ffffff; --secondary-cta: #f9f9f9;
--secondary-cta-text: #27231f; --secondary-cta-text: #000612e6;
--accent: #c68a62; --accent: #e2e2e2;
--background-accent: #c68a62; --background-accent: #c4c4c4;
/* 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);