Merge version_1 into main #2
@@ -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>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user