Merge version_2 into main #1
@@ -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
|
||||
|
||||
231
src/app/page.tsx
231
src/app/page.tsx
@@ -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 didn’t 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 didn’t 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 Roofer’s 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>
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user