diff --git a/src/app/page.tsx b/src/app/page.tsx index 436c353..1a4f598 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -20,7 +20,7 @@ export default function LandingPage() { borderRadius="pill" contentWidth="small" sizing="mediumSizeLargeTitles" - background="blurBottom" + background="circleGradient" cardStyle="outline" primaryButtonStyle="double-inset" secondaryButtonStyle="solid" @@ -50,7 +50,7 @@ export default function LandingPage() { { text: "Browse Products", href: "#products" }, { text: "Request Quote" } ]} - background={{ variant: "blurBottom" }} + background={{ variant: "plain" }} imageSrc="http://img.b2bpic.net/free-photo/girl-standing-inside-bathroom-holding-toilet-paper_23-2147824091.jpg" imageAlt="Modern door frame manufacturing facility" mediaAnimation="slide-up" @@ -139,16 +139,13 @@ export default function LandingPage() { imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-smiley-man-holding-project_23-2148751960.jpg", imageAlt: "Marcus Johnson" }, { - id: "2", name: "Sarah Chen", handle: "@chenconstruction", testimonial: "The precision of their frames saves us time on every installation. Perfect fit, every time. BuildFrame understands what contractors need.", rating: 5, - imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-with-crossed-arms-outdoors_23-2148269268.jpg", imageAlt: "Sarah Chen" + id: "2", name: "Sarah Chen", handle: "@chenconstruction", testimonial: "The precision of their frames saves us time on every installation. Perfect fit, every time. BuildFrame understands what contractors need.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-with-crossed-arms-outdoors_23-2148269268.jpg", imageAlt: "Sarah Chen" }, { - id: "3", name: "David Rodriguez", handle: "@rodriguezdev", testimonial: "Custom specifications never been easier. Their team works with us to get it right. Professional, responsive, and committed to excellence.", rating: 5, - imageSrc: "http://img.b2bpic.net/free-photo/smiling-mechanic-standing-repair-shop_1170-1349.jpg", imageAlt: "David Rodriguez" + id: "3", name: "David Rodriguez", handle: "@rodriguezdev", testimonial: "Custom specifications never been easier. Their team works with us to get it right. Professional, responsive, and committed to excellence.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/smiling-mechanic-standing-repair-shop_1170-1349.jpg", imageAlt: "David Rodriguez" }, { - id: "4", name: "Jennifer Park", handle: "@parkproperties", testimonial: "We specify BuildFrame on all our projects. Quality products, fair pricing, and support that actually cares about our success.", rating: 5, - imageSrc: "http://img.b2bpic.net/free-photo/business-woman-with-glasses-front-glass-building_23-2147704438.jpg", imageAlt: "Jennifer Park" + id: "4", name: "Jennifer Park", handle: "@parkproperties", testimonial: "We specify BuildFrame on all our projects. Quality products, fair pricing, and support that actually cares about our success.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/business-woman-with-glasses-front-glass-building_23-2147704438.jpg", imageAlt: "Jennifer Park" } ]} showRating={true} @@ -167,24 +164,21 @@ export default function LandingPage() { { id: "standard-order", tag: "Standard Project", price: "$145", period: "/frame", description: "Perfect for residential projects. Pre-cut to your specifications with factory finish.", button: { text: "Request Quote", href: "#contact" - }, - featuresTitle: "What's Included:", features: [ + }, featuresTitle: "What's Included:", features: [ "Custom dimensions to specification", "Factory-applied finish", "Standard 5-7 day delivery", "Hardware included", "Installation support" ] }, { id: "bulk-order", tag: "Bulk & Volume", price: "Custom", period: "pricing", description: "Volume discounts for large projects and contractor accounts. Dedicated account management.", button: { text: "Contact Sales", href: "#contact" - }, - featuresTitle: "What's Included:", features: [ + }, featuresTitle: "What's Included:", features: [ "Volume-based pricing", "Expedited delivery options", "Dedicated account manager", "Custom finishing available", "Project planning assistance" ] }, { id: "emergency-rush", tag: "Emergency Rush", price: "POA", period: "rush fee", description: "Need frames fast? Our rush program delivers in 2-3 days for urgent projects.", button: { text: "Rush Request", href: "#contact" - }, - featuresTitle: "What's Included:", features: [ + }, featuresTitle: "What's Included:", features: [ "2-3 day turnaround", "Rush handling fee applies", "Priority production slot", "Direct production coordination", "Same-day confirmation" ] } diff --git a/src/components/shared/SvgTextLogo/SvgTextLogo.tsx b/src/components/shared/SvgTextLogo/SvgTextLogo.tsx index f214190..027a17c 100644 --- a/src/components/shared/SvgTextLogo/SvgTextLogo.tsx +++ b/src/components/shared/SvgTextLogo/SvgTextLogo.tsx @@ -1,51 +1,60 @@ -"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?: string; + letterSpacing?: string; + dominantBaseline?: 'auto' | 'text-bottom' | 'alphabetic' | 'ideographic' | 'middle' | 'central' | 'mathematical' | 'hanging' | 'text-top'; } -const SvgTextLogo = memo(function SvgTextLogo({ - logoText, - adjustHeightFactor, - verticalAlign = "top", - className = "", -}) { - const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor); +const SvgTextLogo: React.FC = ({ + text, + className, + fontSize = 64, + fontWeight = 'bold', + letterSpacing = 'normal', + dominantBaseline = 'middle', +}) => { + const textRef = React.useRef(null); + const [dimensions, setDimensions] = React.useState({ width: 0, height: 0 }); + + React.useEffect(() => { + if (textRef.current) { + const bbox = textRef.current.getBBox(); + setDimensions({ + width: bbox.width + 20, + height: bbox.height + 20, + }); + } + }, [text]); + + const x = 10; + const y = dimensions.height / 2; return ( - {logoText} + {text} ); -}); - -SvgTextLogo.displayName = "SvgTextLogo"; +}; export default SvgTextLogo;