3 Commits

Author SHA1 Message Date
9e47dc1f2f Update src/app/page.tsx 2026-05-12 17:44:45 +00:00
8a6f2a8ca3 Update src/app/layout.tsx 2026-05-12 17:44:45 +00:00
17c73ed1c8 Update theme colors 2026-05-12 17:32:29 +00:00
3 changed files with 110 additions and 63 deletions

View File

@@ -6,26 +6,20 @@ import "@/lib/gsap-setup";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
import { getVisualEditScript } from "@/utils/visual-edit-script";
import { Open_Sans } from "next/font/google";
import { DM_Sans } from "next/font/google";
export const metadata: Metadata = { title: 'FEDERICO | Authentic Italian Dining in Tunis', description: 'Experience the finest Italian cuisine at FEDERICO in Tunis. Join us for an exquisite dining experience featuring authentic flavors, elegant ambiance, and premium service.' };
const dmSans = DM_Sans({
variable: "--font-dm-sans",
const halant = Halant({
variable: "--font-halant",
subsets: ["latin"],
weight: ["300", "400", "500", "600", "700"],
});
const inter = Inter({
variable: "--font-inter",
subsets: ["latin"],
});
export const metadata: Metadata = { title: 'FEDERICO | Authentic Italian Dining in Tunis', description: 'Experience the finest Italian cuisine at FEDERICO in Tunis. Join us for an exquisite dining experience featuring authentic flavors, elegant ambiance, and premium service.' };
export default function RootLayout({
children,
}: Readonly<{
@@ -34,7 +28,9 @@ export default function RootLayout({
return (
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body className={`${dmSans.variable} ${inter.variable} antialiased`}>
<body
className={`${halant.variable} ${inter.variable} antialiased`}
>
<Tag />
{children}
<script

View File

@@ -1,17 +1,15 @@
"use client";
import ReactLenis from "lenis/react";
import HeroCarouselLogo from "@/components/sections/hero/heroCarouselLogo/HeroCarouselLogo";
import InlineImageSplitTextAbout from "@/components/sections/about/InlineImageSplitTextAbout";
import FeatureCardOne from "@/components/sections/feature/FeatureCardOne";
import FeatureCardNine from "@/components/sections/feature/FeatureCardNine";
import FeatureCardMedia from "@/components/sections/feature/FeatureCardMedia";
import TestimonialCardFive from "@/components/sections/testimonial/TestimonialCardFive";
import ContactSplitForm from "@/components/sections/contact/ContactSplitForm";
import FooterCard from "@/components/sections/footer/FooterCard";
import HeroLogo from "@/components/sections/hero/HeroLogo";
import SplitAbout from "@/components/sections/about/SplitAbout";
import FeatureCardSeven from "@/components/sections/feature/FeatureCardSeven";
import TestimonialCardFifteen from "@/components/sections/testimonial/TestimonialCardFifteen";
import ContactSplit from "@/components/sections/contact/ContactSplit";
import FooterSimple from "@/components/sections/footer/FooterSimple";
import NavbarLayoutFloatingInline from "@/components/navbar/NavbarLayoutFloatingInline";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import { Sparkles, Utensils, MapPin, Instagram, Facebook, Linkedin } from "lucide-react";
import { Utensils } from "lucide-react";
export default function FedericoRestaurantPage() {
return (
@@ -28,40 +26,93 @@ export default function FedericoRestaurantPage() {
headingFontWeight="medium"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingInline
navItems={[
{ name: "Overview", id: "/" },
{ name: "Gallery", id: "/gallery" },
{ name: "Reservations", id: "/reservations" },
{ name: "Contact", id: "/contact" },
{ name: "Overview", id: "overview" },
{ name: "Menu", id: "menu" },
{ name: "Reviews", id: "reviews" },
{ name: "About", id: "about" },
{ name: "Contact", id: "contact" },
]}
brandName="FEDERICO"
button={{ text: "Book Table", href: "/reservations" }}
button={{ text: "Reservations", href: "#contact" }}
/>
<HeroCarouselLogo
</div>
<div id="overview" data-section="overview">
<HeroLogo
logoText="FEDERICO"
description="Authentic Italian flavors in the heart of Tunis. Join us for a refined culinary experience at Immeuble El Majd."
buttons={[
{ text: "View Menu", href: "/" },
{ text: "Directions", href: "/contact" },
]}
slides={[
{ imageSrc: "http://img.b2bpic.net/free-photo/waiter-is-serving-dinner-two-pretty-friends-women-elegant-restaurant_8353-10575.jpg", imageAlt: "Elegant Italian restaurant dining" },
{ imageSrc: "http://img.b2bpic.net/free-photo/delicious-penne-pasta-with-tomato-sauce-fresh-basil-grated-parmesan-cheese_84443-81547.jpg", imageAlt: "Gourmet pasta dish" },
{ imageSrc: "http://img.b2bpic.net/free-photo/glass-sparking-wine_1339-4221.jpg", imageAlt: "Wine pairing experience" },
{ imageSrc: "http://img.b2bpic.net/free-photo/decorated-wedding-reception-venue-with-view-sea-through-windows_637285-1001.jpg", imageAlt: "Warm restaurant ambiance" },
{ text: "View Menu", href: "#menu" },
{ text: "Directions", href: "#contact" },
]}
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3DdIwT7IHWcCqb6UBtzr3xax2lB/uploaded-1778607880091-ae9age3h.jpg"
imageAlt="Elegant Italian restaurant dining"
showDimOverlay={true}
/>
<FooterCard
logoText="FEDERICO"
copyrightText="© 2025 FEDERICO Restaurant. 1 Rue du Lac de Constance, Tunis."
socialLinks={[
{ icon: Instagram, href: "#", ariaLabel: "Instagram" },
{ icon: Facebook, href: "#", ariaLabel: "Facebook" },
{ icon: Linkedin, href: "#", ariaLabel: "LinkedIn" },
</div>
<div id="about" data-section="about">
<SplitAbout
title="We craft authentic culinary masterpieces"
description="Using the finest Mediterranean ingredients for a unique experience."
buttons={[{ text: "Learn Our Story", href: "#about" }]}
useInvertedBackground={false}
mediaAnimation="slide-up"
textboxLayout="inline-image"
bulletPoints={[
{ title: "Authentic Recipes", description: "Generations of Italian tradition." },
{ title: "Fresh Ingredients", description: "Sourced from the best local providers." }
]}
/>
</div>
<div id="menu" data-section="menu">
<FeatureCardSeven
tag="Menu"
tagIcon={Utensils}
title="A Taste of Italy"
description="Traditional recipes prepared with modern elegance and fresh local produce."
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
features={[
{ title: "Handmade Pasta", description: "Fresh daily pasta crafted using authentic techniques.", imageSrc: "http://img.b2bpic.net/free-photo/pasta-near-eggs-flour_23-2147849810.jpg", imageAlt: "Pasta" },
{ title: "Wood-Fired Pizza", description: "Authentic thin-crust pizzas with premium Italian toppings.", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-chef-baking-pizza-wood-fired-oven_52683-106696.jpg", imageAlt: "Pizza" },
{ title: "Exquisite Seafood", description: "Fresh catch of the day prepared with Mediterranean herbs.", imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-mussels-white-sauce-with-tablecloth-cutlery_23-2148234931.jpg", imageAlt: "Seafood" }
]}
/>
</div>
<div id="reviews" data-section="reviews">
<TestimonialCardFifteen
testimonial="Truly authentic flavors that transport you directly to Rome. Exceptional service and a beautiful setting."
rating={5}
author="Sami Ben Youssef"
avatars={[{ src: "http://img.b2bpic.net/free-photo/close-up-young-businesswoman_23-2149153828.jpg", alt: "Sami" }]}
ratingAnimation="slide-up"
avatarsAnimation="slide-up"
useInvertedBackground={false}
/>
</div>
<div id="contact" data-section="contact">
<ContactSplit
tag="Reservations"
title="Connect With Us"
description="Need a reservation or have an inquiry? Get in touch today."
background={{ variant: "plain" }}
useInvertedBackground={false}
imageSrc="http://img.b2bpic.net/free-photo/view-table-arrangement-by-wedding-planner_23-2150167204.jpg"
imageAlt="Contact Us"
mediaAnimation="slide-up"
mediaPosition="right"
/>
</div>
<FooterSimple
columns={[
{ title: "Federico", items: [{ label: "Home", href: "/" }, { label: "Contact", href: "#contact" }] }
]}
bottomLeftText="© 2025 FEDERICO Restaurant."
bottomRightText="1 Rue du Lac de Constance, Tunis."
/>
</ReactLenis>
</ThemeProvider>
);

View File

@@ -10,15 +10,15 @@
--accent: #ffffff;
--background-accent: #ffffff; */
--background: #f6f0e9;
--card: #efe7dd;
--foreground: #2b180a;
--primary-cta: #2b180a;
--primary-cta-text: #f6f0e9;
--secondary-cta: #efe7dd;
--secondary-cta-text: #2b180a;
--accent: #94877c;
--background-accent: #afa094;
--background: #ffffff;
--card: #f9f9f9;
--foreground: #000612e6;
--primary-cta: #15479c;
--primary-cta-text: #ffffff;
--secondary-cta: #f9f9f9;
--secondary-cta-text: #000612e6;
--accent: #e2e2e2;
--background-accent: #c4c4c4;
/* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);