244 lines
12 KiB
TypeScript
244 lines
12 KiB
TypeScript
"use client";
|
|
|
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
|
import ReactLenis from "lenis/react";
|
|
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
|
|
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
|
|
import FeatureCardNine from '@/components/sections/feature/FeatureCardNine';
|
|
import FooterLogoReveal from '@/components/sections/footer/FooterLogoReveal';
|
|
import HeroBillboardTestimonial from '@/components/sections/hero/HeroBillboardTestimonial';
|
|
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
|
import ProductCardOne from '@/components/sections/product/ProductCardOne';
|
|
import TestimonialCardOne from '@/components/sections/testimonial/TestimonialCardOne';
|
|
import TextSplitAbout from '@/components/sections/about/TextSplitAbout';
|
|
|
|
export default function LandingPage() {
|
|
return (
|
|
<ThemeProvider
|
|
defaultButtonVariant="bounce-effect"
|
|
defaultTextAnimation="entrance-slide"
|
|
borderRadius="pill"
|
|
contentWidth="smallMedium"
|
|
sizing="largeSmallSizeLargeTitles"
|
|
background="aurora"
|
|
cardStyle="gradient-radial"
|
|
primaryButtonStyle="double-inset"
|
|
secondaryButtonStyle="solid"
|
|
headingFontWeight="semibold"
|
|
>
|
|
<ReactLenis root>
|
|
<div id="nav" data-section="nav">
|
|
<NavbarStyleFullscreen
|
|
navItems={[
|
|
{
|
|
name: "Home", id: "hero"},
|
|
{
|
|
name: "About", id: "about"},
|
|
{
|
|
name: "Menu", id: "products"},
|
|
{
|
|
name: "Contact", id: "contact"},
|
|
]}
|
|
brandName="Restaurant du Cygne"
|
|
/>
|
|
</div>
|
|
|
|
<div id="hero" data-section="hero">
|
|
<HeroBillboardTestimonial
|
|
background={{
|
|
variant: "plain"}}
|
|
title="Restaurant du Cygne"
|
|
description="Excellence in every dish. Experience refined culinary art in the heart of the city."
|
|
testimonials={[
|
|
{
|
|
name: "Jean Dupont", handle: "@jeand", testimonial: "Une expérience culinaire inoubliable.", rating: 5,
|
|
imageSrc: "http://img.b2bpic.net/free-photo/successful-young-man-stylish-hat-relaxing-alone-cozy-cafeteria-lunch-break-looking-with-happy-expression_273609-1935.jpg"},
|
|
{
|
|
name: "Marie Curie", handle: "@marie", testimonial: "Le service est impeccable, la cuisine divine.", rating: 5,
|
|
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-cute-woman_23-2148422458.jpg"},
|
|
{
|
|
name: "Paul Durand", handle: "@pauld", testimonial: "Cadre magnifique et repas délicieux.", rating: 5,
|
|
imageSrc: "http://img.b2bpic.net/free-photo/romantic-couple-christmas-dinner_23-2147716305.jpg"},
|
|
{
|
|
name: "Sophie Martin", handle: "@sophiem", testimonial: "Une adresse incontournable.", rating: 5,
|
|
imageSrc: "http://img.b2bpic.net/free-photo/young-passionate-woman-with-flower-table_23-2148001712.jpg"},
|
|
{
|
|
name: "Lucie Bernard", handle: "@lucieb", testimonial: "La finesse des plats est exceptionnelle.", rating: 5,
|
|
imageSrc: "http://img.b2bpic.net/free-photo/couple-having-date-together-luxurious-restaurant_23-2150517448.jpg"},
|
|
]}
|
|
buttons={[
|
|
{
|
|
text: "Réservations",
|
|
href: "#contact"
|
|
},
|
|
]}
|
|
imageSrc="http://img.b2bpic.net/free-photo/valentine-s-day-arrangement-with-roses_23-2151914738.jpg"
|
|
avatars={[
|
|
{
|
|
src: "http://img.b2bpic.net/free-photo/attractive-happy-young-bearded-man-trendy-hat-texting-messages-via-social-networks-browsing-internet-using-free-wifi-his-electronic-device-coffee-break-restaurant_273609-1934.jpg", alt: "Dîner 1"},
|
|
{
|
|
src: "http://img.b2bpic.net/free-photo/vertical-photo-beautiful-lady-sitting-restaurant-smiling-camera_114579-92383.jpg", alt: "Dîner 2"},
|
|
{
|
|
src: "http://img.b2bpic.net/free-photo/portrait-smiling-pretty-waitress_1098-15705.jpg", alt: "Dîner 3"},
|
|
{
|
|
src: "http://img.b2bpic.net/free-photo/girl-sitting-table-holding-mobile-phone-indoors_171337-17096.jpg", alt: "Dîner 4"},
|
|
{
|
|
src: "http://img.b2bpic.net/free-photo/smiling-woman-with-olives-beer_23-2147680964.jpg", alt: "Dîner 5"},
|
|
]}
|
|
marqueeItems={[
|
|
{
|
|
type: "text", text: "Gastronomie"},
|
|
{
|
|
type: "text", text: "Fraîcheur"},
|
|
{
|
|
type: "text", text: "Tradition"},
|
|
{
|
|
type: "text", text: "Art"},
|
|
{
|
|
type: "text", text: "Cuisine"},
|
|
]}
|
|
/>
|
|
</div>
|
|
|
|
<div id="about" data-section="about">
|
|
<TextSplitAbout
|
|
useInvertedBackground={false}
|
|
title="L'Art de Vivre"
|
|
description={[
|
|
"Fondé avec passion, le Restaurant du Cygne célèbre les saveurs traditionnelles sublimées par une touche de modernité.", "Chaque plat est une création originale conçue pour éveiller vos sens."]}
|
|
/>
|
|
</div>
|
|
|
|
<div id="features" data-section="features">
|
|
<FeatureCardNine
|
|
animationType="slide-up"
|
|
textboxLayout="default"
|
|
useInvertedBackground={true}
|
|
features={[
|
|
{
|
|
title: "Plats de Signature", description: "L'alliance parfaite entre tradition et créativité.", phoneOne: {
|
|
imageSrc: "http://img.b2bpic.net/free-photo/top-view-cooked-squashes-designed-meal-inside-plate-grey-surface_140725-89988.jpg"},
|
|
phoneTwo: {
|
|
imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-lemon-tart-plate_23-2148519056.jpg"},
|
|
},
|
|
{
|
|
title: "Cave à Vins", description: "Une sélection rigoureuse des meilleurs cépages.", phoneOne: {
|
|
imageSrc: "http://img.b2bpic.net/free-photo/bartender-pouring-white-wine-into-glasses-bar_23-2152024843.jpg"},
|
|
phoneTwo: {
|
|
imageSrc: "http://img.b2bpic.net/free-photo/man-having-glass-red-wine_107420-65430.jpg"},
|
|
},
|
|
{
|
|
title: "Ingrédients Frais", description: "Des produits de saison issus de producteurs locaux.", phoneOne: {
|
|
imageSrc: "http://img.b2bpic.net/free-photo/front-view-female-chef-tearing-salad-kitchen_23-2148763183.jpg"},
|
|
phoneTwo: {
|
|
imageSrc: "http://img.b2bpic.net/free-photo/set-fresh-raw-vegetables-products-table-modern-kitchen-room-healthy-eating-organic-food_1157-41854.jpg"},
|
|
},
|
|
]}
|
|
showStepNumbers={false}
|
|
title="Notre Engagement"
|
|
description="Nous sélectionnons uniquement le meilleur pour votre table."
|
|
/>
|
|
</div>
|
|
|
|
<div id="products" data-section="products">
|
|
<ProductCardOne
|
|
animationType="slide-up"
|
|
textboxLayout="default"
|
|
gridVariant="uniform-all-items-equal"
|
|
useInvertedBackground={false}
|
|
products={[
|
|
{
|
|
id: "p1", name: "Amuse-bouche Signature", price: "18€", imageSrc: "http://img.b2bpic.net/free-photo/beef-with-pistachio-topping-served-with-fruits-berries_7502-7390.jpg"},
|
|
{
|
|
id: "p2", name: "Filet de Bœuf aux Morilles", price: "42€", imageSrc: "http://img.b2bpic.net/free-photo/close-up-view-italian-food-wooden-table_23-2148305652.jpg"},
|
|
{
|
|
id: "p3", name: "Dôme au Chocolat Noir", price: "14€", imageSrc: "http://img.b2bpic.net/free-photo/top-view-yummy-pie-slices-inside-designed-plate-grey_140725-53029.jpg"},
|
|
{
|
|
id: "p4", name: "Homard à la Nage", price: "48€", imageSrc: "http://img.b2bpic.net/free-photo/fried-shrimps-with-lemon-table_140725-9208.jpg"},
|
|
{
|
|
id: "p5", name: "Risotto aux Truffes", price: "32€", imageSrc: "http://img.b2bpic.net/free-photo/plate-with-boiled-egg-wild-garlic-flower_166373-664.jpg"},
|
|
{
|
|
id: "p6", name: "Velouté de Saison", price: "16€", imageSrc: "http://img.b2bpic.net/free-photo/traditional-azerbaijani-soup-garnished-with-dried-mint-leaves_140725-5217.jpg"},
|
|
]}
|
|
title="Notre Menu"
|
|
description="Découvrez une sélection de plats raffinés."
|
|
/>
|
|
</div>
|
|
|
|
<div id="testimonials" data-section="testimonials">
|
|
<TestimonialCardOne
|
|
animationType="slide-up"
|
|
textboxLayout="default"
|
|
gridVariant="uniform-all-items-equal"
|
|
useInvertedBackground={true}
|
|
testimonials={[
|
|
{
|
|
id: "1", name: "Jean Dupont", role: "Habitué", company: "Local", rating: 5,
|
|
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-couple-having-lunch-luxury-restaurant_23-2150598351.jpg"},
|
|
{
|
|
id: "2", name: "Marie Curie", role: "Critique", company: "Presse", rating: 5,
|
|
imageSrc: "http://img.b2bpic.net/free-photo/woman-sitting-with-shopping-bags-wine_23-2147784078.jpg"},
|
|
{
|
|
id: "3", name: "Paul Durand", role: "Client", company: "Voisin", rating: 5,
|
|
imageSrc: "http://img.b2bpic.net/free-photo/portrait-beautiful-young-woman-smiling_23-2148454153.jpg"},
|
|
{
|
|
id: "4", name: "Sophie Martin", role: "Connaisseuse", company: "Local", rating: 5,
|
|
imageSrc: "http://img.b2bpic.net/portrait-senior-man-luxurious-restaurant_23-2150517452.jpg"},
|
|
{
|
|
id: "5", name: "Lucie Bernard", role: "Dîner", company: "Amie", rating: 5,
|
|
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-smiley-people-with-drinks_23-2150124809.jpg"},
|
|
]}
|
|
title="Ce que disent nos clients"
|
|
description="La satisfaction de nos convives est notre plus grande récompense."
|
|
/>
|
|
</div>
|
|
|
|
<div id="faq" data-section="faq">
|
|
<FaqSplitMedia
|
|
textboxLayout="split"
|
|
useInvertedBackground={false}
|
|
faqs={[
|
|
{
|
|
id: "q1", title: "Réservations", content: "Il est vivement conseillé de réserver à l'avance."},
|
|
{
|
|
id: "q2", title: "Horaires", content: "Nous sommes ouverts du mardi au dimanche, midi et soir."},
|
|
{
|
|
id: "q3", title: "Accessibilité", content: "Le restaurant est entièrement accessible aux personnes à mobilité réduite."},
|
|
]}
|
|
imageSrc="http://img.b2bpic.net/free-photo/reserved-table-restaurant_53876-88.jpg"
|
|
mediaAnimation="slide-up"
|
|
title="Questions Fréquentes"
|
|
description="Informations utiles pour votre visite."
|
|
faqsAnimation="slide-up"
|
|
/>
|
|
</div>
|
|
|
|
<div id="contact" data-section="contact">
|
|
<ContactSplitForm
|
|
title="Réservez votre table"
|
|
description="Laissez-nous vos coordonnées et nous vous rappellerons pour confirmer votre réservation."
|
|
inputs={[
|
|
{ name: "name", type: "text", placeholder: "Votre nom", required: true },
|
|
{ name: "email", type: "email", placeholder: "Votre email", required: true },
|
|
{ name: "phone", type: "tel", placeholder: "Votre téléphone", required: true },
|
|
]}
|
|
textarea={{ name: "message", placeholder: "Détails de la réservation (nombre de personnes, date)" }}
|
|
buttonText="Confirmer la demande"
|
|
useInvertedBackground={false}
|
|
onSubmit={(data) => console.log("Formulaire envoyé:", data)}
|
|
/>
|
|
</div>
|
|
|
|
<div id="footer" data-section="footer">
|
|
<FooterLogoReveal
|
|
logoText="Restaurant du Cygne"
|
|
leftLink={{
|
|
text: "Contact", href: "#contact"}}
|
|
rightLink={{
|
|
text: "Mentions Légales", href: "#"}}
|
|
/>
|
|
</div>
|
|
</ReactLenis>
|
|
</ThemeProvider>
|
|
);
|
|
} |