Merge version_1 into main #2
@@ -18,8 +18,7 @@ export default function ContactPage() {
|
||||
|
||||
const footerColumns = [
|
||||
{
|
||||
title: "Services",
|
||||
items: [
|
||||
title: "Services", items: [
|
||||
{ label: "Engine Repair", href: "/services#engine" },
|
||||
{ label: "Brake Service", href: "/services#brake" },
|
||||
{ label: "Oil Changes", href: "/services#oil" },
|
||||
@@ -27,8 +26,7 @@ export default function ContactPage() {
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Company",
|
||||
items: [
|
||||
title: "Company", items: [
|
||||
{ label: "About Us", href: "/about" },
|
||||
{ label: "Reviews", href: "/reviews" },
|
||||
{ label: "Contact", href: "/contact" },
|
||||
@@ -36,13 +34,10 @@ export default function ContactPage() {
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Contact",
|
||||
items: [
|
||||
title: "Contact", items: [
|
||||
{ label: "(941) 749-1090", href: "tel:+19417491090" },
|
||||
{
|
||||
label: "3115 81st Ct E Suite 105, Bradenton, FL 34211",
|
||||
href: "https://maps.google.com/?q=3115+81st+Ct+E+Suite+105+Bradenton+FL+34211",
|
||||
},
|
||||
label: "3115 81st Ct E Suite 105, Bradenton, FL 34211", href: "https://maps.google.com/?q=3115+81st+Ct+E+Suite+105+Bradenton+FL+34211"},
|
||||
{ label: "Monday-Friday: 8AM-6PM", href: "#" },
|
||||
{ label: "Saturday: 9AM-3PM", href: "#" },
|
||||
],
|
||||
@@ -56,7 +51,7 @@ export default function ContactPage() {
|
||||
borderRadius="soft"
|
||||
contentWidth="mediumLarge"
|
||||
sizing="mediumLargeSizeMediumTitles"
|
||||
background="noise"
|
||||
background="circleGradient"
|
||||
cardStyle="glass-elevated"
|
||||
primaryButtonStyle="flat"
|
||||
secondaryButtonStyle="glass"
|
||||
@@ -70,9 +65,7 @@ export default function ContactPage() {
|
||||
id: item.id,
|
||||
}))}
|
||||
button={{
|
||||
text: "Call Now",
|
||||
href: "tel:+19417491090",
|
||||
}}
|
||||
text: "Call Now", href: "tel:+19417491090"}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -84,8 +77,8 @@ export default function ContactPage() {
|
||||
{ text: "Call Now", href: "tel:+19417491090" },
|
||||
{ text: "Get a Free Quote", href: "#contact" },
|
||||
]}
|
||||
background={{ variant: "noise" }}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/metal-rack-with-set-wrench-spanners-tools_627829-12186.jpg?_wi=2"
|
||||
background={{ variant: "sparkles-gradient" }}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/metal-rack-with-set-wrench-spanners-tools_627829-12186.jpg"
|
||||
imageAlt="professional auto repair shop clean garage"
|
||||
mediaAnimation="slide-up"
|
||||
frameStyle="card"
|
||||
@@ -108,7 +101,7 @@ export default function ContactPage() {
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterMedia
|
||||
imageSrc="http://img.b2bpic.net/free-photo/photo-automobile-production-line-welding-car-body-modern-car-assembly-plant-auto-industry-interior-hightech-factory_645730-783.jpg?_wi=5"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/photo-automobile-production-line-welding-car-body-modern-car-assembly-plant-auto-industry-interior-hightech-factory_645730-783.jpg"
|
||||
imageAlt="automotive workshop garage background professional"
|
||||
logoText="TFC Motorsports"
|
||||
copyrightText="© 2025 TFC Motorsports & Automotive Repair. All rights reserved."
|
||||
|
||||
107
src/app/page.tsx
107
src/app/page.tsx
@@ -21,8 +21,7 @@ const navItems = [
|
||||
|
||||
const footerColumns = [
|
||||
{
|
||||
title: "Services",
|
||||
items: [
|
||||
title: "Services", items: [
|
||||
{ label: "Engine Repair", href: "/services" },
|
||||
{ label: "Brake Service", href: "/services" },
|
||||
{ label: "Oil Changes", href: "/services" },
|
||||
@@ -30,8 +29,7 @@ const footerColumns = [
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Company",
|
||||
items: [
|
||||
title: "Company", items: [
|
||||
{ label: "About Us", href: "#about" },
|
||||
{ label: "Reviews", href: "#reviews" },
|
||||
{ label: "Contact", href: "#contact" },
|
||||
@@ -39,13 +37,10 @@ const footerColumns = [
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Contact",
|
||||
items: [
|
||||
title: "Contact", items: [
|
||||
{ label: "(941) 749-1090", href: "tel:+19417491090" },
|
||||
{
|
||||
label: "3115 81st Ct E Suite 105, Bradenton, FL 34211",
|
||||
href: "https://maps.google.com/?q=3115+81st+Ct+E+Suite+105+Bradenton+FL+34211",
|
||||
},
|
||||
label: "3115 81st Ct E Suite 105, Bradenton, FL 34211", href: "https://maps.google.com/?q=3115+81st+Ct+E+Suite+105+Bradenton+FL+34211"},
|
||||
{ label: "Monday-Friday: 8AM-6PM", href: "#" },
|
||||
{ label: "Saturday: 9AM-3PM", href: "#" },
|
||||
],
|
||||
@@ -60,7 +55,7 @@ export default function HomePage() {
|
||||
borderRadius="soft"
|
||||
contentWidth="mediumLarge"
|
||||
sizing="mediumLargeSizeMediumTitles"
|
||||
background="noise"
|
||||
background="circleGradient"
|
||||
cardStyle="glass-elevated"
|
||||
primaryButtonStyle="flat"
|
||||
secondaryButtonStyle="glass"
|
||||
@@ -74,9 +69,7 @@ export default function HomePage() {
|
||||
id: item.id,
|
||||
}))}
|
||||
button={{
|
||||
text: "Call Now",
|
||||
href: "tel:+19417491090",
|
||||
}}
|
||||
text: "Call Now", href: "tel:+19417491090"}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -86,18 +79,13 @@ export default function HomePage() {
|
||||
description="Bradenton's Trusted Auto Repair Shop. Honest, reliable automotive repair and maintenance you can trust."
|
||||
buttons={[
|
||||
{
|
||||
text: "Call Now",
|
||||
href: "tel:+19417491090",
|
||||
},
|
||||
text: "Call Now", href: "tel:+19417491090"},
|
||||
{
|
||||
text: "Get a Free Quote",
|
||||
href: "#contact",
|
||||
},
|
||||
text: "Get a Free Quote", href: "#contact"},
|
||||
]}
|
||||
background={{
|
||||
variant: "noise",
|
||||
}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/metal-rack-with-set-wrench-spanners-tools_627829-12186.jpg?_wi=1"
|
||||
variant: "sparkles-gradient"}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/metal-rack-with-set-wrench-spanners-tools_627829-12186.jpg"
|
||||
imageAlt="professional auto repair shop clean garage"
|
||||
mediaAnimation="slide-up"
|
||||
frameStyle="card"
|
||||
@@ -111,20 +99,11 @@ export default function HomePage() {
|
||||
tag="Proven Track Record"
|
||||
metrics={[
|
||||
{
|
||||
id: "rating",
|
||||
value: "4.8★",
|
||||
description: "Google Rating from 79 verified customer reviews",
|
||||
},
|
||||
id: "rating", value: "4.8★", description: "Google Rating from 79 verified customer reviews"},
|
||||
{
|
||||
id: "honest",
|
||||
value: "100%",
|
||||
description: "Honest pricing and transparent repair estimates",
|
||||
},
|
||||
id: "honest", value: "100%", description: "Honest pricing and transparent repair estimates"},
|
||||
{
|
||||
id: "local",
|
||||
value: "#1",
|
||||
description: "Trusted local mechanic in Bradenton area",
|
||||
},
|
||||
id: "local", value: "#1", description: "Trusted local mechanic in Bradenton area"},
|
||||
]}
|
||||
metricsAnimation="slide-up"
|
||||
useInvertedBackground={false}
|
||||
@@ -136,16 +115,13 @@ export default function HomePage() {
|
||||
title="Why Choose TFC Motorsports?"
|
||||
tag="Our Commitment"
|
||||
description="We're a dying breed—an honest mechanic who does great work at fair prices. Our commitment to transparency, quality craftsmanship, and customer care has made us Bradenton's most trusted auto repair shop. Whether you drive a personal vehicle or manage a fleet, we treat your car like it's our own."
|
||||
imageSrc="http://img.b2bpic.net/free-photo/beautiful-car-polishing-service_23-2149212248.jpg?_wi=1"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/beautiful-car-polishing-service_23-2149212248.jpg"
|
||||
imageAlt="experienced mechanic working professional tools"
|
||||
buttons={[
|
||||
{
|
||||
text: "Request Service",
|
||||
href: "#contact",
|
||||
},
|
||||
text: "Request Service", href: "#contact"},
|
||||
]}
|
||||
useInvertedBackground={false}
|
||||
mediaAnimation="slide-up"
|
||||
buttonAnimation="opacity"
|
||||
/>
|
||||
</div>
|
||||
@@ -154,47 +130,23 @@ export default function HomePage() {
|
||||
<TestimonialCardTwelve
|
||||
testimonials={[
|
||||
{
|
||||
id: "1",
|
||||
name: "Sarah Johnson",
|
||||
imageSrc:
|
||||
"http://img.b2bpic.net/free-photo/young-adult-pressing-buzzer-button_23-2149586556.jpg?_wi=1",
|
||||
imageAlt: "professional headshot portrait business person",
|
||||
},
|
||||
id: "1", name: "Sarah Johnson", imageSrc
|
||||
: "http://img.b2bpic.net/free-photo/young-adult-pressing-buzzer-button_23-2149586556.jpg", imageAlt: "professional headshot portrait business person"},
|
||||
{
|
||||
id: "2",
|
||||
name: "Michael Rodriguez",
|
||||
imageSrc:
|
||||
"http://img.b2bpic.net/free-photo/business-woman-banner-concept-with-copy-space_23-2149601533.jpg?_wi=1",
|
||||
imageAlt: "professional headshot portrait business person",
|
||||
},
|
||||
id: "2", name: "Michael Rodriguez", imageSrc
|
||||
: "http://img.b2bpic.net/free-photo/business-woman-banner-concept-with-copy-space_23-2149601533.jpg", imageAlt: "professional headshot portrait business person"},
|
||||
{
|
||||
id: "3",
|
||||
name: "Jennifer Martinez",
|
||||
imageSrc:
|
||||
"http://img.b2bpic.net/free-photo/attractive-blond-business-woman-white-shirt-grey-background_613910-11739.jpg?_wi=1",
|
||||
imageAlt: "professional headshot portrait business person",
|
||||
},
|
||||
id: "3", name: "Jennifer Martinez", imageSrc
|
||||
: "http://img.b2bpic.net/free-photo/attractive-blond-business-woman-white-shirt-grey-background_613910-11739.jpg", imageAlt: "professional headshot portrait business person"},
|
||||
{
|
||||
id: "4",
|
||||
name: "David Chen",
|
||||
imageSrc:
|
||||
"http://img.b2bpic.net/free-photo/redhead-female-supervisor-dressed-elegant-suit-grey-background_613910-1352.jpg?_wi=1",
|
||||
imageAlt: "professional headshot portrait business person",
|
||||
},
|
||||
id: "4", name: "David Chen", imageSrc
|
||||
: "http://img.b2bpic.net/free-photo/redhead-female-supervisor-dressed-elegant-suit-grey-background_613910-1352.jpg", imageAlt: "professional headshot portrait business person"},
|
||||
{
|
||||
id: "5",
|
||||
name: "Amanda Williams",
|
||||
imageSrc:
|
||||
"http://img.b2bpic.net/free-photo/portrait-smiling-young-businessman_23-2147899818.jpg?_wi=1",
|
||||
imageAlt: "professional headshot portrait business person",
|
||||
},
|
||||
id: "5", name: "Amanda Williams", imageSrc
|
||||
: "http://img.b2bpic.net/free-photo/portrait-smiling-young-businessman_23-2147899818.jpg", imageAlt: "professional headshot portrait business person"},
|
||||
{
|
||||
id: "6",
|
||||
name: "James Patterson",
|
||||
imageSrc:
|
||||
"http://img.b2bpic.net/free-photo/close-up-competitive-employee_1098-2870.jpg?_wi=1",
|
||||
imageAlt: "professional headshot portrait business person",
|
||||
},
|
||||
id: "6", name: "James Patterson", imageSrc
|
||||
: "http://img.b2bpic.net/free-photo/close-up-competitive-employee_1098-2870.jpg", imageAlt: "professional headshot portrait business person"},
|
||||
]}
|
||||
cardTitle="Hundreds of happy customers trust TFC Motorsports for honest, reliable auto repair."
|
||||
cardTag="See what they say"
|
||||
@@ -209,8 +161,7 @@ export default function HomePage() {
|
||||
title="Need Auto Repair in Bradenton?"
|
||||
description="Call us now for a free quote or request service online. We're here to help with honest pricing and quality workmanship."
|
||||
background={{
|
||||
variant: "rotated-rays-animated",
|
||||
}}
|
||||
variant: "rotated-rays-animated"}}
|
||||
useInvertedBackground={false}
|
||||
inputPlaceholder="Enter your email"
|
||||
buttonText="Request Quote"
|
||||
@@ -220,7 +171,7 @@ export default function HomePage() {
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterMedia
|
||||
imageSrc="http://img.b2bpic.net/free-photo/photo-automobile-production-line-welding-car-body-modern-car-assembly-plant-auto-industry-interior-hightech-factory_645730-783.jpg?_wi=1"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/photo-automobile-production-line-welding-car-body-modern-car-assembly-plant-auto-industry-interior-hightech-factory_645730-783.jpg"
|
||||
imageAlt="automotive workshop garage background professional"
|
||||
logoText="TFC Motorsports"
|
||||
copyrightText="© 2025 TFC Motorsports & Automotive Repair. All rights reserved."
|
||||
|
||||
@@ -1,51 +1,39 @@
|
||||
"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;
|
||||
fontWeight?: 'normal' | 'bold' | 'lighter';
|
||||
letterSpacing?: number;
|
||||
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 = 48,
|
||||
fontWeight = 'bold',
|
||||
letterSpacing = 0,
|
||||
className = '',
|
||||
}) => {
|
||||
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 ${text.length * fontSize * 0.6} ${fontSize * 1.5}`}
|
||||
className={`w-full h-auto ${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"
|
||||
}}
|
||||
y={fontSize}
|
||||
fontSize={fontSize}
|
||||
fontWeight={fontWeight}
|
||||
fill="currentColor"
|
||||
letterSpacing={letterSpacing}
|
||||
dominantBaseline="middle"
|
||||
>
|
||||
{logoText}
|
||||
{text}
|
||||
</text>
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
};
|
||||
|
||||
SvgTextLogo.displayName = "SvgTextLogo";
|
||||
|
||||
export default SvgTextLogo;
|
||||
export default SvgTextLogo;
|
||||
Reference in New Issue
Block a user