Merge version_1 into main #2
@@ -9,7 +9,7 @@ import ProductCardThree from '@/components/sections/product/ProductCardThree';
|
||||
import FeatureCardMedia from '@/components/sections/feature/FeatureCardMedia';
|
||||
import ContactFaq from '@/components/sections/contact/ContactFaq';
|
||||
import FooterMedia from '@/components/sections/footer/FooterMedia';
|
||||
import { Flame, Star, Heart, Chef, Leaf, Users, Gift, Sun, Wine, Phone } from 'lucide-react';
|
||||
import { Flame, Star, Heart, Leaf, Users, Gift, Sun, Wine, Phone } from 'lucide-react';
|
||||
|
||||
export default function LandingPage() {
|
||||
return (
|
||||
@@ -19,7 +19,7 @@ export default function LandingPage() {
|
||||
borderRadius="pill"
|
||||
contentWidth="smallMedium"
|
||||
sizing="largeSmallSizeLargeTitles"
|
||||
background="circleGradient"
|
||||
background="none"
|
||||
cardStyle="soft-shadow"
|
||||
primaryButtonStyle="shadow"
|
||||
secondaryButtonStyle="layered"
|
||||
@@ -46,18 +46,18 @@ export default function LandingPage() {
|
||||
tag="Authentic Greek Cuisine"
|
||||
tagIcon={Flame}
|
||||
tagAnimation="slide-up"
|
||||
background={{ variant: "circleGradient" }}
|
||||
background={{ variant: "plain" }}
|
||||
leftCarouselItems={[
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/meat-set-table_140725-8629.jpg?_wi=1", imageAlt: "Greek gyros rotating on spit" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/meat-set-table_140725-8629.jpg", imageAlt: "Greek gyros rotating on spit" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/delicious-churros-paper-bag-melted-chocolate_23-2148379666.jpg", imageAlt: "Traditional Greek coffee pouring" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/close-up-family-enjoying-food-together_23-2149228745.jpg?_wi=1", imageAlt: "Family Greek kitchen" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/terrace-ready-customers_1137-93.jpg?_wi=1", imageAlt: "Cozy outdoor seating area" }
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/close-up-family-enjoying-food-together_23-2149228745.jpg", imageAlt: "Family Greek kitchen" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/terrace-ready-customers_1137-93.jpg", imageAlt: "Cozy outdoor seating area" }
|
||||
]}
|
||||
rightCarouselItems={[
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/azerbaijani-traditional-kebab-barbeque-lavash-with-sumakh-onion-green-salad_114579-2939.jpg?_wi=1", imageAlt: "Grilled souvlaki on charcoal" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/baked-zucchini-rolls-with-ricotta-cheese-marinara-sauce-wooden-background-italian-style_127032-3423.jpg?_wi=1", imageAlt: "Traditional Greek moussaka" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/azerbaijani-traditional-kebab-barbeque-lavash-with-sumakh-onion-green-salad_114579-2939.jpg", imageAlt: "Grilled souvlaki on charcoal" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/baked-zucchini-rolls-with-ricotta-cheese-marinara-sauce-wooden-background-italian-style_127032-3423.jpg", imageAlt: "Traditional Greek moussaka" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/side-view-people-putting-skewers-grill_23-2149409368.jpg", imageAlt: "Chef grilling over flames" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/small-bucket-grapes-inside-ceramic-plate-hand-pouring-wine-into-glass-marble_114579-30861.jpg?_wi=1", imageAlt: "Cold Greek beer" }
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/small-bucket-grapes-inside-ceramic-plate-hand-pouring-wine-into-glass-marble_114579-30861.jpg", imageAlt: "Cold Greek beer" }
|
||||
]}
|
||||
buttons={[
|
||||
{ text: "Order Online", href: "order" },
|
||||
@@ -98,10 +98,10 @@ export default function LandingPage() {
|
||||
useInvertedBackground={true}
|
||||
imagePosition="right"
|
||||
mediaAnimation="blur-reveal"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/close-up-family-enjoying-food-together_23-2149228745.jpg?_wi=2"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/close-up-family-enjoying-food-together_23-2149228745.jpg"
|
||||
imageAlt="Family Greek kitchen"
|
||||
bulletPoints={[
|
||||
{ title: "Authentic Greek Recipes", description: "Traditional cooking methods passed down through generations.", icon: Chef },
|
||||
{ title: "Authentic Greek Recipes", description: "Traditional cooking methods passed down through generations.", icon: Leaf },
|
||||
{ title: "Fresh Ingredients", description: "Prepared daily to ensure the highest quality in every dish.", icon: Leaf },
|
||||
{ title: "Family-Run Restaurant", description: "Warm and genuine service that feels like home.", icon: Users },
|
||||
{ title: "Great Value Portions", description: "Generous plates at fair prices that respect your budget.", icon: Gift }
|
||||
@@ -122,12 +122,12 @@ export default function LandingPage() {
|
||||
animationType="slide-up"
|
||||
gridVariant="three-columns-all-equal-width"
|
||||
products={[
|
||||
{ id: "1", name: "Gyros Wrap", price: "£8.50", imageSrc: "http://img.b2bpic.net/free-photo/meat-set-table_140725-8629.jpg?_wi=2", imageAlt: "Juicy gyros wrap" },
|
||||
{ id: "2", name: "Chicken Souvlaki", price: "£10.00", imageSrc: "http://img.b2bpic.net/free-photo/azerbaijani-traditional-kebab-barbeque-lavash-with-sumakh-onion-green-salad_114579-2939.jpg?_wi=2", imageAlt: "Charcoal grilled chicken souvlaki" },
|
||||
{ id: "1", name: "Gyros Wrap", price: "£8.50", imageSrc: "http://img.b2bpic.net/free-photo/meat-set-table_140725-8629.jpg", imageAlt: "Juicy gyros wrap" },
|
||||
{ id: "2", name: "Chicken Souvlaki", price: "£10.00", imageSrc: "http://img.b2bpic.net/free-photo/azerbaijani-traditional-kebab-barbeque-lavash-with-sumakh-onion-green-salad_114579-2939.jpg", imageAlt: "Charcoal grilled chicken souvlaki" },
|
||||
{ id: "3", name: "Halloumi Skepasti", price: "£9.50", imageSrc: "http://img.b2bpic.net/free-photo/penne-pasta-with-tomatoes-spices-white-plate_114579-34545.jpg", imageAlt: "Crispy grilled halloumi" },
|
||||
{ id: "4", name: "Traditional Moussaka", price: "£12.00", imageSrc: "http://img.b2bpic.net/free-photo/baked-zucchini-rolls-with-ricotta-cheese-marinara-sauce-wooden-background-italian-style_127032-3423.jpg?_wi=2", imageAlt: "Rich layers of moussaka" },
|
||||
{ id: "5", name: "Greek Salad", price: "£7.50", imageSrc: "http://img.b2bpic.net/free-photo/top-view-salad-with-feta-cheese-cutting-board_23-2148700461.jpg?_wi=1", imageAlt: "Fresh Greek salad" },
|
||||
{ id: "6", name: "Shrimp Scampi", price: "£13.50", imageSrc: "http://img.b2bpic.net/free-photo/small-bucket-grapes-inside-ceramic-plate-hand-pouring-wine-into-glass-marble_114579-30861.jpg?_wi=2", imageAlt: "Garlic butter shrimp" }
|
||||
{ id: "4", name: "Traditional Moussaka", price: "£12.00", imageSrc: "http://img.b2bpic.net/free-photo/baked-zucchini-rolls-with-ricotta-cheese-marinara-sauce-wooden-background-italian-style_127032-3423.jpg", imageAlt: "Rich layers of moussaka" },
|
||||
{ id: "5", name: "Greek Salad", price: "£7.50", imageSrc: "http://img.b2bpic.net/free-photo/top-view-salad-with-feta-cheese-cutting-board_23-2148700461.jpg", imageAlt: "Fresh Greek salad" },
|
||||
{ id: "6", name: "Shrimp Scampi", price: "£13.50", imageSrc: "http://img.b2bpic.net/free-photo/small-bucket-grapes-inside-ceramic-plate-hand-pouring-wine-into-glass-marble_114579-30861.jpg", imageAlt: "Garlic butter shrimp" }
|
||||
]}
|
||||
buttons={[
|
||||
{ text: "View Full Menu", href: "menu" }
|
||||
@@ -144,10 +144,10 @@ export default function LandingPage() {
|
||||
useInvertedBackground={true}
|
||||
animationType="slide-up"
|
||||
features={[
|
||||
{ id: "1", title: "Authentic Greek Recipes", description: "Traditional cooking methods that honour centuries of Mediterranean culinary excellence.", tag: "Heritage", imageSrc: "http://img.b2bpic.net/free-photo/close-up-family-enjoying-food-together_23-2149228745.jpg?_wi=3", imageAlt: "Authentic Greek kitchen" },
|
||||
{ id: "2", title: "Fresh Ingredients Daily", description: "We source premium ingredients prepared fresh each day for maximum flavour and quality.", tag: "Quality", imageSrc: "http://img.b2bpic.net/free-photo/top-view-salad-with-feta-cheese-cutting-board_23-2148700461.jpg?_wi=2", imageAlt: "Fresh Greek salad ingredients" },
|
||||
{ id: "1", title: "Authentic Greek Recipes", description: "Traditional cooking methods that honour centuries of Mediterranean culinary excellence.", tag: "Heritage", imageSrc: "http://img.b2bpic.net/free-photo/close-up-family-enjoying-food-together_23-2149228745.jpg", imageAlt: "Authentic Greek kitchen" },
|
||||
{ id: "2", title: "Fresh Ingredients Daily", description: "We source premium ingredients prepared fresh each day for maximum flavour and quality.", tag: "Quality", imageSrc: "http://img.b2bpic.net/free-photo/top-view-salad-with-feta-cheese-cutting-board_23-2148700461.jpg", imageAlt: "Fresh Greek salad ingredients" },
|
||||
{ id: "3", title: "Family-Run Warmth", description: "Genuine hospitality from a family business that treats every customer like family.", tag: "Hospitality", imageSrc: "http://img.b2bpic.net/free-photo/waiter-wearing-face-mask-while-talking-customer-cafe_637285-12493.jpg", imageAlt: "Warm family service" },
|
||||
{ id: "4", title: "Great Value", description: "Generous portions and authentic flavour at prices that make Greek dining accessible.", tag: "Value", imageSrc: "http://img.b2bpic.net/free-photo/baked-zucchini-rolls-with-ricotta-cheese-marinara-sauce-wooden-background-italian-style_127032-3423.jpg?_wi=3", imageAlt: "Generous portion sizes" }
|
||||
{ id: "4", title: "Great Value", description: "Generous portions and authentic flavour at prices that make Greek dining accessible.", tag: "Value", imageSrc: "http://img.b2bpic.net/free-photo/baked-zucchini-rolls-with-ricotta-cheese-marinara-sauce-wooden-background-italian-style_127032-3423.jpg", imageAlt: "Generous portion sizes" }
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
@@ -163,7 +163,7 @@ export default function LandingPage() {
|
||||
useInvertedBackground={false}
|
||||
imagePosition="left"
|
||||
mediaAnimation="opacity"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/terrace-ready-customers_1137-93.jpg?_wi=2"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/terrace-ready-customers_1137-93.jpg"
|
||||
imageAlt="Cozy outdoor seating"
|
||||
bulletPoints={[
|
||||
{ title: "Outdoor Seating", description: "Enjoy Mediterranean charm under the stars.", icon: Sun },
|
||||
@@ -195,7 +195,7 @@ export default function LandingPage() {
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterMedia
|
||||
imageSrc="http://img.b2bpic.net/free-photo/terrace-ready-customers_1137-93.jpg?_wi=3"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/terrace-ready-customers_1137-93.jpg"
|
||||
imageAlt="Athens Grill outdoor seating"
|
||||
logoText="Athens Grill & Coffee 🇬🇷"
|
||||
copyrightText="© 2025 Athens Grill & Coffee. Authentic Greek Cuisine in London."
|
||||
|
||||
@@ -1,51 +1,43 @@
|
||||
"use client";
|
||||
import React from 'react';
|
||||
import { SVGProps } from 'react';
|
||||
|
||||
import { memo } from "react";
|
||||
import useSvgTextLogo from "./useSvgTextLogo";
|
||||
import { cls } from "@/lib/utils";
|
||||
|
||||
interface SvgTextLogoProps {
|
||||
logoText: string;
|
||||
adjustHeightFactor?: number;
|
||||
verticalAlign?: "top" | "center";
|
||||
className?: string;
|
||||
interface SvgTextLogoProps extends SVGProps<SVGSVGElement> {
|
||||
text?: string;
|
||||
fontSize?: number;
|
||||
fontWeight?: string | number;
|
||||
fill?: string;
|
||||
fontFamily?: 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 = "Logo", fontSize = 48,
|
||||
fontWeight = 700,
|
||||
fill = "currentColor", fontFamily = "system-ui, -apple-system, sans-serif", width = 200,
|
||||
height = 100,
|
||||
...props
|
||||
}) => {
|
||||
return (
|
||||
<svg
|
||||
ref={svgRef}
|
||||
viewBox={viewBox}
|
||||
className={cls("w-full", className)}
|
||||
style={{ aspectRatio: aspectRatio }}
|
||||
preserveAspectRatio="none"
|
||||
role="img"
|
||||
aria-label={`${logoText} logo`}
|
||||
width={width}
|
||||
height={height}
|
||||
viewBox={`0 0 ${width} ${height}`}
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...props}
|
||||
>
|
||||
<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%"
|
||||
textAnchor="middle"
|
||||
dominantBaseline="middle"
|
||||
fontSize={fontSize}
|
||||
fontWeight={fontWeight}
|
||||
fill={fill}
|
||||
fontFamily={fontFamily}
|
||||
>
|
||||
{logoText}
|
||||
{text}
|
||||
</text>
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
};
|
||||
|
||||
SvgTextLogo.displayName = "SvgTextLogo";
|
||||
|
||||
export default SvgTextLogo;
|
||||
export default SvgTextLogo;
|
||||
Reference in New Issue
Block a user