6 Commits

Author SHA1 Message Date
93516f1e2d Switch to version 1: modified src/app/styles/base.css 2026-03-25 20:42:48 +00:00
91483a24dc Switch to version 1: modified src/app/page.tsx 2026-03-25 20:42:48 +00:00
d5f13abf7a Switch to version 1: modified src/app/layout.tsx 2026-03-25 20:42:47 +00:00
cd9f751bec Merge version_2 into main
Merge version_2 into main
2026-03-25 20:39:59 +00:00
10fb3af020 Merge version_2 into main
Merge version_2 into main
2026-03-25 20:38:12 +00:00
58c3fa0f2f Merge version_2 into main
Merge version_2 into main
2026-03-25 20:34:19 +00:00
3 changed files with 188 additions and 62 deletions

View File

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

View File

@@ -31,35 +31,54 @@ export default function LandingPage() {
<NavbarLayoutFloatingOverlay <NavbarLayoutFloatingOverlay
navItems={[ navItems={[
{ {
name: "Home", id: "hero"}, name: "Home",
id: "hero",
},
{ {
name: "About", id: "about"}, name: "About",
id: "about",
},
{ {
name: "Services", id: "services"}, name: "Services",
id: "services",
},
{ {
name: "Testimonials", id: "testimonials"}, name: "Testimonials",
id: "testimonials",
},
{ {
name: "Process", id: "process"}, name: "Process",
id: "process",
},
{ {
name: "Contact", id: "contact"}, name: "Contact",
id: "contact",
},
]} ]}
brandName="My Roofer" brandName="My Roofer"
button={{ button={{
text: "Get a Free Estimate", href: "#contact"}} text: "Get a Free Estimate",
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", href: "#contact"}, text: "Get a Free Estimate",
href: "#contact",
},
{ {
text: "Call Now", href: "tel:+14017864160"}, text: "Call Now",
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"
@@ -75,16 +94,24 @@ 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", description: "Hear what our customers have to say and experience our commitment to excellence.", icon: Star, title: "5-Star Customer Service",
description: "Hear what our customers have to say and experience our commitment to excellence.",
icon: Star,
}, },
{ {
title: "Experienced Team", description: "Years of hands-on roofing expertise ensure every project is handled with precision.", icon: Users, title: "Experienced Team",
description: "Years of hands-on roofing expertise ensure every project is handled with precision.",
icon: Users,
}, },
{ {
title: "Premium Materials", description: "We use only the best roofing products for durability, longevity, and aesthetic appeal.", icon: Cog, title: "Premium Materials",
description: "We use only the best roofing products for durability, longevity, and aesthetic appeal.",
icon: Cog,
}, },
{ {
title: "Community Trusted", description: "Richmond locals know and trust us for reliable, high-quality roofing solutions.", icon: ShieldCheck, title: "Community Trusted",
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"
@@ -99,17 +126,47 @@ export default function LandingPage() {
useInvertedBackground={false} useInvertedBackground={false}
features={[ features={[
{ {
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"}, 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",
},
{ {
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"}, 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",
},
{ {
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"}, 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",
},
{ {
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"}, 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",
},
{ {
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"}, 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",
},
{ {
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"}, 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="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."
@@ -123,11 +180,33 @@ export default function LandingPage() {
useInvertedBackground={false} useInvertedBackground={false}
testimonials={[ testimonials={[
{ {
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"}, 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",
},
{ {
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"}, 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",
},
{ {
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"} 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",
},
{
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."
@@ -141,27 +220,45 @@ export default function LandingPage() {
useInvertedBackground={false} useInvertedBackground={false}
metrics={[ metrics={[
{ {
id: "process-1", value: "1", title: "Free Inspection", items: [ id: "process-1",
"We evaluate your roof carefully and accurately."], value: "1",
title: "Free Inspection",
items: [
"We evaluate your roof carefully and accurately.",
],
}, },
{ {
id: "process-2", value: "2", title: "Transparent Quote", items: [ id: "process-2",
"Receive honest, upfront pricing with no hidden costs."], value: "2",
title: "Transparent Quote",
items: [
"Receive honest, upfront pricing with no hidden costs.",
],
}, },
{ {
id: "process-3", value: "3", title: "Expert Installation", items: [ id: "process-3",
"Our skilled team delivers high-quality craftsmanship."], value: "3",
title: "Expert Installation",
items: [
"Our skilled team delivers high-quality craftsmanship.",
],
}, },
{ {
id: "process-4", value: "4", title: "Final Check & Satisfaction", items: [ id: "process-4",
"We ensure your new roof is perfect and you are completely satisfied."], value: "4",
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", href: "#contact"}, text: "Schedule Your Free Estimate Today",
href: "#contact",
},
]} ]}
/> />
</div> </div>
@@ -170,13 +267,18 @@ 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", href: "tel:+14017864160"}, text: "Call Now",
href: "tel:+14017864160",
},
{ {
text: "Request Free Estimate", href: "mailto:info@myroofer.com"}, text: "Request Free Estimate",
href: "mailto:info@myroofer.com",
},
]} ]}
/> />
</div> </div>
@@ -185,39 +287,66 @@ export default function LandingPage() {
<FooterSimple <FooterSimple
columns={[ columns={[
{ {
title: "My Roofer", items: [ title: "My Roofer",
items: [
{ {
label: "194 Shannock Village Rd", href: "#"}, label: "194 Shannock Village Rd",
href: "#",
},
{ {
label: "Richmond, RI 02875", href: "#"}, label: "Richmond, RI 02875",
href: "#",
},
{ {
label: "(401) 786-4160", href: "tel:+14017864160"}, label: "(401) 786-4160",
href: "tel:+14017864160",
},
{ {
label: "Open 24 Hours", href: "#"}, label: "Open 24 Hours",
href: "#",
},
], ],
}, },
{ {
title: "Navigation", items: [ title: "Navigation",
items: [
{ {
label: "Home", href: "#hero"}, label: "Home",
href: "#hero",
},
{ {
label: "About", href: "#about"}, label: "About",
href: "#about",
},
{ {
label: "Services", href: "#services"}, label: "Services",
href: "#services",
},
{ {
label: "Testimonials", href: "#testimonials"}, label: "Testimonials",
href: "#testimonials",
},
{ {
label: "Process", href: "#process"}, label: "Process",
href: "#process",
},
{ {
label: "Contact", href: "#contact"}, label: "Contact",
href: "#contact",
},
], ],
}, },
{ {
title: "Connect", items: [ title: "Connect",
items: [
{ {
label: "Google Reviews", href: "#"}, label: "Google Reviews",
href: "#",
},
{ {
label: "Instagram Projects", href: "#"}, label: "Instagram Projects",
href: "#",
},
], ],
}, },
]} ]}
@@ -228,4 +357,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-libre-baskerville), sans-serif; font-family: var(--font-inter), 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-libre-baskerville), sans-serif; font-family: var(--font-montserrat), sans-serif;
} }