Merge version_1 into main #2

Merged
bender merged 2 commits from version_1 into main 2026-03-13 03:29:04 +00:00
2 changed files with 33 additions and 55 deletions

View File

@@ -9,7 +9,7 @@ import TestimonialCardOne from '@/components/sections/testimonial/TestimonialCar
import MetricCardTwo from '@/components/sections/metrics/MetricCardTwo';
import ContactSplit from '@/components/sections/contact/ContactSplit';
import FooterCard from '@/components/sections/footer/FooterCard';
import { Sparkles, Lemon, CheckCircle, Heart, Instagram, Facebook, Twitter, Phone } from 'lucide-react';
import { Sparkles, Citrus, CheckCircle, Heart, Instagram, Facebook, Twitter, Phone } from 'lucide-react';
export default function LandingPage() {
return (
@@ -47,33 +47,33 @@ export default function LandingPage() {
tagIcon={Sparkles}
title="Quench Your Thirst with Real Lemonade"
description="Handcrafted lemonade made fresh daily with quality ingredients. Perfect for summer gatherings, picnics, and outdoor events. Experience the taste of pure refreshment."
background={{ variant: "glowing-orb" }}
background={{ variant: "fluid" }}
leftCarouselItems={[
{
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=y1jrzp&_wi=1", imageAlt: "Fresh lemonade pitcher"
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=y1jrzp", imageAlt: "Fresh lemonade pitcher"
},
{
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=awy1mr&_wi=1", imageAlt: "Quality ingredients"
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=awy1mr", imageAlt: "Quality ingredients"
},
{
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=e4b7iv&_wi=1", imageAlt: "Handmade preparation"
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=e4b7iv", imageAlt: "Handmade preparation"
},
{
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=ajef5t&_wi=1", imageAlt: "Cold refreshing lemonade"
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=ajef5t", imageAlt: "Cold refreshing lemonade"
}
]}
rightCarouselItems={[
{
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=oosafr&_wi=1", imageAlt: "Community gathering"
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=oosafr", imageAlt: "Community gathering"
},
{
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=rs1j7k&_wi=1", imageAlt: "Lemonade stand setup"
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=rs1j7k", imageAlt: "Lemonade stand setup"
},
{
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=y1jrzp&_wi=2", imageAlt: "Fresh lemonade"
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=y1jrzp", imageAlt: "Fresh lemonade"
},
{
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=awy1mr&_wi=2", imageAlt: "Premium ingredients"
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=awy1mr", imageAlt: "Premium ingredients"
}
]}
buttons={[
@@ -87,17 +87,18 @@ export default function LandingPage() {
<div id="about" data-section="about">
<MetricSplitMediaAbout
tag="Our Story"
tagIcon={Lemon}
tagIcon={Citrus}
title="Crafted with Love and Fresh Ingredients"
description="We started our lemonade stand with a simple mission: to bring joy and refreshment to our community with authentic, handcrafted lemonade. Every batch is made fresh daily using only the finest lemons and natural ingredients, with no artificial flavors or preservatives. Our commitment to quality and taste sets us apart."
metrics={[
{ value: "100%", title: "Natural Ingredients" },
{ value: "Fresh Daily", title: "Made to Order" }
]}
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=awy1mr&_wi=3"
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=awy1mr"
imageAlt="Fresh quality ingredients"
useInvertedBackground={true}
mediaAnimation="slide-up"
metricsAnimation="slide-up"
/>
</div>
@@ -112,15 +113,15 @@ export default function LandingPage() {
features={[
{
id: 1,
title: "Premium Fresh Lemons", description: "We source the finest, ripest lemons and squeeze them fresh daily. No bottled juice, no shortcuts. Just pure, natural lemonade.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=e4b7iv&_wi=2", imageAlt: "Fresh lemon pressing"
title: "Premium Fresh Lemons", description: "We source the finest, ripest lemons and squeeze them fresh daily. No bottled juice, no shortcuts. Just pure, natural lemonade.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=e4b7iv", imageAlt: "Fresh lemon pressing"
},
{
id: 2,
title: "Perfectly Refreshing", description: "Cold, crisp, and perfectly balanced sweetness. Every sip is an experience of pure refreshment designed to beat the heat.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=ajef5t&_wi=2", imageAlt: "Cold refreshing lemonade"
title: "Perfectly Refreshing", description: "Cold, crisp, and perfectly balanced sweetness. Every sip is an experience of pure refreshment designed to beat the heat.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=ajef5t", imageAlt: "Cold refreshing lemonade"
},
{
id: 3,
title: "Community Driven", description: "More than just a beverage, our lemonade brings people together. Perfect for gatherings, events, and creating memories with friends and family.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=oosafr&_wi=2", imageAlt: "Community gathering with lemonade"
title: "Community Driven", description: "More than just a beverage, our lemonade brings people together. Perfect for gatherings, events, and creating memories with friends and family.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=oosafr", imageAlt: "Community gathering with lemonade"
}
]}
/>
@@ -180,9 +181,9 @@ export default function LandingPage() {
tagIcon={Phone}
title="Order Your Fresh Lemonade Today"
description="Subscribe to our newsletter for updates, special offers, and event information. Or reach out directly to place a custom order for your next gathering."
background={{ variant: "glowing-orb" }}
background={{ variant: "fluid" }}
useInvertedBackground={false}
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=rs1j7k&_wi=2"
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=rs1j7k"
imageAlt="Our lemonade stand"
mediaPosition="right"
inputPlaceholder="Enter your email"

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);
export 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 300 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"
fontSize="48"
fontWeight="bold"
fill="currentColor"
>
{logoText}
{text}
</text>
</svg>
);
});
SvgTextLogo.displayName = "SvgTextLogo";
export default SvgTextLogo;
};