7 Commits

Author SHA1 Message Date
2eace87f55 Update theme colors 2026-03-05 17:51:16 +00:00
cb990232f3 Update src/app/page.tsx 2026-03-05 17:48:18 +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 51 additions and 41 deletions

View File

@@ -1,16 +1,17 @@
import type { Metadata } from "next"; import type { Metadata } from "next";
import { Mulish } from "next/font/google"; import { Poppins } from "next/font/google";
import { Inter } from "next/font/google"; import { Manrope } from "next/font/google";
import "./globals.css"; import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper"; import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag"; import Tag from "@/tag/Tag";
const mulish = Mulish({ const poppins = Poppins({
variable: "--font-mulish", subsets: ["latin"], variable: "--font-poppins", subsets: ["latin"],
weight: ["100", "200", "300", "400", "500", "600", "700", "800", "900"],
}); });
const inter = Inter({ const manrope = Manrope({
variable: "--font-inter", subsets: ["latin"], variable: "--font-manrope", subsets: ["latin"],
}); });
export const metadata: Metadata = { export const metadata: Metadata = {
@@ -41,7 +42,7 @@ export default function RootLayout({
<html lang="en" suppressHydrationWarning> <html lang="en" suppressHydrationWarning>
<ServiceWrapper> <ServiceWrapper>
<body <body
className={`${mulish.variable} ${inter.variable} antialiased`} className={`${poppins.variable} ${manrope.variable} antialiased`}
> >
<Tag /> <Tag />
{children} {children}

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
@@ -46,11 +46,13 @@ 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"
tagAnimation="blur-reveal"
imageSrc="http://img.b2bpic.net/free-photo/two-hairstylers-posing-standing-modern-spacy-beaty-salon_651396-986.jpg" imageSrc="http://img.b2bpic.net/free-photo/two-hairstylers-posing-standing-modern-spacy-beaty-salon_651396-986.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:+33556727935" },
{ 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:+33556727935" },
{ 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}
/> />

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);