15 Commits

Author SHA1 Message Date
61ff4bcdb3 Update src/app/page.tsx 2026-04-21 06:36:17 +00:00
fb52ee3aa0 Update src/app/page.tsx 2026-04-21 06:35:38 +00:00
3669221751 Update src/app/page.tsx 2026-04-21 06:35:04 +00:00
c81e9b8754 Update src/app/page.tsx 2026-04-21 06:34:34 +00:00
546c44496c Update src/app/styles/variables.css 2026-04-21 06:34:05 +00:00
466d28de20 Update src/app/page.tsx 2026-04-21 06:34:04 +00:00
13bd064585 Update src/app/page.tsx 2026-04-21 06:29:19 +00:00
31f16f952c Update src/app/page.tsx 2026-04-21 06:28:51 +00:00
4c171b2814 Update src/app/styles/base.css 2026-04-21 06:26:20 +00:00
f66c76d6dd Update src/app/page.tsx 2026-04-21 06:26:19 +00:00
7e4fc10a4a Update src/app/layout.tsx 2026-04-21 06:26:19 +00:00
0ebfb80967 Merge version_1 into main
Merge version_1 into main
2026-04-20 21:16:03 +00:00
b846966cd7 Merge version_1 into main
Merge version_1 into main
2026-04-20 21:15:34 +00:00
1e634f7bd3 Merge version_1 into main
Merge version_1 into main
2026-04-20 21:15:01 +00:00
b4ee76c555 Merge version_1 into main
Merge version_1 into main
2026-04-20 21:14:26 +00:00
4 changed files with 152 additions and 204 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 { Source_Sans_3 } from "next/font/google";
import { Playfair_Display, Inter } from "next/font/google";
@@ -23,10 +24,9 @@ export const metadata: Metadata = {
},
};
const sourceSans3 = Source_Sans_3({
variable: "--font-source-sans-3",
subsets: ["latin"],
});
const playfair = Playfair_Display({ variable: "--font-playfair", subsets: ["latin"] });
const inter = Inter({ variable: "--font-inter", subsets: ["latin"] });
export default function RootLayout({
children,
@@ -36,7 +36,7 @@ export default function RootLayout({
return (
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body className={`${sourceSans3.variable} antialiased`}>
<body className={`${playfair.variable} ${inter.variable} antialiased`}>
<Tag />
{children}
<script

View File

@@ -17,212 +17,160 @@ export default function LandingPage() {
return (
<ThemeProvider
defaultButtonVariant="text-shift"
defaultTextAnimation="background-highlight"
borderRadius="pill"
contentWidth="small"
sizing="largeSmall"
background="aurora"
cardStyle="inset"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="radial-glow"
headingFontWeight="light"
defaultTextAnimation="reveal-blur"
borderRadius="soft"
contentWidth="medium"
sizing="largeSizeMediumTitles"
background="noiseDiagonalGradient"
cardStyle="outline"
primaryButtonStyle="shadow"
secondaryButtonStyle="glass"
headingFontWeight="semibold"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarStyleCentered
navItems={[
{ name: "Home", id: "#hero" },
{ name: "Services", id: "#services" },
{ name: "Reviews", id: "#testimonials" },
{ name: "Contact", id: "#contact" },
]}
brandName="Astra Roofing"
/>
</div>
<div id="nav" data-section="nav">
<NavbarStyleCentered
navItems={[
{ name: "Home", id: "hero" },
{ name: "Services", id: "services" },
{ name: "Reviews", id: "testimonials" },
{ name: "Contact", id: "contact" },
]}
brandName="Astra Roofing"
/>
</div>
<div id="hero" data-section="hero">
<HeroSplitTestimonial
useInvertedBackground={false}
background={{ variant: "gradient-bars" }}
title="Roofing Done Right — First Time, Every Time"
description="Trusted local roofing specialists delivering premium workmanship across Walsall and surrounding areas. 5.0 Rated Local Roofing Service. 24/7 Availability."
testimonials={[
{ name: "Adrian S.", handle: "Local Client", testimonial: "Friendly, professional and competitively priced. The standard of workmanship is first class.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-working-roof_23-2149343653.jpg?_wi=1", imageAlt: "luxury roof craftsmanship closeup" },
{ name: "Verified Customer", handle: "Local Client", testimonial: "Michael quickly identified the issue and fixed our roof leak properly. Honest, knowledgeable and affordable.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/man-walking-roof_1321-1040.jpg?_wi=1", imageAlt: "luxury roof craftsmanship closeup" },
{ name: "Local Client", handle: "Local Client", testimonial: "Expertise second to none. Explained everything clearly and delivered exactly what was promised.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/beautiful-wooden-house-with-dark-roof_23-2149343705.jpg?_wi=1", imageAlt: "luxury roof craftsmanship closeup" },
{ name: "Sarah J.", handle: "Homeowner", testimonial: "Exceptional service from start to finish. Highly recommended.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/young-asian-technician-man-standing-talking-smartphone-long-rows-photovoltaic-solar-panels-copy-space_1150-57278.jpg", imageAlt: "luxury roof craftsmanship closeup" },
{ name: "Mark D.", handle: "Walsall Resident", testimonial: "Professional, punctual, and high quality work. Will use again.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/smiley-couple-seeing-new-house-with-realtor_23-2148895440.jpg?_wi=1", imageAlt: "luxury roof craftsmanship closeup" },
]}
buttons={[
{ text: "Get a Free Quote", href: "#contact" },
{ text: "Call Now: 01922 645993", href: "tel:01922645993" },
]}
imageSrc="http://img.b2bpic.net/free-photo/medium-shot-man-working-roof_23-2149343653.jpg?_wi=2"
imageAlt="Astra Roofing luxury craftsmanship"
mediaAnimation="slide-up"
avatars={[
{ src: "http://img.b2bpic.net/free-photo/man-working-roof-medium-shot_23-2149343644.jpg", alt: "Man working on roof medium shot" },
{ src: "http://img.b2bpic.net/free-photo/full-shot-worker-with-helmet-working-roof_23-2149343663.jpg", alt: "Full shot worker with helmet working on roof" },
{ src: "http://img.b2bpic.net/free-photo/beautiful-wooden-house-with-big-windows_23-2149343704.jpg", alt: "Beautiful wooden house with big windows" },
{ src: "http://img.b2bpic.net/free-photo/beautiful-wooden-modern-house_23-2149343652.jpg", alt: "Beautiful wooden modern house" },
{ src: "http://img.b2bpic.net/free-photo/high-angle-beautiful-roof-wooden-house_23-2149343706.jpg", alt: "High angle beautiful roof on wooden house" },
]}
marqueeItems={[
{ type: "text", text: "Walsall's Trusted Roofers" },
{ type: "text", text: "5-Star Rated Service" },
{ type: "text", text: "24/7 Emergency Repairs" },
{ type: "text", text: "Insurance Approved" },
{ type: "text", text: "Free Quote Available" },
]}
/>
</div>
<div id="hero" data-section="hero">
<HeroSplitTestimonial
title="Roofing Done Right — First Time, Every Time"
description="Trusted local roofing specialists delivering premium workmanship across Walsall and surrounding areas. 5.0 Rated Local Roofing Service. 24/7 Availability."
testimonials={[
{ name: "Adrian S.", handle: "Local Client", testimonial: "Friendly, professional and competitively priced. The standard of workmanship is first class.", rating: 5 },
{ name: "Verified Customer", handle: "Local Client", testimonial: "Michael quickly identified the issue and fixed our roof leak properly. Honest, knowledgeable and affordable.", rating: 5 },
{ name: "Local Client", handle: "Local Client", testimonial: "Expertise second to none. Explained everything clearly and delivered exactly what was promised.", rating: 5 }
]}
buttons={[
{ text: "Get a Free Quote", href: "#contact" },
{ text: "Call Now: 01922 645993", href: "tel:01922645993" },
]}
imageSrc="http://img.b2bpic.net/free-photo/medium-shot-man-working-roof_23-2149343653.jpg?_wi=2"
imageAlt="Astra Roofing luxury craftsmanship"
mediaAnimation="slide-up"
background={{ variant: "gradient-bars" }}
/>
</div>
<div id="services" data-section="services">
<FeatureCardTen
animationType="slide-up"
textboxLayout="split"
useInvertedBackground={false}
features={[
{
title: "Roof Repairs", description: "Leaks, damaged tiles, storm damage — fixed properly, not patched temporarily.", media: {
imageSrc: "http://img.b2bpic.net/free-photo/man-walking-roof_1321-1040.jpg?_wi=2", imageAlt: "Roof repairs"
},
items: [
{ icon: CheckCircle, text: "Leaks fixed" },
{ icon: Shield, text: "Storm damage" },
{ icon: CheckCircle, text: "Permanent solutions" },
],
reverse: false,
},
{
title: "New Roof Installations", description: "Built to last using high-quality materials and expert workmanship for new property developments.", media: {
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-wooden-house-with-dark-roof_23-2149343705.jpg?_wi=2", imageAlt: "New roof installation"
},
items: [
{ icon: Home, text: "New builds" },
{ icon: Award, text: "Quality materials" },
{ icon: Zap, text: "Expert fitting" },
],
reverse: true,
},
{
title: "Flat Roofing", description: "Durable, weather-resistant flat roofing systems installed with precision by our team.", media: {
imageSrc: "http://img.b2bpic.net/free-photo/smiley-couple-seeing-new-house-with-realtor_23-2148895440.jpg?_wi=2", imageAlt: "Flat roofing system"
},
items: [
{ icon: Layers, text: "Weather resistant" },
{ icon: Shield, text: "Durable systems" },
{ icon: CheckCircle, text: "Precision install" },
],
reverse: false,
},
]}
title="Complete Roofing Solutions"
description="Premium roofing services tailored to your property needs with precision and durability."
/>
</div>
<div id="services" data-section="services">
<FeatureCardTen
animationType="slide-up"
textboxLayout="split"
useInvertedBackground={false}
features={[
{
title: "Roof Repairs", description: "Leaks, damaged tiles, storm damage — fixed properly, not patched temporarily.", media: { imageSrc: "http://img.b2bpic.net/free-photo/man-walking-roof_1321-1040.jpg?_wi=2", imageAlt: "Roof repairs" },
items: [{ icon: Shield, text: "Permanent solutions" }, { icon: Zap, text: "Fast response" }],
reverse: false,
},
{
title: "New Roof Installations", description: "Built to last using high-quality materials and expert workmanship.", media: { imageSrc: "http://img.b2bpic.net/free-photo/beautiful-wooden-house-with-dark-roof_23-2149343705.jpg?_wi=2", imageAlt: "New roof installation" },
items: [{ icon: Home, text: "New builds" }, { icon: Award, text: "Quality materials" }],
reverse: true,
},
{
title: "Flat Roofing", description: "Durable, weather-resistant flat roofing systems installed with precision.", media: { imageSrc: "http://img.b2bpic.net/free-photo/smiley-couple-seeing-new-house-with-realtor_23-2148895440.jpg?_wi=2", imageAlt: "Flat roofing" },
items: [{ icon: Layers, text: "Weather resistant" }, { icon: CheckCircle, text: "Precision install" }],
reverse: false,
}
]}
title="Complete Roofing Solutions"
description="Premium roofing services tailored to your property needs with precision and durability."
/>
</div>
<div id="why-astra" data-section="why-astra">
<SplitAbout
textboxLayout="split"
useInvertedBackground={false}
title="The Astra Standard"
description="We don't just fix roofs; we build lasting relationships through superior local service."
bulletPoints={[
{ title: "5-Star Rated Local Business", description: "Trusted by hundreds of homeowners in Walsall." },
{ title: "Transparent Pricing", description: "No hidden costs, no surprises — just honest quotes." },
{ title: "Highly Skilled Craftsmanship", description: "Our team are master roofers with years of experience." },
]}
imageSrc="http://img.b2bpic.net/free-photo/modern-country-houses-construction_1385-17.jpg"
imageAlt="Craftsmanship at work"
mediaAnimation="blur-reveal"
/>
</div>
<div id="why-astra" data-section="why-astra">
<SplitAbout
title="The Astra Standard"
description="We don't just fix roofs; we build lasting relationships through superior local service."
bulletPoints={[
{ title: "5-Star Rated Local Business", description: "Trusted by hundreds of homeowners in Walsall.", icon: Award },
{ title: "Transparent Pricing", description: "No hidden costs, no surprises — just honest quotes.", icon: CheckCircle },
{ title: "Expert Craftsmanship", description: "Built to last — Not just quick fixes.", icon: Shield },
]}
imageSrc="http://img.b2bpic.net/free-photo/modern-country-houses-construction_1385-17.jpg"
imageAlt="Craftsmanship at work"
mediaAnimation="blur-reveal"
textboxLayout="split"
useInvertedBackground={false}
/>
</div>
<div id="testimonials" data-section="testimonials">
<TestimonialCardFive
textboxLayout="default"
useInvertedBackground={true}
testimonials={[
{ id: "1", name: "Adrian S.", date: "Oct 2023", title: "First Class Work", quote: "Friendly, professional and competitively priced. The standard of workmanship is first class.", tag: "Verified", avatarSrc: "http://img.b2bpic.net/free-photo/smiley-couple-seeing-new-house-with-realtor_23-2148895440.jpg" },
{ id: "2", name: "Verified Customer", date: "Sept 2023", title: "Honest & Affordable", quote: "Michael quickly identified the issue and fixed our roof leak properly. Honest, knowledgeable and affordable.", tag: "Verified", avatarSrc: "http://img.b2bpic.net/free-photo/beautiful-women-works-garden_1157-24617.jpg" },
{ id: "3", name: "Local Client", date: "Aug 2023", title: "Expertise Second to None", quote: "Expertise second to none. Explained everything clearly and delivered exactly what was promised.", tag: "Verified", avatarSrc: "http://img.b2bpic.net/free-photo/man-sitting-near-house-looking-camera_259150-59313.jpg" },
{ id: "4", name: "Sarah J.", date: "July 2023", title: "Great Experience", quote: "Exceptional service from start to finish. Highly recommended to anyone in Walsall.", tag: "Verified", avatarSrc: "http://img.b2bpic.net/free-photo/financial-independent-woman-buying-new-house_23-2149571925.jpg" },
{ id: "5", name: "Mark D.", date: "June 2023", title: "Reliable", quote: "Professional, punctual, and high quality work. Will use again.", tag: "Verified", avatarSrc: "http://img.b2bpic.net/free-photo/portrait-braless-woman-outdoors-cafe_23-2150501203.jpg" },
]}
title="Trusted by Local Homeowners"
description="Our customers choose Astra Roofing because we combine honest advice, fair pricing, and exceptional craftsmanship."
/>
</div>
<div id="testimonials" data-section="testimonials">
<TestimonialCardFive
textboxLayout="default"
useInvertedBackground={true}
testimonials={[
{ id: "1", name: "Adrian S.", date: "Oct 2023", title: "First Class Work", quote: "Friendly, professional and competitively priced. The standard of workmanship is first class.", tag: "Verified", avatarSrc: "http://img.b2bpic.net/free-photo/smiley-couple-seeing-new-house-with-realtor_23-2148895440.jpg" },
{ id: "2", name: "Verified Customer", date: "Sept 2023", title: "Honest & Affordable", quote: "Michael quickly identified the issue and fixed our roof leak properly. Honest, knowledgeable and affordable.", tag: "Verified", avatarSrc: "http://img.b2bpic.net/free-photo/beautiful-women-works-garden_1157-24617.jpg" }
]}
title="Trusted by Local Homeowners"
description="Our customers choose Astra Roofing because we combine honest advice, fair pricing, and exceptional craftsmanship."
/>
</div>
<div id="process" data-section="process">
<MetricCardFourteen
useInvertedBackground={false}
title="A Simple, Professional Process"
tag="How we work"
metrics={[
{ id: "m1", value: "1", description: "Get in Touch - Request a free, no-obligation quote online or over the phone." },
{ id: "m2", value: "2", description: "Roof Inspection - We perform a full assessment to find the root cause of your roofing issues." },
{ id: "m3", value: "3", description: "Clear Quote - We provide a detailed, fixed price quote with no surprises." },
{ id: "m4", value: "4", description: "Expert Workmanship - Completed to the highest industry standards by our expert team." },
]}
metricsAnimation="slide-up"
/>
</div>
<div id="process" data-section="process">
<MetricCardFourteen
useInvertedBackground={false}
title="A Simple, Professional Process"
tag="Our Process"
metrics={[
{ id: "m1", value: "1", description: "Get in Touch - Call or request a quote online" },
{ id: "m2", value: "2", description: "Roof Inspection - We assess the issue properly" },
{ id: "m3", value: "3", description: "Clear Quote - No hidden costs, no surprises" },
{ id: "m4", value: "4", description: "Expert Workmanship - Completed to the highest standard" },
]}
metricsAnimation="slide-up"
/>
</div>
<div id="local-focus" data-section="local-focus">
<FaqDouble
textboxLayout="split"
useInvertedBackground={true}
faqs={[
{ id: "l1", title: "Where are you based?", content: "We are located at 312 Sutton Rd, Walsall WS5 3BD and serve all surrounding areas." },
{ id: "l2", title: "Are you available weekends?", content: "We operate 24 hours a day, 7 days a week to handle emergency roofing issues." },
{ id: "l3", title: "Do you provide free quotes?", content: "Yes, all our quotes are free and carry no-obligation to proceed." },
]}
title="Proudly Serving Walsall"
description="Based on Sutton Road, Astra Roofing Limited is your local roofing expert."
faqsAnimation="slide-up"
/>
</div>
<div id="local-focus" data-section="local-focus">
<FaqDouble
textboxLayout="split"
useInvertedBackground={true}
faqs={[
{ id: "l1", title: "Where are you based?", content: "312 Sutton Rd, Walsall WS5 3BD" },
{ id: "l2", title: "Availability", content: "We are open 24 hours a day for emergency support." },
]}
title="Proudly Serving Walsall"
description="Based on Sutton Road, Astra Roofing Limited is your local roofing expert."
faqsAnimation="slide-up"
/>
</div>
<div id="contact" data-section="contact">
<ContactCTA
useInvertedBackground={false}
background={{ variant: "plain" }}
tag="Contact Us"
title="Got a Leak or Roofing Issue?"
description="Don't wait until it gets worse. Small problems turn into expensive repairs fast. Call us today for professional roofing advice."
buttons={[
{ text: "Get a Free Quote", href: "#" },
{ text: "Call Now: 01922 645993", href: "tel:01922645993" },
]}
/>
</div>
<div id="contact" data-section="contact">
<ContactCTA
useInvertedBackground={false}
background={{ variant: "plain" }}
tag="Contact Us"
title="Got a Leak or Roofing Issue?"
description="Don't wait until it gets worse. Small problems turn into expensive repairs fast."
buttons={[
{ text: "Get a Free Quote", href: "#" },
{ text: "Call Now: 01922 645993", href: "tel:01922645993" },
]}
/>
</div>
<div id="footer" data-section="footer">
<FooterBaseReveal
logoText="Astra Roofing Limited"
columns={[
{
title: "Company", items: [
{ label: "Home", href: "#hero" },
{ label: "Services", href: "#services" },
{ label: "Reviews", href: "#testimonials" },
{ label: "Contact", href: "#contact" },
],
},
{
title: "Contact", items: [
{ label: "01922 645993", href: "tel:01922645993" },
{ label: "Walsall Office", href: "#" },
{ label: "Open 24 Hours", href: "#" },
],
},
]}
copyrightText="© 2024 Astra Roofing Limited."
/>
</div>
<div id="footer" data-section="footer">
<FooterBaseReveal
logoText="Astra Roofing Limited"
columns={[
{ title: "Quick Links", items: [{ label: "Home", href: "#hero" }, { label: "Services", href: "#services" }, { label: "Reviews", href: "#testimonials" }, { label: "Contact", href: "#contact" }] },
{ title: "Contact", items: [{ label: "01922 645993", href: "tel:01922645993" }, { label: "Walsall", href: "#" }, { label: "Open 24/7", href: "#" }] },
]}
copyrightText="© 2025 Astra Roofing Limited"
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}
}

View File

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

View File

@@ -10,7 +10,7 @@
--accent: #ffffff;
--background-accent: #ffffff; */
--background: #ffffff;
--background: #FFFFFF;
--card: #f9f9f9;
--foreground: #111111;
--primary-cta: #C8A96A;