Merge version_1 into main #2
@@ -43,7 +43,7 @@ export default function LandingPage() {
|
||||
<HeroSplitKpi
|
||||
title="Professional Garden Construction & Landscaping in Rotterdam"
|
||||
description="Transform your outdoor space into a stunning modern garden. Expert design, quality craftsmanship, and on-time delivery for homes and businesses throughout Rotterdam."
|
||||
background={{ variant: "circleGradient" }}
|
||||
background={{ variant: "glowing-orb" }}
|
||||
kpis={[
|
||||
{ value: "⭐ 5.0", label: "Google Rating" },
|
||||
{ value: "15+", label: "Years Experience" },
|
||||
@@ -99,11 +99,11 @@ export default function LandingPage() {
|
||||
features={[
|
||||
{
|
||||
id: 1,
|
||||
title: "Garden Design", description: "Custom garden designs tailored to your vision and outdoor space", imageSrc: "http://img.b2bpic.net/free-photo/old-woman-doing-fitness-exercises_23-2149565535.jpg?_wi=1"
|
||||
title: "Garden Design", description: "Custom garden designs tailored to your vision and outdoor space", imageSrc: "http://img.b2bpic.net/free-photo/old-woman-doing-fitness-exercises_23-2149565535.jpg"
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
title: "Landscape Construction", description: "Professional construction of your new garden from concept to completion", imageSrc: "http://img.b2bpic.net/free-photo/long-corridor-showcase_1127-3442.jpg?_wi=1"
|
||||
title: "Landscape Construction", description: "Professional construction of your new garden from concept to completion", imageSrc: "http://img.b2bpic.net/free-photo/long-corridor-showcase_1127-3442.jpg"
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
@@ -128,15 +128,15 @@ export default function LandingPage() {
|
||||
features={[
|
||||
{
|
||||
id: 1,
|
||||
title: "Free Consultation", description: "Meet with our landscape specialists to discuss your ideas, budget, and timeline", imageSrc: "http://img.b2bpic.net/free-photo/old-woman-doing-fitness-exercises_23-2149565535.jpg?_wi=2"
|
||||
title: "Free Consultation", description: "Meet with our landscape specialists to discuss your ideas, budget, and timeline", imageSrc: "http://img.b2bpic.net/free-photo/old-woman-doing-fitness-exercises_23-2149565535.jpg"
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
title: "Garden Design & Planning", description: "Detailed design proposal with 3D visualization and material selections", imageSrc: "http://img.b2bpic.net/free-photo/long-corridor-showcase_1127-3442.jpg?_wi=2"
|
||||
title: "Garden Design & Planning", description: "Detailed design proposal with 3D visualization and material selections", imageSrc: "http://img.b2bpic.net/free-photo/long-corridor-showcase_1127-3442.jpg"
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
title: "Professional Construction", description: "Expert team builds your garden with precision and quality craftsmanship", imageSrc: "http://img.b2bpic.net/free-photo/covered-lifestyle-garden-with-indoor-outdoor-living_1127-3424.jpg?_wi=1"
|
||||
title: "Professional Construction", description: "Expert team builds your garden with precision and quality craftsmanship", imageSrc: "http://img.b2bpic.net/free-photo/covered-lifestyle-garden-with-indoor-outdoor-living_1127-3424.jpg"
|
||||
}
|
||||
]}
|
||||
textboxLayout="default"
|
||||
@@ -156,7 +156,7 @@ export default function LandingPage() {
|
||||
blogs={[
|
||||
{
|
||||
id: "1", category: ["Modern Design", "Patio Construction"],
|
||||
title: "Contemporary Garden with Stone Patio", excerpt: "Beautiful modern garden featuring natural stone patio, contemporary plantings, and outdoor living space perfect for entertaining.", imageSrc: "http://img.b2bpic.net/free-photo/covered-lifestyle-garden-with-indoor-outdoor-living_1127-3424.jpg?_wi=2", imageAlt: "Modern garden with stone patio", authorName: "Van der Parre Team", authorAvatar: "http://img.b2bpic.net/free-photo/portrait-professional-elegant-businessman_23-2150917050.jpg", date: "March 2025"
|
||||
title: "Contemporary Garden with Stone Patio", excerpt: "Beautiful modern garden featuring natural stone patio, contemporary plantings, and outdoor living space perfect for entertaining.", imageSrc: "http://img.b2bpic.net/free-photo/covered-lifestyle-garden-with-indoor-outdoor-living_1127-3424.jpg", imageAlt: "Modern garden with stone patio", authorName: "Van der Parre Team", authorAvatar: "http://img.b2bpic.net/free-photo/portrait-professional-elegant-businessman_23-2150917050.jpg", date: "March 2025"
|
||||
},
|
||||
{
|
||||
id: "2", category: ["Garden Renovation", "Luxury Design"],
|
||||
@@ -186,7 +186,7 @@ export default function LandingPage() {
|
||||
animationType="slide-up"
|
||||
testimonials={[
|
||||
{
|
||||
id: "1", name: "Ruben Den Butter", handle: "Rotterdam Homeowner", testimonial: "Delivered exactly the result we expected. Very professional work and delivered even before the deadline. Highly recommended!", imageSrc: "http://img.b2bpic.net/free-photo/portrait-professional-elegant-businessman_23-2150917050.jpg?_wi=1", imageAlt: "Ruben Den Butter"
|
||||
id: "1", name: "Ruben Den Butter", handle: "Rotterdam Homeowner", testimonial: "Delivered exactly the result we expected. Very professional work and delivered even before the deadline. Highly recommended!", imageSrc: "http://img.b2bpic.net/free-photo/portrait-professional-elegant-businessman_23-2150917050.jpg", imageAlt: "Ruben Den Butter"
|
||||
},
|
||||
{
|
||||
id: "2", name: "Maria van de Berg", handle: "Rotterdam Business Owner", testimonial: "Outstanding service from consultation to final result. The team was professional, punctual, and delivered exceptional quality. Our garden is stunning!", imageSrc: "http://img.b2bpic.net/free-photo/businesswoman-her-desk_23-2147636005.jpg", imageAlt: "Maria van de Berg"
|
||||
@@ -201,7 +201,7 @@ export default function LandingPage() {
|
||||
id: "5", name: "Thomas Vermeulen", handle: "Rotterdam Homeowner", testimonial: "From initial consultation through project completion, Van der Parre & Co exceeded expectations. Highly skilled team with genuine passion for landscaping.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-business-man-posing-with-crossed-arms_23-2149206526.jpg", imageAlt: "Thomas Vermeulen"
|
||||
},
|
||||
{
|
||||
id: "6", name: "Anna Hermans", handle: "Capelle aan den IJssel", testimonial: "Outstanding attention to detail and quality materials. Our garden is now our favorite outdoor space. Absolutely fantastic work!", imageSrc: "http://img.b2bpic.net/free-photo/portrait-professional-elegant-businessman_23-2150917050.jpg?_wi=2", imageAlt: "Anna Hermans"
|
||||
id: "6", name: "Anna Hermans", handle: "Capelle aan den IJssel", testimonial: "Outstanding attention to detail and quality materials. Our garden is now our favorite outdoor space. Absolutely fantastic work!", imageSrc: "http://img.b2bpic.net/free-photo/portrait-professional-elegant-businessman_23-2150917050.jpg", imageAlt: "Anna Hermans"
|
||||
}
|
||||
]}
|
||||
speed={40}
|
||||
@@ -246,7 +246,7 @@ export default function LandingPage() {
|
||||
description="Get started today with a free consultation. Our team is ready to help you create the outdoor space of your dreams."
|
||||
tagIcon={Sparkles}
|
||||
tagAnimation="slide-up"
|
||||
background={{ variant: "circleGradient" }}
|
||||
background={{ variant: "glowing-orb" }}
|
||||
useInvertedBackground={true}
|
||||
inputPlaceholder="Your email address"
|
||||
buttonText="Request Quote"
|
||||
|
||||
@@ -1,51 +1,48 @@
|
||||
"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;
|
||||
fontSize?: number;
|
||||
fontFamily?: string;
|
||||
fontWeight?: number | string;
|
||||
fill?: 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,
|
||||
fontSize = 24,
|
||||
fontFamily = 'Arial, sans-serif',
|
||||
fontWeight = 'bold',
|
||||
fill = 'currentColor',
|
||||
className = '',
|
||||
}) => {
|
||||
const padding = 8;
|
||||
const estimatedWidth = text.length * fontSize * 0.6;
|
||||
const width = estimatedWidth + padding * 2;
|
||||
const height = fontSize + padding * 2;
|
||||
|
||||
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"
|
||||
className={className}
|
||||
>
|
||||
<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={padding}
|
||||
y={fontSize + padding}
|
||||
fontSize={fontSize}
|
||||
fontFamily={fontFamily}
|
||||
fontWeight={fontWeight}
|
||||
fill={fill}
|
||||
dominantBaseline="hanging"
|
||||
>
|
||||
{logoText}
|
||||
{text}
|
||||
</text>
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
|
||||
SvgTextLogo.displayName = "SvgTextLogo";
|
||||
};
|
||||
|
||||
export default SvgTextLogo;
|
||||
|
||||
Reference in New Issue
Block a user