6 Commits

Author SHA1 Message Date
04bfb34dcb Update src/app/layout.tsx 2026-03-25 20:39:56 +00:00
b156160aba Update src/app/styles/base.css 2026-03-25 20:38:06 +00:00
b45758e366 Update src/app/page.tsx 2026-03-25 20:38:05 +00:00
e95ad54812 Update src/app/styles/base.css 2026-03-25 20:34:16 +00:00
44bb96bb9c Update src/app/page.tsx 2026-03-25 20:34:16 +00:00
8beaa92a88 Update src/app/layout.tsx 2026-03-25 20:34:15 +00:00
3 changed files with 62 additions and 188 deletions

View File

@@ -7,6 +7,8 @@ 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 { Playfair_Display, Montserrat } from "next/font/google";
import { Libre_Baskerville } from "next/font/google";
@@ -41,13 +43,14 @@ export const metadata: Metadata = {
}, },
}; };
const montserrat = Montserrat({
variable: "--font-montserrat",
subsets: ["latin"], const libreBaskerville = Libre_Baskerville({
variable: "--font-libre-baskerville", subsets: ["latin"],
weight: ["400", "700"],
}); });
const inter = Inter({ const inter = Inter({
variable: "--font-inter", variable: "--font-inter", subsets: ["latin"],
subsets: ["latin"],
}); });
export default function RootLayout({ export default function RootLayout({
@@ -58,7 +61,7 @@ export default function RootLayout({
return ( return (
<html lang="en" suppressHydrationWarning> <html lang="en" suppressHydrationWarning>
<ServiceWrapper> <ServiceWrapper>
<body className={`${montserrat.variable} ${inter.variable} antialiased`}> <body className={`${libreBaskerville.variable} ${inter.variable} antialiased`}>
<Tag /> <Tag />
{children} {children}
<script <script

View File

@@ -31,54 +31,35 @@ export default function LandingPage() {
<NavbarLayoutFloatingOverlay <NavbarLayoutFloatingOverlay
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: "Testimonials", name: "Testimonials", id: "testimonials"},
id: "testimonials",
},
{ {
name: "Process", name: "Process", id: "process"},
id: "process",
},
{ {
name: "Contact", name: "Contact", id: "contact"},
id: "contact",
},
]} ]}
brandName="My Roofer" brandName="My Roofer"
button={{ button={{
text: "Get a Free Estimate", text: "Get a Free Estimate", href: "#contact"}}
href: "#contact",
}}
/> />
</div> </div>
<div id="hero" data-section="hero"> <div id="hero" data-section="hero">
<HeroLogoBillboardSplit <HeroLogoBillboardSplit
background={{ background={{
variant: "radial-gradient", variant: "radial-gradient"}}
}}
logoText="My Roofer" logoText="My Roofer"
description="Protect Your Home with Expert Roofing. From metal roofs to full replacements, My Roofer delivers quality and peace of mind. Licensed & Insured | 5-Star Reviews | Serving Richmond, RI" description="Protect Your Home with Expert Roofing. From metal roofs to full replacements, My Roofer delivers quality and peace of mind. Licensed & Insured | 5-Star Reviews | Serving Richmond, RI"
buttons={[ buttons={[
{ {
text: "Get a Free Estimate", text: "Get a Free Estimate", href: "#contact"},
href: "#contact",
},
{ {
text: "Call Now", text: "Call Now", href: "tel:+14017864160"},
href: "tel:+14017864160",
},
]} ]}
layoutOrder="default" layoutOrder="default"
imageSrc="http://img.b2bpic.net/free-photo/diverse-team-working-storehouse-inventory_482257-108883.jpg" imageSrc="http://img.b2bpic.net/free-photo/diverse-team-working-storehouse-inventory_482257-108883.jpg"
@@ -94,24 +75,16 @@ export default function LandingPage() {
description="My Roofer has been a trusted member of the Richmond community for years. Our team, led by Ken and Tonya, delivers expert craftsmanship, reliable service, and the highest-quality materials. From metal roofs to inspections, we ensure every project is completed with precision and care." description="My Roofer has been a trusted member of the Richmond community for years. Our team, led by Ken and Tonya, delivers expert craftsmanship, reliable service, and the highest-quality materials. From metal roofs to inspections, we ensure every project is completed with precision and care."
bulletPoints={[ bulletPoints={[
{ {
title: "5-Star Customer Service", title: "5-Star Customer Service", description: "Hear what our customers have to say and experience our commitment to excellence.", icon: Star,
description: "Hear what our customers have to say and experience our commitment to excellence.",
icon: Star,
}, },
{ {
title: "Experienced Team", title: "Experienced Team", description: "Years of hands-on roofing expertise ensure every project is handled with precision.", icon: Users,
description: "Years of hands-on roofing expertise ensure every project is handled with precision.",
icon: Users,
}, },
{ {
title: "Premium Materials", title: "Premium Materials", description: "We use only the best roofing products for durability, longevity, and aesthetic appeal.", icon: Cog,
description: "We use only the best roofing products for durability, longevity, and aesthetic appeal.",
icon: Cog,
}, },
{ {
title: "Community Trusted", title: "Community Trusted", description: "Richmond locals know and trust us for reliable, high-quality roofing solutions.", icon: ShieldCheck,
description: "Richmond locals know and trust us for reliable, high-quality roofing solutions.",
icon: ShieldCheck,
}, },
]} ]}
imageSrc="http://img.b2bpic.net/free-photo/medium-shot-men-working-together_23-2149343665.jpg" imageSrc="http://img.b2bpic.net/free-photo/medium-shot-men-working-together_23-2149343665.jpg"
@@ -126,47 +99,17 @@ export default function LandingPage() {
useInvertedBackground={false} useInvertedBackground={false}
features={[ features={[
{ {
id: "service-1", id: "service-1", title: "Roof Installation", description: "New roofs installed with precision using premium materials, ensuring longevity and curb appeal.", tag: "New Roofs", imageSrc: "http://img.b2bpic.net/free-photo/modern-skyscrapers-japan-business-district_23-2148836784.jpg"},
title: "Roof Installation",
description: "New roofs installed with precision using premium materials, ensuring longevity and curb appeal.",
tag: "New Roofs",
imageSrc: "http://img.b2bpic.net/free-photo/modern-skyscrapers-japan-business-district_23-2148836784.jpg",
},
{ {
id: "service-2", id: "service-2", title: "Roof Repairs", description: "Quick and efficient repairs for leaks, storm damage, and missing shingles, restoring your roof's integrity.", tag: "Repairs", imageSrc: "http://img.b2bpic.net/free-photo/blurred-cityscape_23-2148164726.jpg"},
title: "Roof Repairs",
description: "Quick and efficient repairs for leaks, storm damage, and missing shingles, restoring your roof's integrity.",
tag: "Repairs",
imageSrc: "http://img.b2bpic.net/free-photo/blurred-cityscape_23-2148164726.jpg",
},
{ {
id: "service-3", id: "service-3", title: "Metal Roofs", description: "Install durable, energy-efficient, and stylish metal roofing solutions that stand the test of time.", tag: "Specialty", imageSrc: "http://img.b2bpic.net/free-photo/low-angle-artistic-architectural-design_23-2148252774.jpg"},
title: "Metal Roofs",
description: "Install durable, energy-efficient, and stylish metal roofing solutions that stand the test of time.",
tag: "Specialty",
imageSrc: "http://img.b2bpic.net/free-photo/low-angle-artistic-architectural-design_23-2148252774.jpg",
},
{ {
id: "service-4", id: "service-4", title: "Roof Replacement", description: "Upgrade your home with a complete new roof that enhances protection and increases property value.", tag: "Upgrade", imageSrc: "http://img.b2bpic.net/free-photo/man-sitting-roof_23-2148748778.jpg"},
title: "Roof Replacement",
description: "Upgrade your home with a complete new roof that enhances protection and increases property value.",
tag: "Upgrade",
imageSrc: "http://img.b2bpic.net/free-photo/man-sitting-roof_23-2148748778.jpg",
},
{ {
id: "service-5", id: "service-5", title: "Roof Inspections", description: "Thorough inspections to identify potential issues early and prevent costly future damage.", tag: "Maintenance", imageSrc: "http://img.b2bpic.net/free-photo/old-houses_53876-33815.jpg"},
title: "Roof Inspections",
description: "Thorough inspections to identify potential issues early and prevent costly future damage.",
tag: "Maintenance",
imageSrc: "http://img.b2bpic.net/free-photo/old-houses_53876-33815.jpg",
},
{ {
id: "service-6", id: "service-6", title: "Emergency Roofing", description: "Fast response for urgent roof issues, providing immediate solutions to protect your home.", tag: "Urgent", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-working-with-helmet_23-2149343651.jpg"},
title: "Emergency Roofing",
description: "Fast response for urgent roof issues, providing immediate solutions to protect your home.",
tag: "Urgent",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-working-with-helmet_23-2149343651.jpg",
},
]} ]}
title="Our Roofing Services" title="Our Roofing Services"
description="We offer a comprehensive range of premium roofing solutions, designed for durability, energy efficiency, and lasting peace of mind." description="We offer a comprehensive range of premium roofing solutions, designed for durability, energy efficiency, and lasting peace of mind."
@@ -180,33 +123,11 @@ export default function LandingPage() {
useInvertedBackground={false} useInvertedBackground={false}
testimonials={[ testimonials={[
{ {
id: "1", id: "1", name: "Sherri D.", role: "Satisfied Homeowner", testimonial: "Tonya, Ken, and their team were professional, courteous, and went above and beyond. We didnt expect a metal roof but are so glad we did! Their expertise is unmatched.", imageSrc: "http://img.b2bpic.net/free-photo/confident-handsome-middle-aged-entrepreneur_1262-4871.jpg"},
name: "Sherri D.",
role: "Satisfied Homeowner",
testimonial: "Tonya, Ken, and their team were professional, courteous, and went above and beyond. We didnt expect a metal roof but are so glad we did! Their expertise is unmatched.",
imageSrc: "http://img.b2bpic.net/free-photo/confident-handsome-middle-aged-entrepreneur_1262-4871.jpg",
},
{ {
id: "2", id: "2", name: "Emilio A.", role: "Local Resident", testimonial: "From the start, their quote for a metal roof was clear, and the installation was flawless. The team was efficient and tidy. Highly recommend My Roofer!", imageSrc: "http://img.b2bpic.net/free-photo/successful-business-person-working-from-outdoors_23-2148763866.jpg"},
name: "Emilio A.",
role: "Local Resident",
testimonial: "From the start, their quote for a metal roof was clear, and the installation was flawless. The team was efficient and tidy. Highly recommend My Roofer!",
imageSrc: "http://img.b2bpic.net/free-photo/successful-business-person-working-from-outdoors_23-2148763866.jpg",
},
{ {
id: "3", id: "3", name: "John M.", role: "Happy Customer", testimonial: "Very prompt and professional service from start to finish. The quality of work exceeded my expectations. Great experience with My Roofer!", imageSrc: "http://img.b2bpic.net/free-photo/front-view-real-estate-agent-holding-tablet_23-2150225237.jpg"}
name: "John M.",
role: "Happy Customer",
testimonial: "Very prompt and professional service from start to finish. The quality of work exceeded my expectations. Great experience with My Roofer!",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-real-estate-agent-holding-tablet_23-2150225237.jpg",
},
{
id: "4",
name: "Sarah K.",
role: "Property Owner",
testimonial: "My Roofer provided an excellent solution for our old, leaking roof. The new installation is perfect, and their team was a pleasure to work with.",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-business-woman-smiling_23-2148352574.jpg",
},
]} ]}
title="What Our Clients Say" title="What Our Clients Say"
description="Hear directly from our valued customers about their experience with My Roofers premium services and dedicated team." description="Hear directly from our valued customers about their experience with My Roofers premium services and dedicated team."
@@ -220,45 +141,27 @@ export default function LandingPage() {
useInvertedBackground={false} useInvertedBackground={false}
metrics={[ metrics={[
{ {
id: "process-1", id: "process-1", value: "1", title: "Free Inspection", items: [
value: "1", "We evaluate your roof carefully and accurately."],
title: "Free Inspection",
items: [
"We evaluate your roof carefully and accurately.",
],
}, },
{ {
id: "process-2", id: "process-2", value: "2", title: "Transparent Quote", items: [
value: "2", "Receive honest, upfront pricing with no hidden costs."],
title: "Transparent Quote",
items: [
"Receive honest, upfront pricing with no hidden costs.",
],
}, },
{ {
id: "process-3", id: "process-3", value: "3", title: "Expert Installation", items: [
value: "3", "Our skilled team delivers high-quality craftsmanship."],
title: "Expert Installation",
items: [
"Our skilled team delivers high-quality craftsmanship.",
],
}, },
{ {
id: "process-4", id: "process-4", value: "4", title: "Final Check & Satisfaction", items: [
value: "4", "We ensure your new roof is perfect and you are completely satisfied."],
title: "Final Check & Satisfaction",
items: [
"We ensure your new roof is perfect and you are completely satisfied.",
],
}, },
]} ]}
title="Our Simple 4-Step Process" title="Our Simple 4-Step Process"
description="We make your luxury roofing project seamless and stress-free, ensuring clear communication and exceptional results every step of the way." description="We make your luxury roofing project seamless and stress-free, ensuring clear communication and exceptional results every step of the way."
buttons={[ buttons={[
{ {
text: "Schedule Your Free Estimate Today", text: "Schedule Your Free Estimate Today", href: "#contact"},
href: "#contact",
},
]} ]}
/> />
</div> </div>
@@ -267,18 +170,13 @@ export default function LandingPage() {
<ContactText <ContactText
useInvertedBackground={false} useInvertedBackground={false}
background={{ background={{
variant: "radial-gradient", variant: "radial-gradient"}}
}}
text="Protect Your Home Today \n\n Our team is ready to deliver premium roofing solutions built to last. Reach out for a consultation or emergency service.\n\n**Location:** 194 Shannock Village Rd, Richmond, RI 02875\n**Phone:** (401) 786-4160\n**Hours:** Open 24 hours" text="Protect Your Home Today \n\n Our team is ready to deliver premium roofing solutions built to last. Reach out for a consultation or emergency service.\n\n**Location:** 194 Shannock Village Rd, Richmond, RI 02875\n**Phone:** (401) 786-4160\n**Hours:** Open 24 hours"
buttons={[ buttons={[
{ {
text: "Call Now", text: "Call Now", href: "tel:+14017864160"},
href: "tel:+14017864160",
},
{ {
text: "Request Free Estimate", text: "Request Free Estimate", href: "mailto:info@myroofer.com"},
href: "mailto:info@myroofer.com",
},
]} ]}
/> />
</div> </div>
@@ -287,66 +185,39 @@ export default function LandingPage() {
<FooterSimple <FooterSimple
columns={[ columns={[
{ {
title: "My Roofer", title: "My Roofer", items: [
items: [
{ {
label: "194 Shannock Village Rd", label: "194 Shannock Village Rd", href: "#"},
href: "#",
},
{ {
label: "Richmond, RI 02875", label: "Richmond, RI 02875", href: "#"},
href: "#",
},
{ {
label: "(401) 786-4160", label: "(401) 786-4160", href: "tel:+14017864160"},
href: "tel:+14017864160",
},
{ {
label: "Open 24 Hours", label: "Open 24 Hours", href: "#"},
href: "#",
},
], ],
}, },
{ {
title: "Navigation", title: "Navigation", items: [
items: [
{ {
label: "Home", label: "Home", href: "#hero"},
href: "#hero",
},
{ {
label: "About", label: "About", href: "#about"},
href: "#about",
},
{ {
label: "Services", label: "Services", href: "#services"},
href: "#services",
},
{ {
label: "Testimonials", label: "Testimonials", href: "#testimonials"},
href: "#testimonials",
},
{ {
label: "Process", label: "Process", href: "#process"},
href: "#process",
},
{ {
label: "Contact", label: "Contact", href: "#contact"},
href: "#contact",
},
], ],
}, },
{ {
title: "Connect", title: "Connect", items: [
items: [
{ {
label: "Google Reviews", label: "Google Reviews", href: "#"},
href: "#",
},
{ {
label: "Instagram Projects", label: "Instagram Projects", href: "#"},
href: "#",
},
], ],
}, },
]} ]}
@@ -357,4 +228,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-inter), sans-serif; font-family: var(--font-libre-baskerville), 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-libre-baskerville), sans-serif;
} }