Merge version_1 into main #2

Merged
bender merged 4 commits from version_1 into main 2026-03-13 10:21:32 +00:00
4 changed files with 60 additions and 92 deletions

View File

@@ -27,24 +27,21 @@ export default function ContactPage() {
const footerColumns = [
{
title: "Restaurant",
items: [
title: "Restaurant", items: [
{ label: "About Us", href: "/about" },
{ label: "Menu", href: "/menu" },
{ label: "Gallery", href: "#gallery" },
],
},
{
title: "Experience",
items: [
title: "Experience", items: [
{ label: "Live Music", href: "#experience" },
{ label: "Ramadan Ftoor", href: "#ftoor" },
{ label: "Reservations", href: "/contact" },
],
},
{
title: "Contact",
items: [
title: "Contact", items: [
{ label: "Call Us", href: "tel:+212-XXX-XXX-XXX" },
{ label: "Get Directions", href: "https://maps.google.com" },
{ label: "Email", href: "mailto:info@ellyscasablanca.com" },
@@ -59,7 +56,7 @@ export default function ContactPage() {
borderRadius="pill"
contentWidth="smallMedium"
sizing="largeSizeMediumTitles"
background="noise"
background="circleGradient"
cardStyle="layered-gradient"
primaryButtonStyle="shadow"
secondaryButtonStyle="radial-glow"
@@ -80,7 +77,7 @@ export default function ContactPage() {
text="Get in Touch with Ellys Casablanca. Call us now to make a reservation or ask about our special events and Ramadan offerings."
animationType="entrance-slide"
buttons={contactButtons}
background={{ variant: "noise" }}
background={{ variant: "sparkles-gradient" }}
useInvertedBackground={false}
ariaLabel="Contact information section"
/>
@@ -91,7 +88,7 @@ export default function ContactPage() {
text="Located in the Heart of Casablanca. Visit us for an unforgettable dining experience with great food, live music, and warm hospitality."
animationType="entrance-slide"
buttons={directionsButtons}
background={{ variant: "noise" }}
background={{ variant: "sparkles-gradient" }}
useInvertedBackground={false}
ariaLabel="Location and directions section"
/>
@@ -99,7 +96,7 @@ export default function ContactPage() {
<div id="contact-footer" data-section="contact-footer">
<FooterMedia
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=6br4vl&_wi=3"
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=6br4vl"
imageAlt="Ellys Casablanca restaurant kitchen"
columns={footerColumns}
logoText="Ellys Casablanca"

View File

@@ -18,12 +18,12 @@ export default function MenuPage() {
];
const allMenuItems = [
{ id: "1", name: "Gourmet Burgers", price: "$8-15", variant: "Beef, chicken, veggie options", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=wg46bp&_wi=3", imageAlt: "Gourmet burger signature dish" },
{ id: "2", name: "Empanadas", price: "$4-6", variant: "Cheese, meat, spinach fillings", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=hopgvh&_wi=2", imageAlt: "Crispy empanadas appetizer" },
{ id: "3", name: "Fish & Chips", price: "$12-14", variant: "Fresh Atlantic fish, crispy batter", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=ozsjub&_wi=2", imageAlt: "Fish and chips main course" },
{ id: "4", name: "Premium Desserts", price: "$5-8", variant: "Chocolate, pastry, seasonal", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=0m7m0u&_wi=2", imageAlt: "Fine dining dessert" },
{ id: "5", name: "Ramadan Special Ftoor", price: "$25-35", variant: "Complete iftar spread for 2", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=no41ud&_wi=2", imageAlt: "Ramadan ftoor spread" },
{ id: "6", name: "Appetizer Platter", price: "$15-20", variant: "Mixed selection of starters", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=hopgvh&_wi=3", imageAlt: "Appetizer platter" },
{ id: "1", name: "Gourmet Burgers", price: "$8-15", variant: "Beef, chicken, veggie options", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=wg46bp", imageAlt: "Gourmet burger signature dish" },
{ id: "2", name: "Empanadas", price: "$4-6", variant: "Cheese, meat, spinach fillings", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=hopgvh", imageAlt: "Crispy empanadas appetizer" },
{ id: "3", name: "Fish & Chips", price: "$12-14", variant: "Fresh Atlantic fish, crispy batter", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=ozsjub", imageAlt: "Fish and chips main course" },
{ id: "4", name: "Premium Desserts", price: "$5-8", variant: "Chocolate, pastry, seasonal", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=0m7m0u", imageAlt: "Fine dining dessert" },
{ id: "5", name: "Ramadan Special Ftoor", price: "$25-35", variant: "Complete iftar spread for 2", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=no41ud", imageAlt: "Ramadan ftoor spread" },
{ id: "6", name: "Appetizer Platter", price: "$15-20", variant: "Mixed selection of starters", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=hopgvh", imageAlt: "Appetizer platter" },
];
const ctaButtons = [
@@ -33,24 +33,21 @@ export default function MenuPage() {
const footerColumns = [
{
title: "Restaurant",
items: [
title: "Restaurant", items: [
{ label: "About Us", href: "/about" },
{ label: "Menu", href: "/menu" },
{ label: "Gallery", href: "#gallery" },
],
},
{
title: "Experience",
items: [
title: "Experience", items: [
{ label: "Live Music", href: "#experience" },
{ label: "Ramadan Ftoor", href: "#ftoor" },
{ label: "Reservations", href: "/contact" },
],
},
{
title: "Contact",
items: [
title: "Contact", items: [
{ label: "Call Us", href: "tel:+212-XXX-XXX-XXX" },
{ label: "Get Directions", href: "https://maps.google.com" },
{ label: "Email", href: "mailto:info@ellyscasablanca.com" },
@@ -65,7 +62,7 @@ export default function MenuPage() {
borderRadius="pill"
contentWidth="smallMedium"
sizing="largeSizeMediumTitles"
background="noise"
background="circleGradient"
cardStyle="layered-gradient"
primaryButtonStyle="shadow"
secondaryButtonStyle="radial-glow"
@@ -101,7 +98,7 @@ export default function MenuPage() {
text="Have Questions About Our Menu? Ready to Reserve Your Table and Taste the Best Food in Casablanca?"
animationType="entrance-slide"
buttons={ctaButtons}
background={{ variant: "noise" }}
background={{ variant: "sparkles-gradient" }}
useInvertedBackground={false}
ariaLabel="Menu call to action section"
/>
@@ -109,7 +106,7 @@ export default function MenuPage() {
<div id="menu-footer" data-section="menu-footer">
<FooterMedia
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=6br4vl&_wi=2"
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=6br4vl"
imageAlt="Ellys Casablanca restaurant kitchen"
columns={footerColumns}
logoText="Ellys Casablanca"

View File

@@ -26,38 +26,38 @@ export default function HomePage() {
];
const socialProofTestimonials = [
{ id: "1", name: "Oumaima Marzouk", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=r21vzt&_wi=1", imageAlt: "professional portrait woman smiling happy" },
{ id: "2", name: "Wilhem Sdc", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=lpl2oo&_wi=1", imageAlt: "professional portrait man confident smile" },
{ id: "3", name: "Amine Bennar", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=iwlmyx&_wi=1", imageAlt: "young professional woman portrait smiling" },
{ id: "4", name: "Oskar Gysler", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=z9fyz0&_wi=1", imageAlt: "young man professional portrait smiling" },
{ id: "1", name: "Oumaima Marzouk", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=r21vzt", imageAlt: "professional portrait woman smiling happy" },
{ id: "2", name: "Wilhem Sdc", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=lpl2oo", imageAlt: "professional portrait man confident smile" },
{ id: "3", name: "Amine Bennar", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=iwlmyx", imageAlt: "young professional woman portrait smiling" },
{ id: "4", name: "Oskar Gysler", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=z9fyz0", imageAlt: "young man professional portrait smiling" },
];
const signatureDishesProducts = [
{ id: "1", name: "Gourmet Burgers", price: "$8-15", variant: "Beef, chicken, veggie options", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=wg46bp&_wi=1", imageAlt: "Gourmet burger signature dish" },
{ id: "2", name: "Empanadas", price: "$4-6", variant: "Cheese, meat, spinach fillings", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=hopgvh&_wi=1", imageAlt: "Crispy empanadas appetizer" },
{ id: "3", name: "Fish & Chips", price: "$12-14", variant: "Fresh Atlantic fish, crispy batter", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=ozsjub&_wi=1", imageAlt: "Fish and chips main course" },
{ id: "4", name: "Premium Desserts", price: "$5-8", variant: "Chocolate, pastry, seasonal", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=0m7m0u&_wi=1", imageAlt: "Fine dining dessert" },
{ id: "1", name: "Gourmet Burgers", price: "$8-15", variant: "Beef, chicken, veggie options", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=wg46bp", imageAlt: "Gourmet burger signature dish" },
{ id: "2", name: "Empanadas", price: "$4-6", variant: "Cheese, meat, spinach fillings", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=hopgvh", imageAlt: "Crispy empanadas appetizer" },
{ id: "3", name: "Fish & Chips", price: "$12-14", variant: "Fresh Atlantic fish, crispy batter", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=ozsjub", imageAlt: "Fish and chips main course" },
{ id: "4", name: "Premium Desserts", price: "$5-8", variant: "Chocolate, pastry, seasonal", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=0m7m0u", imageAlt: "Fine dining dessert" },
];
const experienceFeatures = [
{ title: "Amazing Burgers", description: "Handcrafted burgers with premium beef and fresh toppings", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=wg46bp&_wi=2", imageAlt: "Premium burger", buttonIcon: CheckCircle },
{ title: "Live Music Atmosphere", description: "Enjoy local musicians performing every weekend", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=100tnw&_wi=1", imageAlt: "Live music performance", buttonIcon: Music },
{ title: "Friendly Staff", description: "Our team makes you feel welcome and valued", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=1b36ks&_wi=1", imageAlt: "Restaurant interior", buttonIcon: Smile },
{ title: "Great Ftoor During Ramadan", description: "Special Ramadan menus and extended hours for iftar", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=no41ud&_wi=1", imageAlt: "Ramadan ftoor spread", buttonIcon: Sparkles },
{ title: "Cozy Vibe", description: "Modern ambiance with warm lighting and comfortable seating", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=9gscja&_wi=1", imageAlt: "Restaurant night atmosphere", buttonIcon: Flame },
{ title: "Amazing Burgers", description: "Handcrafted burgers with premium beef and fresh toppings", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=wg46bp", imageAlt: "Premium burger", buttonIcon: CheckCircle },
{ title: "Live Music Atmosphere", description: "Enjoy local musicians performing every weekend", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=100tnw", imageAlt: "Live music performance", buttonIcon: Music },
{ title: "Friendly Staff", description: "Our team makes you feel welcome and valued", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=1b36ks", imageAlt: "Restaurant interior", buttonIcon: Smile },
{ title: "Great Ftoor During Ramadan", description: "Special Ramadan menus and extended hours for iftar", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=no41ud", imageAlt: "Ramadan ftoor spread", buttonIcon: Sparkles },
{ title: "Cozy Vibe", description: "Modern ambiance with warm lighting and comfortable seating", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=9gscja", imageAlt: "Restaurant night atmosphere", buttonIcon: Flame },
];
const galleryFeatures = [
{ title: "Interior Design", description: "Modern elegant dining spaces", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=1b36ks&_wi=2", imageAlt: "Restaurant interior", buttonIcon: Eye },
{ title: "Live Entertainment", description: "Weekly live music performances", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=100tnw&_wi=2", imageAlt: "Live music", buttonIcon: Music },
{ title: "Night Atmosphere", description: "Romantic evenings with ambient lighting", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=9gscja&_wi=2", imageAlt: "Night atmosphere", buttonIcon: Moon },
{ title: "Interior Design", description: "Modern elegant dining spaces", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=1b36ks", imageAlt: "Restaurant interior", buttonIcon: Eye },
{ title: "Live Entertainment", description: "Weekly live music performances", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=100tnw", imageAlt: "Live music", buttonIcon: Music },
{ title: "Night Atmosphere", description: "Romantic evenings with ambient lighting", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=9gscja", imageAlt: "Night atmosphere", buttonIcon: Moon },
];
const reviewTestimonials = [
{ id: "1", name: "Oumaima Marzouk", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=r21vzt&_wi=2", imageAlt: "professional portrait woman smiling happy" },
{ id: "2", name: "Wilhem Sdc", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=lpl2oo&_wi=2", imageAlt: "professional portrait man confident smile" },
{ id: "3", name: "Amine Bennar", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=iwlmyx&_wi=2", imageAlt: "young professional woman portrait smiling" },
{ id: "4", name: "Oskar Gysler", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=z9fyz0&_wi=2", imageAlt: "young man professional portrait smiling" },
{ id: "1", name: "Oumaima Marzouk", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=r21vzt", imageAlt: "professional portrait woman smiling happy" },
{ id: "2", name: "Wilhem Sdc", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=lpl2oo", imageAlt: "professional portrait man confident smile" },
{ id: "3", name: "Amine Bennar", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=iwlmyx", imageAlt: "young professional woman portrait smiling" },
{ id: "4", name: "Oskar Gysler", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=z9fyz0", imageAlt: "young man professional portrait smiling" },
{ id: "5", name: "Mohamed Mnaouer", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=qh45cg", imageAlt: "woman professional portrait happy smile" },
{ id: "6", name: "Hassan El Arabi", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=95q9kx", imageAlt: "man professional portrait friendly smile" },
];
@@ -69,24 +69,21 @@ export default function HomePage() {
const footerColumns = [
{
title: "Restaurant",
items: [
title: "Restaurant", items: [
{ label: "About Us", href: "/about" },
{ label: "Menu", href: "/menu" },
{ label: "Gallery", href: "#gallery" },
],
},
{
title: "Experience",
items: [
title: "Experience", items: [
{ label: "Live Music", href: "#experience" },
{ label: "Ramadan Ftoor", href: "#ftoor" },
{ label: "Reservations", href: "/contact" },
],
},
{
title: "Contact",
items: [
title: "Contact", items: [
{ label: "Call Us", href: "tel:+212-XXX-XXX-XXX" },
{ label: "Get Directions", href: "https://maps.google.com" },
{ label: "Email", href: "mailto:info@ellyscasablanca.com" },
@@ -101,7 +98,7 @@ export default function HomePage() {
borderRadius="pill"
contentWidth="smallMedium"
sizing="largeSizeMediumTitles"
background="noise"
background="circleGradient"
cardStyle="layered-gradient"
primaryButtonStyle="shadow"
secondaryButtonStyle="radial-glow"
@@ -123,7 +120,7 @@ export default function HomePage() {
description="Great Food, Great Vibes. Best burgers, live music and unforgettable ftoor in Casablanca."
buttons={heroButtons}
buttonAnimation="slide-up"
background={{ variant: "noise" }}
background={{ variant: "sparkles-gradient" }}
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=k0o68m"
imageAlt="Ellys Casablanca restaurant ambiance with warm lighting"
mediaAnimation="opacity"
@@ -202,7 +199,7 @@ export default function HomePage() {
text="Ready to Experience Great Food and Unforgettable Vibes? Reserve Your Table Today!"
animationType="entrance-slide"
buttons={ctaButtons}
background={{ variant: "noise" }}
background={{ variant: "sparkles-gradient" }}
useInvertedBackground={false}
ariaLabel="Final call to action section"
/>
@@ -210,7 +207,7 @@ export default function HomePage() {
<div id="footer" data-section="footer">
<FooterMedia
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=6br4vl&_wi=1"
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=6br4vl"
imageAlt="Ellys Casablanca restaurant kitchen"
columns={footerColumns}
logoText="Ellys Casablanca"

View File

@@ -1,51 +1,28 @@
"use client";
import { memo } from "react";
import useSvgTextLogo from "./useSvgTextLogo";
import { cls } from "@/lib/utils";
import React from 'react';
interface SvgTextLogoProps {
logoText: string;
adjustHeightFactor?: number;
verticalAlign?: "top" | "center";
text: string;
className?: string;
}
const SvgTextLogo = memo<SvgTextLogoProps>(function SvgTextLogo({
logoText,
adjustHeightFactor,
verticalAlign = "top",
className = "",
}) {
const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor);
const SvgTextLogo: React.FC<SvgTextLogoProps> = ({ text, className = '' }) => {
return (
<svg
ref={svgRef}
viewBox={viewBox}
className={cls("w-full", className)}
style={{ aspectRatio: aspectRatio }}
preserveAspectRatio="none"
role="img"
aria-label={`${logoText} logo`}
viewBox={`0 0 ${text.length * 60} 100`}
className={className}
xmlns="http://www.w3.org/2000/svg"
>
<text
ref={textRef}
x="0"
y={verticalAlign === "center" ? "50%" : "0"}
className="font-bold fill-current"
style={{
fontSize: "20px",
letterSpacing: "-0.02em",
dominantBaseline: verticalAlign === "center" ? "middle" : "text-before-edge"
}}
x="50%"
y="50%"
dominantBaseline="middle"
textAnchor="middle"
className="text-2xl font-bold"
>
{logoText}
{text}
</text>
</svg>
);
});
};
SvgTextLogo.displayName = "SvgTextLogo";
export default SvgTextLogo;
export default SvgTextLogo;