3 Commits

Author SHA1 Message Date
cfe5a9760b Update src/app/styles/base.css 2026-05-14 16:28:21 +00:00
e04bbcfe7a Update src/app/page.tsx 2026-05-14 16:28:20 +00:00
c97b228e9e Update src/app/layout.tsx 2026-05-14 16:28:20 +00:00
3 changed files with 69 additions and 187 deletions

View File

@@ -7,6 +7,7 @@ import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag"; import Tag from "@/tag/Tag";
import { getVisualEditScript } from "@/utils/visual-edit-script"; import { getVisualEditScript } from "@/utils/visual-edit-script";
import { Montserrat } from "next/font/google"; import { Montserrat } from "next/font/google";
import { Figtree } from "next/font/google";
@@ -22,9 +23,9 @@ export const metadata: Metadata = {
}, },
}; };
const montserrat = Montserrat({
variable: "--font-montserrat", const figtree = Figtree({
subsets: ["latin"], variable: "--font-figtree", subsets: ["latin"],
}); });
export default function RootLayout({ export default function RootLayout({
@@ -35,7 +36,7 @@ export default function RootLayout({
return ( return (
<html lang="en" suppressHydrationWarning> <html lang="en" suppressHydrationWarning>
<ServiceWrapper> <ServiceWrapper>
<body className={`${montserrat.variable} antialiased`}> <body className={`${figtree.variable} antialiased`}>
<Tag /> <Tag />
{children} {children}
<script <script

View File

@@ -20,33 +20,25 @@ export default function LandingPage() {
defaultTextAnimation="background-highlight" defaultTextAnimation="background-highlight"
borderRadius="soft" borderRadius="soft"
contentWidth="mediumSmall" contentWidth="mediumSmall"
sizing="medium" sizing="mediumSizeLargeTitles"
background="grid" background="grid"
cardStyle="gradient-radial" cardStyle="gradient-radial"
primaryButtonStyle="primary-glow" primaryButtonStyle="primary-glow"
secondaryButtonStyle="layered" secondaryButtonStyle="layered"
headingFontWeight="semibold" headingFontWeight="normal"
> >
<ReactLenis root> <ReactLenis root>
<div id="nav" data-section="nav"> <div id="nav" data-section="nav">
<NavbarStyleFullscreen <NavbarStyleFullscreen
navItems={[ navItems={[
{ {
name: "Home", name: "Home", id: "hero"},
id: "hero",
},
{ {
name: "About", name: "About", id: "about"},
id: "about",
},
{ {
name: "Services", name: "Services", id: "services"},
id: "services",
},
{ {
name: "Contact", name: "Contact", id: "contact"},
id: "contact",
},
]} ]}
brandName="Bob Plumbing Repair" brandName="Bob Plumbing Repair"
/> />
@@ -55,103 +47,58 @@ export default function LandingPage() {
<div id="hero" data-section="hero"> <div id="hero" data-section="hero">
<HeroBillboardTestimonial <HeroBillboardTestimonial
background={{ background={{
variant: "radial-gradient", variant: "radial-gradient"}}
}}
title="Trusted Plumbing Repair in Sugar Land, TX" title="Trusted Plumbing Repair in Sugar Land, TX"
description="Fast, reliable plumbing solutions for homes and businesses. Honest pricing and dependable service." description="Fast, reliable plumbing solutions for homes and businesses. Honest pricing and dependable service."
testimonials={[ testimonials={[
{ {
name: "John D.", name: "John D.", handle: "Homeowner", testimonial: "No fuss, just good old-fashioned service you can trust.", rating: 5,
handle: "Homeowner", imageSrc: "http://img.b2bpic.net/free-photo/man-woman-using-their-phone-kitchen_23-2149017744.jpg"},
testimonial: "No fuss, just good old-fashioned service you can trust.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/man-woman-using-their-phone-kitchen_23-2149017744.jpg",
},
{ {
name: "Sarah W.", name: "Sarah W.", handle: "Homeowner", testimonial: "Reliable and trustworthy.", rating: 5,
handle: "Homeowner", imageSrc: "http://img.b2bpic.net/free-photo/man-talking-phone-kitchen_23-2148254569.jpg"},
testimonial: "Reliable and trustworthy.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/man-talking-phone-kitchen_23-2148254569.jpg",
},
{ {
name: "Mike R.", name: "Mike R.", handle: "Property Manager", testimonial: "Their technicians are proficient, well-informed, and always eager to share their work.", rating: 5,
handle: "Property Manager", imageSrc: "http://img.b2bpic.net/free-photo/couple-enjoying-quality-time-home_23-2149262124.jpg"},
testimonial: "Their technicians are proficient, well-informed, and always eager to share their work.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/couple-enjoying-quality-time-home_23-2149262124.jpg",
},
{ {
name: "Emily B.", name: "Emily B.", handle: "Homeowner", testimonial: "Highly recommend.", rating: 5,
handle: "Homeowner", imageSrc: "http://img.b2bpic.net/free-photo/male-plumber-working-fix-problems-client-s-house_23-2150990729.jpg"},
testimonial: "Highly recommend.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/male-plumber-working-fix-problems-client-s-house_23-2150990729.jpg",
},
{ {
name: "David L.", name: "David L.", handle: "Business Owner", testimonial: "Reliable and trustworthy.", rating: 5,
handle: "Business Owner", imageSrc: "http://img.b2bpic.net/free-photo/cheerful-caucasian-guy-dating-afro-american-girl_1262-19996.jpg"},
testimonial: "Reliable and trustworthy.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-caucasian-guy-dating-afro-american-girl_1262-19996.jpg",
},
]} ]}
buttons={[ buttons={[
{ {
text: "Call Now", text: "Call Now", href: "tel:8325814999"},
href: "tel:8325814999",
},
{ {
text: "Request Service", text: "Request Service", href: "#contact"},
href: "#contact",
},
]} ]}
imageSrc="http://img.b2bpic.net/free-photo/high-angle-shot-hammer-screwdriver-other-tools-wooden-surface_181624-10972.jpg" imageSrc="http://img.b2bpic.net/free-photo/high-angle-shot-hammer-screwdriver-other-tools-wooden-surface_181624-10972.jpg"
imageAlt="professional plumber smiling friendly" imageAlt="professional plumber smiling friendly"
avatars={[ avatars={[
{ {
src: "http://img.b2bpic.net/free-photo/top-view-different-types-tools_23-2148428246.jpg", src: "http://img.b2bpic.net/free-photo/top-view-different-types-tools_23-2148428246.jpg", alt: "Top view different types of tools"},
alt: "Top view different types of tools",
},
{ {
src: "http://img.b2bpic.net/free-photo/tools-hardware-set_23-2151979300.jpg", src: "http://img.b2bpic.net/free-photo/tools-hardware-set_23-2151979300.jpg", alt: "Tools and hardware set"},
alt: "Tools and hardware set",
},
{ {
src: "http://img.b2bpic.net/free-photo/wrench-screwdriver-hammer_1048-2478.jpg", src: "http://img.b2bpic.net/free-photo/wrench-screwdriver-hammer_1048-2478.jpg", alt: "Wrench, screwdriver and hammer"},
alt: "Wrench, screwdriver and hammer",
},
{ {
src: "http://img.b2bpic.net/free-photo/copy-space-mechanical-tools_23-2148557963.jpg", src: "http://img.b2bpic.net/free-photo/copy-space-mechanical-tools_23-2148557963.jpg", alt: "Copy-space mechanical tools"},
alt: "Copy-space mechanical tools",
},
{ {
src: "http://img.b2bpic.net/free-photo/side-view-men-looking-inside-truck_23-2149426536.jpg", src: "http://img.b2bpic.net/free-photo/side-view-men-looking-inside-truck_23-2149426536.jpg", alt: "Side view men looking inside truck"},
alt: "Side view men looking inside truck",
},
]} ]}
avatarText="Trusted by 500+ Local Homeowners" avatarText="Trusted by 500+ Local Homeowners"
marqueeItems={[ marqueeItems={[
{ {
type: "text", type: "text", text: "24/7 Emergency Repairs"},
text: "24/7 Emergency Repairs",
},
{ {
type: "text", type: "text", text: "Fully Licensed & Insured"},
text: "Fully Licensed & Insured",
},
{ {
type: "text", type: "text", text: "Fast Local Response"},
text: "Fast Local Response",
},
{ {
type: "text", type: "text", text: "Guaranteed Workmanship"},
text: "Guaranteed Workmanship",
},
{ {
type: "text", type: "text", text: "Transparent Pricing"},
text: "Transparent Pricing",
},
]} ]}
/> />
</div> </div>
@@ -178,34 +125,22 @@ export default function LandingPage() {
features={[ features={[
{ {
icon: Droplets, icon: Droplets,
title: "Drain Cleaning", title: "Drain Cleaning", description: "Quick, professional removal of clogs to keep your drains flowing freely."},
description: "Quick, professional removal of clogs to keep your drains flowing freely.",
},
{ {
icon: Flame, icon: Flame,
title: "Water Heater Services", title: "Water Heater Services", description: "Installation, repair, and maintenance for gas and electric water heaters."},
description: "Installation, repair, and maintenance for gas and electric water heaters.",
},
{ {
icon: AlertTriangle, icon: AlertTriangle,
title: "Emergency Plumbing", title: "Emergency Plumbing", description: "Available when you need us most for urgent plumbing emergencies."},
description: "Available when you need us most for urgent plumbing emergencies.",
},
{ {
icon: Search, icon: Search,
title: "Leak Detection", title: "Leak Detection", description: "Advanced equipment to find and fix hidden leaks before they damage your property."},
description: "Advanced equipment to find and fix hidden leaks before they damage your property.",
},
{ {
icon: Wrench, icon: Wrench,
title: "Pipe & Fixture Repair", title: "Pipe & Fixture Repair", description: "Expert repairs for faucets, sinks, toilets, and pipe systems."},
description: "Expert repairs for faucets, sinks, toilets, and pipe systems.",
},
{ {
icon: Settings, icon: Settings,
title: "Sewer Line Repair", title: "Sewer Line Repair", description: "Reliable solutions for main sewer line issues and blockages."},
description: "Reliable solutions for main sewer line issues and blockages.",
},
]} ]}
title="Professional Plumbing Services" title="Professional Plumbing Services"
description="From emergency repairs to routine maintenance, we handle all your plumbing needs with professional precision." description="From emergency repairs to routine maintenance, we handle all your plumbing needs with professional precision."
@@ -219,23 +154,14 @@ export default function LandingPage() {
useInvertedBackground={false} useInvertedBackground={false}
metrics={[ metrics={[
{ {
id: "m1", id: "m1", icon: Star,
icon: Star, title: "Customer Rating", value: "4.9 / 5"},
title: "Customer Rating",
value: "4.9 / 5",
},
{ {
id: "m2", id: "m2", icon: Users,
icon: Users, title: "Satisfied Reviews", value: "500+"},
title: "Satisfied Reviews",
value: "500+",
},
{ {
id: "m3", id: "m3", icon: MapPin,
icon: MapPin, title: "Service Areas", value: "Sugar Land & Greater Houston"},
title: "Service Areas",
value: "Sugar Land & Greater Houston",
},
]} ]}
title="Why Sugar Land Chooses Us" title="Why Sugar Land Chooses Us"
description="Our commitment to quality has earned us the trust of homeowners across the area." description="Our commitment to quality has earned us the trust of homeowners across the area."
@@ -249,45 +175,20 @@ export default function LandingPage() {
useInvertedBackground={false} useInvertedBackground={false}
testimonials={[ testimonials={[
{ {
id: "t1", id: "t1", name: "John D.", handle: "Homeowner", testimonial: "No fuss, just good old-fashioned service you can trust.", rating: 5,
name: "John D.", imageSrc: "http://img.b2bpic.net/free-photo/young-cute-female-posing-indoor_344912-969.jpg"},
handle: "Homeowner",
testimonial: "No fuss, just good old-fashioned service you can trust.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/young-cute-female-posing-indoor_344912-969.jpg",
},
{ {
id: "t2", id: "t2", name: "Sarah W.", handle: "Homeowner", testimonial: "Reliable and trustworthy.", rating: 5,
name: "Sarah W.", imageSrc: "http://img.b2bpic.net/free-photo/review-evaluation-satisfaction-customer-service-feedback-sign-icon_53876-122935.jpg"},
handle: "Homeowner",
testimonial: "Reliable and trustworthy.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/review-evaluation-satisfaction-customer-service-feedback-sign-icon_53876-122935.jpg",
},
{ {
id: "t3", id: "t3", name: "Mike R.", handle: "Property Manager", testimonial: "Their technicians are proficient, well-informed, and always eager to share their work.", rating: 5,
name: "Mike R.", imageSrc: "http://img.b2bpic.net/free-photo/review-increase-rating-ranking-evaluation-classification-concept-businessman-draw-five-yellow-star-increase-rating-his-company_1212-719.jpg"},
handle: "Property Manager",
testimonial: "Their technicians are proficient, well-informed, and always eager to share their work.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/review-increase-rating-ranking-evaluation-classification-concept-businessman-draw-five-yellow-star-increase-rating-his-company_1212-719.jpg",
},
{ {
id: "t4", id: "t4", name: "Emily B.", handle: "Homeowner", testimonial: "Highly recommend.", rating: 5,
name: "Emily B.", imageSrc: "http://img.b2bpic.net/free-photo/unpleased-showing-stop-gesture-young-builder-man-uniform-holding-gas-wrench-isolated-blue-background_141793-134626.jpg"},
handle: "Homeowner",
testimonial: "Highly recommend.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/unpleased-showing-stop-gesture-young-builder-man-uniform-holding-gas-wrench-isolated-blue-background_141793-134626.jpg",
},
{ {
id: "t5", id: "t5", name: "David L.", handle: "Business Owner", testimonial: "Reliable and trustworthy.", rating: 5,
name: "David L.", imageSrc: "http://img.b2bpic.net/free-photo/crazy-young-man-jumping-happy-expression_1194-4849.jpg"},
handle: "Business Owner",
testimonial: "Reliable and trustworthy.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/crazy-young-man-jumping-happy-expression_1194-4849.jpg",
},
]} ]}
showRating={true} showRating={true}
title="What Our Neighbors Say" title="What Our Neighbors Say"
@@ -301,20 +202,11 @@ export default function LandingPage() {
useInvertedBackground={false} useInvertedBackground={false}
faqs={[ faqs={[
{ {
id: "faq1", id: "faq1", title: "Do you provide emergency services?", content: "Yes, we offer emergency plumbing services to help with urgent situations in the Sugar Land area."},
title: "Do you provide emergency services?",
content: "Yes, we offer emergency plumbing services to help with urgent situations in the Sugar Land area.",
},
{ {
id: "faq2", id: "faq2", title: "Are you licensed and insured?", content: "Absolutely. We are fully licensed, bonded, and insured for your protection and peace of mind."},
title: "Are you licensed and insured?",
content: "Absolutely. We are fully licensed, bonded, and insured for your protection and peace of mind.",
},
{ {
id: "faq3", id: "faq3", title: "How can I request service?", content: "You can call us directly at (832) 581-4999 or fill out the contact form on our website."},
title: "How can I request service?",
content: "You can call us directly at (832) 581-4999 or fill out the contact form on our website.",
},
]} ]}
title="Frequently Asked Questions" title="Frequently Asked Questions"
description="Have questions? We have answers. If you don't see yours here, just call us." description="Have questions? We have answers. If you don't see yours here, just call us."
@@ -326,8 +218,7 @@ export default function LandingPage() {
<ContactCenter <ContactCenter
useInvertedBackground={false} useInvertedBackground={false}
background={{ background={{
variant: "plain", variant: "plain"}}
}}
title="Ready to get started?" title="Ready to get started?"
description="Contact Bob Plumbing Repair today for professional plumbing services in Sugar Land and surrounding areas." description="Contact Bob Plumbing Repair today for professional plumbing services in Sugar Land and surrounding areas."
tag="Get in touch" tag="Get in touch"
@@ -339,29 +230,19 @@ export default function LandingPage() {
logoText="Bob Plumbing Repair" logoText="Bob Plumbing Repair"
columns={[ columns={[
{ {
title: "Company", title: "Company", items: [
items: [
{ {
label: "About Us", label: "About Us", href: "#about"},
href: "#about",
},
{ {
label: "Services", label: "Services", href: "#services"},
href: "#services",
},
], ],
}, },
{ {
title: "Contact", title: "Contact", items: [
items: [
{ {
label: "1650 Hwy 6 Suite 425, Sugar Land, TX 77478", label: "1650 Hwy 6 Suite 425, Sugar Land, TX 77478", href: "#"},
href: "#",
},
{ {
label: "(832) 581-4999", label: "(832) 581-4999", href: "tel:8325814999"},
href: "tel:8325814999",
},
], ],
}, },
]} ]}
@@ -371,4 +252,4 @@ export default function LandingPage() {
</ReactLenis> </ReactLenis>
</ThemeProvider> </ThemeProvider>
); );
} }

View File

@@ -11,7 +11,7 @@ html {
body { body {
background-color: var(--background); background-color: var(--background);
color: var(--foreground); color: var(--foreground);
font-family: var(--font-montserrat), sans-serif; font-family: var(--font-figtree), sans-serif;
position: relative; position: relative;
min-height: 100vh; min-height: 100vh;
overscroll-behavior: none; overscroll-behavior: none;
@@ -24,5 +24,5 @@ h3,
h4, h4,
h5, h5,
h6 { h6 {
font-family: var(--font-montserrat), sans-serif; font-family: var(--font-figtree), sans-serif;
} }