From 16c40d55329f9b94f2c8029fdc4b2ee5de8ae3e5 Mon Sep 17 00:00:00 2001 From: bender Date: Tue, 10 Mar 2026 22:24:34 +0000 Subject: [PATCH 1/2] Update src/app/page.tsx --- src/app/page.tsx | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index 820b5f5..6c8c608 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -20,7 +20,7 @@ export default function LandingPage() { borderRadius="soft" contentWidth="small" sizing="large" - background="floatingGradient" + background="circleGradient" cardStyle="soft-shadow" primaryButtonStyle="gradient" secondaryButtonStyle="radial-glow" @@ -45,29 +45,29 @@ export default function LandingPage() { title="Built to Weather Every Texas Storm." description="From roof replacement to precision gutter cleaning, we bring expert craftsmanship, quality materials, and white-glove service to every home we protect." tag="Texas's Premier Roofing Specialists" - background={{ variant: "floatingGradient" }} + background={{ variant: "sparkles-gradient" }} buttons={[ { text: "Get a Free Estimate", href: "contact" }, { text: "Our Services", href: "services" } ]} mediaItems={[ { - imageSrc: "http://img.b2bpic.net/free-photo/man-working-roof-front-view_23-2148748780.jpg?_wi=1", imageAlt: "Texas roofing project" + imageSrc: "http://img.b2bpic.net/free-photo/man-working-roof-front-view_23-2148748780.jpg", imageAlt: "Texas roofing project" }, { - imageSrc: "http://img.b2bpic.net/free-photo/worker-with-level-building-roof-house_23-2148748855.jpg?_wi=1", imageAlt: "Roof replacement work" + imageSrc: "http://img.b2bpic.net/free-photo/worker-with-level-building-roof-house_23-2148748855.jpg", imageAlt: "Roof replacement work" }, { - imageSrc: "http://img.b2bpic.net/free-photo/traditional-ceramic-roof-tiles-government-building-dijon-burgundy-france_1101-2530.jpg?_wi=1", imageAlt: "Professional roof repair" + imageSrc: "http://img.b2bpic.net/free-photo/traditional-ceramic-roof-tiles-government-building-dijon-burgundy-france_1101-2530.jpg", imageAlt: "Professional roof repair" }, { - imageSrc: "http://img.b2bpic.net/free-photo/man-working-roof-with-drill_23-2148748770.jpg?_wi=1", imageAlt: "Roof maintenance service" + imageSrc: "http://img.b2bpic.net/free-photo/man-working-roof-with-drill_23-2148748770.jpg", imageAlt: "Roof maintenance service" }, { - imageSrc: "http://img.b2bpic.net/free-photo/construction-worker-doing-his-job-with-belt_23-2149343658.jpg?_wi=1", imageAlt: "Gutter cleaning service" + imageSrc: "http://img.b2bpic.net/free-photo/construction-worker-doing-his-job-with-belt_23-2149343658.jpg", imageAlt: "Gutter cleaning service" }, { - imageSrc: "http://img.b2bpic.net/free-photo/laborer-building-roof-house_23-2148748844.jpg?_wi=1", imageAlt: "New construction roofing" + imageSrc: "http://img.b2bpic.net/free-photo/laborer-building-roof-house_23-2148748844.jpg", imageAlt: "New construction roofing" } ]} /> @@ -82,10 +82,11 @@ export default function LandingPage() { { value: "5★", title: "Rated Service" }, { value: "100%", title: "Satisfaction Guarantee" } ]} - imageSrc="http://img.b2bpic.net/free-photo/diverse-coworkers-wearing-industrail-overall-helmet_482257-76937.jpg?_wi=1" + imageSrc="http://img.b2bpic.net/free-photo/diverse-coworkers-wearing-industrail-overall-helmet_482257-76937.jpg" imageAlt="Professional roofing craftsmanship" useInvertedBackground={true} mediaAnimation="slide-up" + metricsAnimation="slide-up" /> @@ -96,23 +97,23 @@ export default function LandingPage() { products={[ { id: "1", brand: "Premium Service", name: "Roof Replacement", price: "Expert Craftsmanship", rating: 5, - reviewCount: "100+", imageSrc: "http://img.b2bpic.net/free-photo/worker-with-level-building-roof-house_23-2148748855.jpg?_wi=2", imageAlt: "Total roof replacement" + reviewCount: "100+", imageSrc: "http://img.b2bpic.net/free-photo/worker-with-level-building-roof-house_23-2148748855.jpg", imageAlt: "Total roof replacement" }, { id: "2", brand: "Expert Repair", name: "Roof Damage Repair", price: "Full Restoration", rating: 5, - reviewCount: "100+", imageSrc: "http://img.b2bpic.net/free-photo/traditional-ceramic-roof-tiles-government-building-dijon-burgundy-france_1101-2530.jpg?_wi=2", imageAlt: "Precision roof repair" + reviewCount: "100+", imageSrc: "http://img.b2bpic.net/free-photo/traditional-ceramic-roof-tiles-government-building-dijon-burgundy-france_1101-2530.jpg", imageAlt: "Precision roof repair" }, { id: "3", brand: "Maintenance Plans", name: "Roof Maintenance", price: "Preventive Care", rating: 5, - reviewCount: "100+", imageSrc: "http://img.b2bpic.net/free-photo/man-working-roof-with-drill_23-2148748770.jpg?_wi=2", imageAlt: "Regular roof maintenance" + reviewCount: "100+", imageSrc: "http://img.b2bpic.net/free-photo/man-working-roof-with-drill_23-2148748770.jpg", imageAlt: "Regular roof maintenance" }, { id: "4", brand: "Gutter Service", name: "Gutter Cleaning", price: "Professional Detail", rating: 5, - reviewCount: "100+", imageSrc: "http://img.b2bpic.net/free-photo/construction-worker-doing-his-job-with-belt_23-2149343658.jpg?_wi=2", imageAlt: "Professional gutter cleaning" + reviewCount: "100+", imageSrc: "http://img.b2bpic.net/free-photo/construction-worker-doing-his-job-with-belt_23-2149343658.jpg", imageAlt: "Professional gutter cleaning" }, { id: "5", brand: "New Builds", name: "New Construction", price: "Premium Materials", rating: 5, - reviewCount: "100+", imageSrc: "http://img.b2bpic.net/free-photo/laborer-building-roof-house_23-2148748844.jpg?_wi=2", imageAlt: "New construction roofing" + reviewCount: "100+", imageSrc: "http://img.b2bpic.net/free-photo/laborer-building-roof-house_23-2148748844.jpg", imageAlt: "New construction roofing" }, { id: "6", brand: "Emergency Response", name: "Emergency Service", price: "Fast Response", rating: 5, @@ -135,19 +136,19 @@ export default function LandingPage() { features={[ { id: 1, - tag: "Step 1", title: "Free Consultation", subtitle: "Schedule Your Estimate", description: "Call or submit your info online. We'll schedule a free on-site estimate at your convenience.", imageSrc: "http://img.b2bpic.net/free-photo/diverse-coworkers-wearing-industrail-overall-helmet_482257-76937.jpg?_wi=2", imageAlt: "Free consultation" + tag: "Step 1", title: "Free Consultation", subtitle: "Schedule Your Estimate", description: "Call or submit your info online. We'll schedule a free on-site estimate at your convenience.", imageSrc: "http://img.b2bpic.net/free-photo/diverse-coworkers-wearing-industrail-overall-helmet_482257-76937.jpg", imageAlt: "Free consultation" }, { id: 2, - tag: "Step 2", title: "Detailed Estimate", subtitle: "Clear Pricing", description: "Receive a clear, itemized quote with no hidden fees. We'll walk you through exactly what's needed.", imageSrc: "http://img.b2bpic.net/free-photo/worker-with-level-building-roof-house_23-2148748855.jpg?_wi=3", imageAlt: "Detailed estimate" + tag: "Step 2", title: "Detailed Estimate", subtitle: "Clear Pricing", description: "Receive a clear, itemized quote with no hidden fees. We'll walk you through exactly what's needed.", imageSrc: "http://img.b2bpic.net/free-photo/worker-with-level-building-roof-house_23-2148748855.jpg", imageAlt: "Detailed estimate" }, { id: 3, - tag: "Step 3", title: "Expert Execution", subtitle: "Professional Installation", description: "Our skilled crew arrives on time, respects your property, and delivers exceptional results.", imageSrc: "http://img.b2bpic.net/free-photo/man-working-roof-with-drill_23-2148748770.jpg?_wi=3", imageAlt: "Expert execution" + tag: "Step 3", title: "Expert Execution", subtitle: "Professional Installation", description: "Our skilled crew arrives on time, respects your property, and delivers exceptional results.", imageSrc: "http://img.b2bpic.net/free-photo/man-working-roof-with-drill_23-2148748770.jpg", imageAlt: "Expert execution" }, { id: 4, - tag: "Step 4", title: "Final Walkthrough", subtitle: "Complete Satisfaction", description: "We review completed work with you and don't leave until you're completely satisfied.", imageSrc: "http://img.b2bpic.net/free-photo/man-working-roof-front-view_23-2148748780.jpg?_wi=2", imageAlt: "Final walkthrough" + tag: "Step 4", title: "Final Walkthrough", subtitle: "Complete Satisfaction", description: "We review completed work with you and don't leave until you're completely satisfied.", imageSrc: "http://img.b2bpic.net/free-photo/man-working-roof-front-view_23-2148748780.jpg", imageAlt: "Final walkthrough" } ]} /> @@ -247,7 +248,7 @@ export default function LandingPage() { tag="Call to Action" title="Your Roof Deserves the Best in Texas." description="Free estimates. No pressure. Just honest work done right. Contact us today to protect your home." - background={{ variant: "floatingGradient" }} + background={{ variant: "sparkles-gradient" }} useInvertedBackground={true} inputPlaceholder="Enter your email" buttonText="Get Free Estimate" -- 2.49.1 From 25995378b74c18e53b03923072c5af91e486f14f Mon Sep 17 00:00:00 2001 From: bender Date: Tue, 10 Mar 2026 22:24:34 +0000 Subject: [PATCH 2/2] Update src/components/shared/SvgTextLogo/SvgTextLogo.tsx --- .../shared/SvgTextLogo/SvgTextLogo.tsx | 64 +++++++++---------- 1 file changed, 29 insertions(+), 35 deletions(-) diff --git a/src/components/shared/SvgTextLogo/SvgTextLogo.tsx b/src/components/shared/SvgTextLogo/SvgTextLogo.tsx index f214190..b25407b 100644 --- a/src/components/shared/SvgTextLogo/SvgTextLogo.tsx +++ b/src/components/shared/SvgTextLogo/SvgTextLogo.tsx @@ -1,51 +1,45 @@ -"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; + letterSpacing?: number; } -const SvgTextLogo = memo(function SvgTextLogo({ - logoText, - adjustHeightFactor, - verticalAlign = "top", - className = "", -}) { - const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor); +export const SvgTextLogo: React.FC = ({ + text, + className = '', + fontSize = 24, + fontWeight = 700, + letterSpacing = 0, +}) => { + const width = text.length * (fontSize * 0.6); + const height = fontSize * 1.5; + const y = fontSize; return ( - {logoText} + {text} ); -}); +}; -SvgTextLogo.displayName = "SvgTextLogo"; - -export default SvgTextLogo; +export default SvgTextLogo; \ No newline at end of file -- 2.49.1