Merge version_2 into main

Merge version_2 into main
This commit was merged in pull request #1.
This commit is contained in:
2026-03-25 20:34:19 +00:00
3 changed files with 62 additions and 189 deletions

View File

@@ -7,6 +7,7 @@ import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
import { getVisualEditScript } from "@/utils/visual-edit-script";
import { Montserrat } from "next/font/google";
import { Playfair_Display, Montserrat } from "next/font/google";
@@ -41,13 +42,14 @@ export const metadata: Metadata = {
},
};
const montserrat = Montserrat({
variable: "--font-montserrat",
subsets: ["latin"],
const playfairDisplay = Playfair_Display({
variable: "--font-playfair-display", subsets: ["latin"],
weight: ["400", "500", "600", "700", "800", "900"]
});
const inter = Inter({
variable: "--font-inter",
subsets: ["latin"],
const montserrat = Montserrat({
variable: "--font-montserrat", subsets: ["latin"],
weight: ["100", "200", "300", "400", "500", "600", "700", "800", "900"]
});
export default function RootLayout({
@@ -58,7 +60,7 @@ export default function RootLayout({
return (
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body className={`${montserrat.variable} ${inter.variable} antialiased`}>
<body className={`${playfairDisplay.variable} ${montserrat.variable} antialiased`}>
<Tag />
{children}
<script

View File

@@ -31,54 +31,35 @@ export default function LandingPage() {
<NavbarLayoutFloatingOverlay
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"
button={{
text: "Get a Free Estimate",
href: "#contact",
}}
text: "Get a Free Estimate", href: "#contact"}}
/>
</div>
<div id="hero" data-section="hero">
<HeroLogoBillboardSplit
background={{
variant: "radial-gradient",
}}
variant: "radial-gradient"}}
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"
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"
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."
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.", 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.", 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.", 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.", icon: ShieldCheck,
},
]}
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}
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.", 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: "Leaks, storm damage, and missing shingles repaired fast.", 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: "Durable, energy-efficient, and stylish metal roofing solutions.", 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 new roof that lasts for decades.", 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 prevent 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.", tag: "Urgent", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-working-with-helmet_23-2149343651.jpg"},
]}
title="Our Roofing Services"
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}
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!", 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. Highly recommend!", 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: "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",
},
id: "3", name: "John M.", role: "Happy Customer", testimonial: "Very prompt and professional. Great experience!", imageSrc: "http://img.b2bpic.net/free-photo/front-view-real-estate-agent-holding-tablet_23-2150225237.jpg"}
]}
title="What Our Clients Say"
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}
metrics={[
{
id: "process-1",
value: "1",
title: "Free Inspection",
items: [
"We evaluate your roof carefully and accurately.",
],
id: "process-1", value: "1", title: "Free Inspection", items: [
"We evaluate your roof carefully."],
},
{
id: "process-2",
value: "2",
title: "Transparent Quote",
items: [
"Receive honest, upfront pricing with no hidden costs.",
],
id: "process-2", value: "2", title: "Transparent Quote", items: [
"Receive honest, upfront pricing."],
},
{
id: "process-3",
value: "3",
title: "Expert Installation",
items: [
"Our skilled team delivers high-quality craftsmanship.",
],
id: "process-3", value: "3", title: "Expert Installation", items: [
"Our skilled team delivers high-quality craftsmanship."],
},
{
id: "process-4",
value: "4",
title: "Final Check & Satisfaction",
items: [
"We ensure your new roof is perfect and you are completely satisfied.",
],
id: "process-4", 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"
description="We make your luxury roofing project seamless and stress-free, ensuring clear communication and exceptional results every step of the way."
buttons={[
{
text: "Schedule Your Free Estimate Today",
href: "#contact",
},
text: "Schedule Your Free Estimate Today", href: "#contact"},
]}
/>
</div>
@@ -267,18 +170,13 @@ export default function LandingPage() {
<ContactText
useInvertedBackground={false}
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"
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>
@@ -287,66 +185,39 @@ export default function LandingPage() {
<FooterSimple
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: "#"},
],
},
]}
@@ -357,4 +228,4 @@ export default function LandingPage() {
</ReactLenis>
</ThemeProvider>
);
}
}

View File

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