11 Commits

Author SHA1 Message Date
32ce3fd308 Update src/app/page.tsx 2026-04-23 21:07:41 +00:00
e152cbfbf5 Merge version_3 into main
Merge version_3 into main
2026-04-23 21:05:16 +00:00
846faa74ef Update theme fonts 2026-04-23 21:05:10 +00:00
c11357c5fc Update theme fonts 2026-04-23 21:05:10 +00:00
4df22e2cea Merge version_3 into main
Merge version_3 into main
2026-04-23 21:03:11 +00:00
c49888827f Update src/app/page.tsx 2026-04-23 21:03:07 +00:00
fba5d05279 Merge version_2 into main
Merge version_2 into main
2026-04-23 19:57:32 +00:00
c3a988ef17 Update src/app/page.tsx 2026-04-23 19:57:29 +00:00
b00bc90751 Merge version_2 into main
Merge version_2 into main
2026-04-23 19:57:04 +00:00
9ac2370792 Update src/app/page.tsx 2026-04-23 19:56:58 +00:00
167b3acb28 Merge version_1 into main
Merge version_1 into main
2026-04-23 19:50:14 +00:00
3 changed files with 129 additions and 181 deletions

View File

@@ -7,6 +7,7 @@ import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
import { getVisualEditScript } from "@/utils/visual-edit-script";
import { Inter_Tight } from "next/font/google";
import { Public_Sans } from "next/font/google";
@@ -19,10 +20,14 @@ export const metadata: Metadata = {
},
};
const interTight = Inter_Tight({
variable: "--font-inter-tight",
const publicSans = Public_Sans({
variable: "--font-public-sans",
subsets: ["latin"],
});
const inter = Inter({
variable: "--font-inter",
subsets: ["latin"],
weight: ["100", "200", "300", "400", "500", "600", "700", "800", "900"],
});
export default function RootLayout({
@@ -33,7 +38,7 @@ export default function RootLayout({
return (
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body className={`${interTight.variable} antialiased`}>
<body className={`${publicSans.variable} ${inter.variable} antialiased`}>
<Tag />
{children}
<script

View File

@@ -10,7 +10,7 @@ import HeroBillboardRotatedCarousel from '@/components/sections/hero/HeroBillboa
import MetricCardOne from '@/components/sections/metrics/MetricCardOne';
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
import ProductCardOne from '@/components/sections/product/ProductCardOne';
import { Award, CheckCircle, Clock, Coffee, MapPin, ShieldCheck, Truck, Wheat } from "lucide-react";
import { Award, CheckCircle, Clock, Coffee, MapPin, Phone, ShieldCheck, Truck } from "lucide-react";
export default function LandingPage() {
return (
@@ -24,189 +24,132 @@ export default function LandingPage() {
cardStyle="inset"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="radial-glow"
headingFontWeight="light"
headingFontWeight="medium"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarStyleApple
navItems={[
{
name: "Accueil", id: "hero"},
{
name: "À propos", id: "about"},
{
name: "Produits", id: "products"},
{
name: "Contact", id: "contact"},
]}
brandName="L'Atelier de la Place"
/>
</div>
<div className="fixed bottom-6 right-6 z-50">
<a href="tel:+33784943226" className="flex items-center gap-2 bg-primary text-primary-foreground px-6 py-3 rounded-full shadow-lg hover:scale-105 transition-transform font-semibold">
<Phone className="w-5 h-5" />
<span>Commander par téléphone</span>
</a>
</div>
<div id="hero" data-section="hero">
<HeroBillboardRotatedCarousel
background={{
variant: "rotated-rays-static"}}
title="L'Atelier de la Place"
description="Boulangerie artisanale à Saint-Étienne. Produits faits maison chaque jour avec passion et farine de qualité."
buttons={[
{
text: "Appeler pour commander", href: "tel:+33400000000"},
]}
carouselItems={[
{
id: "h1", imageSrc: "http://img.b2bpic.net/free-photo/top-view-rustic-bread-with-seeds_23-2148695486.jpg", imageAlt: "Pain frais rustique de la boulangerie"},
{
id: "h2", imageSrc: "http://img.b2bpic.net/free-photo/top-view-homemade-bread-with-milk-jam_23-2148566693.jpg", imageAlt: "Baguette tradition française croustillante"},
{
id: "h3", imageSrc: "http://img.b2bpic.net/free-photo/croissant-with-jam-white-cutting-board-flat-lay_176474-8182.jpg", imageAlt: "Viennoiseries dorées au four"},
{
id: "h4", imageSrc: "http://img.b2bpic.net/free-photo/homemade-delicious-rustic-summer-berry-tartles_114579-11156.jpg", imageAlt: "Pâtisseries artisanales raffinées"},
{
id: "h5", imageSrc: "http://img.b2bpic.net/free-photo/close-up-almonds-cherry-tomatoes-fig-slices-healthy-hot-dogs-with-chequered-napkin-white-backdrop_23-2147956764.jpg", imageAlt: "Snacking frais fait maison"},
{
id: "h6", imageSrc: "http://img.b2bpic.net/free-photo/bread-slices-marble-piece-towel_114579-21970.jpg", imageAlt: "Pains aux céréales de tradition"},
]}
/>
</div>
<div id="nav" data-section="nav">
<NavbarStyleApple
navItems={[
{ name: "Accueil", id: "hero" },
{ name: "À propos", id: "about" },
{ name: "Produits", id: "products" },
{ name: "Contact", id: "contact" },
]}
brandName="L'Atelier de la Place"
/>
</div>
<div id="about" data-section="about">
<AboutMetric
useInvertedBackground={true}
title="Le Savoir-faire Artisanal"
metrics={[
{
icon: Award,
label: "Qualité", value: "100% Artisanal"},
{
icon: Clock,
label: "Frais", value: "Fait maison"},
{
icon: MapPin,
label: "Lieu", value: "Saint-Étienne"},
]}
metricsAnimation="blur-reveal"
/>
</div>
<div id="hero" data-section="hero">
<HeroBillboardRotatedCarousel
background={{ variant: "rotated-rays-static" }}
title="L'Atelier de la Place"
description="Boulangerie artisanale à Saint-Étienne. Produits faits maison chaque jour avec passion et farine de qualité."
buttons={[{ text: "Commander par téléphone", href: "tel:+33784943226" }]}
carouselItems={[
{ id: "h1", imageSrc: "http://img.b2bpic.net/free-photo/top-view-rustic-bread-with-seeds_23-2148695486.jpg" },
{ id: "h2", imageSrc: "http://img.b2bpic.net/top-view-homemade-bread-with-milk-jam_23-2148566693.jpg" },
{ id: "h3", imageSrc: "http://img.b2bpic.net/croissant-with-jam-white-cutting-board-flat-lay_176474-8182.jpg" },
{ id: "h4", imageSrc: "http://img.b2bpic.net/homemade-delicious-rustic-summer-berry-tartles_114579-11156.jpg" },
{ id: "h5", imageSrc: "http://img.b2bpic.net/close-up-almonds-cherry-tomatoes-fig-slices-healthy-hot-dogs-with-chequered-napkin-white-backdrop_23-2147956764.jpg" },
{ id: "h6", imageSrc: "http://img.b2bpic.net/bread-slices-marble-piece-towel_114579-21970.jpg" },
]}
/>
</div>
<div id="products" data-section="products">
<ProductCardOne
animationType="slide-up"
textboxLayout="default"
gridVariant="uniform-all-items-equal"
useInvertedBackground={false}
products={[
{
id: "p1", name: "Tradition", price: "1.20€", imageSrc: "http://img.b2bpic.net/free-photo/close-up-view-different-types-baguette-wooden-surface_141793-11295.jpg"},
{
id: "p2", name: "Viennoiseries", price: "1.50€", imageSrc: "http://img.b2bpic.net/free-photo/baked-apples-foil-plate-with-walnuts_23-2147930967.jpg"},
{
id: "p3", name: "Pâtisseries", price: "3.50€", imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-little-cake-with-cream-fresh-sliced-fruits-dark-backgound-fruit-cake-biscuit-s_140725-22610.jpg"},
{
id: "p4", name: "Snacking", price: "5.50€", imageSrc: "http://img.b2bpic.net/free-photo/hot-dog-with-sausage-cucumber-tomato-lettuce-dark-wooden-table-summer-hotdog-top-view_2829-16978.jpg"},
{
id: "p5", name: "Pains Spéciaux", price: "2.80€", imageSrc: "http://img.b2bpic.net/free-photo/farm-bakery-products-artisan-rye-wheat-bread-traditional-pastries-turkey-natural-lighting-fresh-bread-table-closeup-selective-focus-homemade-bread-with-whole-wheat-flour_166373-3520.jpg"},
{
id: "p6", name: "Brioches", price: "4.00€", imageSrc: "http://img.b2bpic.net/free-photo/3d-challah-dish-hanukkah_23-2151129257.jpg"},
]}
title="Nos Créations"
description="Découvrez notre sélection quotidienne de pains, viennoiseries et gourmandises, élaborée avec des ingrédients locaux."
/>
</div>
<div id="about" data-section="about">
<AboutMetric
useInvertedBackground={true}
title="Le Savoir-faire Artisanal"
metrics={[
{ icon: Award, label: "Qualité", value: "100% Artisanal" },
{ icon: Clock, label: "Frais", value: "Fait maison" },
{ icon: MapPin, label: "Lieu", value: "Saint-Étienne" },
]}
metricsAnimation="blur-reveal"
/>
</div>
<div id="why-us" data-section="why-us">
<FeatureBorderGlow
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={true}
features={[
{
icon: CheckCircle,
title: "Produits frais quotidiens", description: "Tout est fait maison chaque matin par nos artisans boulangers."},
{
icon: ShieldCheck,
title: "Qualité artisanale", description: "Sélection rigoureuse des meilleurs ingrédients locaux."},
{
icon: Truck,
title: "Commerce local", description: "Service de proximité au cœur de Saint-Étienne."},
{
icon: Wheat,
title: "Farine de meule", description: "Des céréales issues de circuits courts et responsables."},
{
icon: Coffee,
title: "Pause gourmande", description: "Accompagnez votre pain d'un café ou d'une douceur."},
]}
title="Pourquoi nous choisir ?"
description="L'engagement de L'Atelier de la Place pour une qualité irréprochable et un service de proximité."
/>
</div>
<div id="products" data-section="products">
<ProductCardOne
animationType="slide-up"
textboxLayout="default"
gridVariant="uniform-all-items-equal"
useInvertedBackground={false}
products={[
{ id: "p1", name: "Tradition", price: "1.20€", imageSrc: "http://img.b2bpic.net/free-photo/close-up-view-different-types-baguette-wooden-surface_141793-11295.jpg" },
{ id: "p2", name: "Viennoiseries", price: "1.50€", imageSrc: "http://img.b2bpic.net/free-photo/baked-apples-foil-plate-with-walnuts_23-2147930967.jpg" },
{ id: "p3", name: "Pâtisseries", price: "3.50€", imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-little-cake-with-cream-fresh-sliced-fruits-dark-backgound-fruit-cake-biscuit-s_140725-22610.jpg" },
{ id: "p4", name: "Snacking", price: "5.50€", imageSrc: "http://img.b2bpic.net/free-photo/hot-dog-with-sausage-cucumber-tomato-lettuce-dark-wooden-table-summer-hotdog-top-view_2829-16978.jpg" },
]}
title="Nos Créations"
description="Découvrez notre sélection quotidienne de pains, viennoiseries et gourmandises, élaborée avec des ingrédients locaux."
/>
</div>
<div id="hours" data-section="hours">
<MetricCardOne
animationType="slide-up"
textboxLayout="default"
gridVariant="uniform-all-items-equal"
useInvertedBackground={false}
metrics={[
{
id: "m1", value: "6h30 - 21h", title: "Lundi à Samedi", description: "Pain frais cuit tout au long de la journée", icon: Clock,
},
{
id: "m2", value: "Fermé", title: "Dimanche", description: "Repos bien mérité pour nos boulangers", icon: Coffee,
},
]}
title="Horaires d'ouverture"
description="Retrouvez-nous au cœur de Saint-Étienne pour vos achats quotidiens."
/>
</div>
<div id="why-us" data-section="why-us">
<FeatureBorderGlow
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={true}
features={[
{ icon: CheckCircle, title: "Produits frais quotidiens", description: "Tout est fait maison chaque matin par nos artisans boulangers." },
{ icon: ShieldCheck, title: "Qualité artisanale", description: "Sélection rigoureuse des meilleurs ingrédients locaux." },
{ icon: Truck, title: "Commerce local", description: "Service de proximité au cœur de Saint-Étienne." },
]}
title="Pourquoi nous choisir ?"
description="L'engagement de L'Atelier de la Place pour une qualité irréprochable."
containerClassName="py-8 md:py-12"
iconContainerClassName="flex items-center justify-center p-3"
iconClassName="w-8 h-8 text-amber-800"
/>
</div>
<div id="contact" data-section="contact">
<ContactSplitForm
useInvertedBackground={true}
title="Contactez-nous"
description="Une question, une commande spéciale ou une réservation ? Appelez-nous directement ou remplissez ce formulaire."
inputs={[
{
name: "nom", type: "text", placeholder: "Votre nom", required: true,
},
{
name: "tel", type: "tel", placeholder: "Votre numéro de téléphone", required: true,
},
]}
mediaPosition="left"
buttonText="Appeler le 04 00 00 00 00"
imageSrc="http://img.b2bpic.net/free-photo/man-putting-homemade-wheat-bread-with-flour-it-white-towel-with-two-hands_114579-2680.jpg"
textarea={{
name: "message", placeholder: "Détails de votre commande ou demande particulière", rows: 4,
}}
/>
</div>
<div id="hours" data-section="hours">
<MetricCardOne
animationType="slide-up"
gridVariant="uniform-all-items-equal"
useInvertedBackground={false}
description="Consultez nos horaires pour nous rendre visite."
textboxLayout="default"
metrics={[
{ id: "m1", value: "6h30 - 21h", title: "Lun-Sam", description: "Cuit tout au long de la journée", icon: Clock },
{ id: "m2", value: "Fermé", title: "Dimanche", description: "Repos bien mérité", icon: Coffee },
]}
title="Horaires d'ouverture"
/>
</div>
<div id="footer" data-section="footer">
<FooterMedia
imageSrc="http://img.b2bpic.net/free-photo/love-bakery_23-2147989464.jpg"
logoText="L'Atelier de la Place"
columns={[
{
title: "L'Atelier", items: [
{
label: "11 Rue Président Wilson", href: "#"},
{
label: "42000 Saint-Étienne", href: "#"},
],
},
{
title: "Service", items: [
{
label: "Commande uniquement par téléphone", href: "tel:+33400000000"},
{
label: "Suivez-nous sur les réseaux", href: "#"},
],
},
]}
copyrightText="© 2025 L'Atelier de la Place - Tous droits réservés"
/>
</div>
<div id="contact" data-section="contact">
<ContactSplitForm
useInvertedBackground={true}
title="Contactez-nous"
description="Appelez-nous directement pour toute commande spéciale."
inputs={[
{ name: "nom", type: "text", placeholder: "Votre nom" },
{ name: "tel", type: "tel", placeholder: "Votre numéro" },
]}
buttonText="Appeler le 07 84 94 32 26"
imageSrc="http://img.b2bpic.net/free-photo/man-putting-homemade-wheat-bread-with-flour-it-white-towel-with-two-hands_114579-2680.jpg"
/>
</div>
<div id="footer" data-section="footer">
<FooterMedia
imageSrc="http://img.b2bpic.net/free-photo/love-bakery_23-2147989464.jpg"
logoText="L'Atelier de la Place"
columns={[
{ title: "L'Atelier", items: [{ label: "11 Rue Président Wilson", href: "#" }, { label: "42000 Saint-Étienne", href: "#" }] },
{ title: "Service", items: [{ label: "Appel au 07 84 94 32 26", href: "tel:+33784943226" }] }
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);

View File

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