Merge version_1 into main #2

Merged
bender merged 2 commits from version_1 into main 2026-03-13 06:21:36 +00:00
2 changed files with 52 additions and 53 deletions

View File

@@ -43,31 +43,32 @@ export default function LandingPage() {
tag="Professional Website Design"
title="Professional Websites That Help Your Business Get More Customers"
description="Custom websites built for businesses that want more calls, more enquiries, and a stronger online presence. We specialise in creating high-converting websites for local service businesses."
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=c8iks2&_wi=1"
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=c8iks2"
imageAlt="Professional website mockup showcase"
mediaAnimation="slide-up"
testimonials={[
{
name: "Michael Torres", handle: "Managing Director, Torres Constructions", testimonial: "Webuild transformed our online presence. We went from zero leads online to 10+ qualified inquiries per week. Their team understood our business and delivered results.", rating: 5,
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=2qff6p&_wi=1", imageAlt: "Michael Torres"
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=2qff6p", imageAlt: "Michael Torres"
},
{
name: "Sarah Chen", handle: "Owner, Chen's Electrical Services", testimonial: "Professional, responsive, and results-driven. Our new website has been a game-changer for our business. Highly recommend Webuild to any local service business.", rating: 5,
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=kjpitn&_wi=1", imageAlt: "Sarah Chen"
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=kjpitn", imageAlt: "Sarah Chen"
},
{
name: "David Richardson", handle: "Principal, Richardson Accounting", testimonial: "The best investment we've made for our business this year. More professional, more modern, and it actually converts visitors into clients. Thank you Webuild.", rating: 5,
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=sfl4m8&_wi=1", imageAlt: "David Richardson"
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=sfl4m8", imageAlt: "David Richardson"
},
{
name: "Jessica Wong", handle: "Founder, Wong Marketing Consulting", testimonial: "Webuild doesn't just build websites—they build business tools. They understood what we needed to compete online and delivered beyond expectations.", rating: 5,
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=jwrrsh&_wi=1", imageAlt: "Jessica Wong"
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=jwrrsh", imageAlt: "Jessica Wong"
}
]}
buttons={[
{ text: "Call Now: 0412 060 800", href: "tel:0412060800" },
{ text: "Get a Free Quote", href: "#contact" }
]}
background={{ variant: "plain" }}
useInvertedBackground={false}
/>
</div>
@@ -93,16 +94,16 @@ export default function LandingPage() {
useInvertedBackground={false}
products={[
{
id: "1", name: "New Business Websites", price: "From $2,500", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=c8iks2&_wi=2", imageAlt: "New business website design"
id: "1", name: "New Business Websites", price: "From $2,500", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=c8iks2", imageAlt: "New business website design"
},
{
id: "2", name: "Website Redesigns", price: "From $1,800", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=c8iks2&_wi=3", imageAlt: "Website redesign service"
id: "2", name: "Website Redesigns", price: "From $1,800", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=c8iks2", imageAlt: "Website redesign service"
},
{
id: "3", name: "Lead Generation Websites", price: "From $3,500", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=c8iks2&_wi=4", imageAlt: "Conversion-focused website design"
id: "3", name: "Lead Generation Websites", price: "From $3,500", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=c8iks2", imageAlt: "Conversion-focused website design"
},
{
id: "4", name: "Mobile Optimised Websites", price: "From $1,200", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=c8iks2&_wi=5", imageAlt: "Mobile responsive website"
id: "4", name: "Mobile Optimised Websites", price: "From $1,200", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=c8iks2", imageAlt: "Mobile responsive website"
}
]}
/>
@@ -118,19 +119,19 @@ export default function LandingPage() {
features={[
{
id: 1,
title: "Consultation", description: "We learn about your business, goals, target audience, and what success looks like for you. This consultation is free and helps us understand your unique needs.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=c8iks2&_wi=6", imageAlt: "Consultation meeting"
title: "Consultation", description: "We learn about your business, goals, target audience, and what success looks like for you. This consultation is free and helps us understand your unique needs.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=c8iks2", imageAlt: "Consultation meeting"
},
{
id: 2,
title: "Design & Build", description: "We create a professional, modern website tailored specifically to your business. Every page is designed to convert visitors into customers and generate enquiries.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=c8iks2&_wi=7", imageAlt: "Website design and development"
title: "Design & Build", description: "We create a professional, modern website tailored specifically to your business. Every page is designed to convert visitors into customers and generate enquiries.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=c8iks2", imageAlt: "Website design and development"
},
{
id: 3,
title: "Launch", description: "Your new website goes live and is fully optimised for search engines. We handle all the technical setup so you can focus on your business.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=c8iks2&_wi=8", imageAlt: "Website launch"
title: "Launch", description: "Your new website goes live and is fully optimised for search engines. We handle all the technical setup so you can focus on your business.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=c8iks2", imageAlt: "Website launch"
},
{
id: 4,
title: "Support", description: "We're available for updates, improvements, and ongoing support. Your website is a living asset—we help you make the most of it long-term.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=c8iks2&_wi=9", imageAlt: "Ongoing website support"
title: "Support", description: "We're available for updates, improvements, and ongoing support. Your website is a living asset—we help you make the most of it long-term.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=c8iks2", imageAlt: "Ongoing website support"
}
]}
/>
@@ -148,19 +149,19 @@ export default function LandingPage() {
testimonials={[
{
id: "1", name: "Michael Torres", handle: "Torres Constructions", testimonial: "Webuild transformed our online presence. We went from zero leads online to 10+ qualified inquiries per week. Their team understood our business and delivered results.", rating: 5,
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=2qff6p&_wi=2", imageAlt: "Michael Torres"
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=2qff6p", imageAlt: "Michael Torres"
},
{
id: "2", name: "Sarah Chen", handle: "Chen's Electrical Services", testimonial: "Professional, responsive, and results-driven. Our new website has been a game-changer for our business. Highly recommend Webuild.", rating: 5,
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=kjpitn&_wi=2", imageAlt: "Sarah Chen"
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=kjpitn", imageAlt: "Sarah Chen"
},
{
id: "3", name: "David Richardson", handle: "Richardson Accounting", testimonial: "The best investment we've made for our business this year. More professional, more modern, and it actually converts visitors into clients.", rating: 5,
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=sfl4m8&_wi=2", imageAlt: "David Richardson"
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=sfl4m8", imageAlt: "David Richardson"
},
{
id: "4", name: "Jessica Wong", handle: "Wong Marketing Consulting", testimonial: "Webuild doesn't just build websites—they build business tools. They understood what we needed and delivered beyond expectations.", rating: 5,
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=jwrrsh&_wi=2", imageAlt: "Jessica Wong"
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=jwrrsh", imageAlt: "Jessica Wong"
}
]}
/>
@@ -231,4 +232,4 @@ export default function LandingPage() {
</div>
</ThemeProvider>
);
}
}

View File

@@ -1,51 +1,49 @@
"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;
fontSize?: number;
fontWeight?: number | string;
fill?: string;
textAnchor?: 'start' | 'middle' | 'end';
dominantBaseline?: 'auto' | 'middle' | 'hanging';
}
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 = '',
fontSize = 32,
fontWeight = 'bold',
fill = 'currentColor',
textAnchor = 'middle',
dominantBaseline = 'middle',
}) => {
const svgWidth = Math.max(text.length * (fontSize * 0.6), 200);
const svgHeight = fontSize * 1.5;
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 ${svgWidth} ${svgHeight}`}
width={svgWidth}
height={svgHeight}
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={svgWidth / 2}
y={svgHeight / 2}
fontSize={fontSize}
fontWeight={fontWeight}
fill={fill}
textAnchor={textAnchor}
dominantBaseline={dominantBaseline}
fontFamily="system-ui, -apple-system, sans-serif"
>
{logoText}
{text}
</text>
</svg>
);
});
SvgTextLogo.displayName = "SvgTextLogo";
};
export default SvgTextLogo;