Merge version_3_1781468216261 into main #2
@@ -9,7 +9,7 @@ export default function Layout() {
|
||||
<StyleProvider buttonVariant="default" siteBackground="none" heroBackground="none">
|
||||
<SiteBackgroundSlot />
|
||||
<NavbarCentered
|
||||
logo="GreenScape"
|
||||
logo="Contreras Landscaping Inc."
|
||||
navItems={[
|
||||
{ name: "Services", href: "#services" },
|
||||
{ name: "About", href: "#about" },
|
||||
@@ -23,7 +23,7 @@ export default function Layout() {
|
||||
<Outlet />
|
||||
</main>
|
||||
<FooterSimple
|
||||
brand="GreenScape"
|
||||
brand="Contreras Landscaping Inc."
|
||||
columns={[
|
||||
{
|
||||
title: "Services",
|
||||
@@ -52,7 +52,7 @@ export default function Layout() {
|
||||
],
|
||||
},
|
||||
]}
|
||||
copyright="© 2026 GreenScape Landscaping"
|
||||
copyright="© 2026 Contreras Landscaping Inc."
|
||||
links={[{ label: "Privacy Policy" }, { label: "Terms of Service" }]}
|
||||
/>
|
||||
</StyleProvider>
|
||||
|
||||
@@ -1,124 +1,34 @@
|
||||
// AUTO-GENERATED shell by per-section-migrate.
|
||||
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
|
||||
// files directly. Non-block content (wrappers, non-inlinable sections) is
|
||||
// preserved inline; extracted section blocks become <XSection/> refs.
|
||||
|
||||
import { StyleProvider } from "@/components/ui/StyleProvider";
|
||||
import HeroOverlayTestimonial from "@/components/sections/hero/HeroOverlayTestimonial";
|
||||
import AboutTestimonial from "@/components/sections/about/AboutTestimonial";
|
||||
import FeaturesDetailedSteps from "@/components/sections/features/FeaturesDetailedSteps";
|
||||
import TeamGlassCards from "@/components/sections/team/TeamGlassCards";
|
||||
import TestimonialAvatarCard from "@/components/sections/testimonial/TestimonialAvatarCard";
|
||||
import FaqTwoColumn from "@/components/sections/faq/FaqTwoColumn";
|
||||
import ContactSplitForm from "@/components/sections/contact/ContactSplitForm";
|
||||
import React from 'react';
|
||||
import HeroSection from './HomePage/sections/Hero';
|
||||
import AboutSection from './HomePage/sections/About';
|
||||
import ServicesSection from './HomePage/sections/Services';
|
||||
import WhyUsSection from './HomePage/sections/WhyUs';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import FaqSection from './HomePage/sections/Faq';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
export default function HomePage() {
|
||||
export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<StyleProvider heroBackground="none" siteBackground="none" buttonVariant="stagger">
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroOverlayTestimonial
|
||||
logo={{ text: "Contreras Landscaping Inc.", href: "/" }}
|
||||
tag="Professional Landscaping"
|
||||
title="Transform Your Outdoor Space with Contreras"
|
||||
description="Expert landscaping services serving Framingham and beyond. From lush gardens to beautiful stone masonry, we elevate your curb appeal."
|
||||
primaryButton={{ text: "(508) 308-0192", href: "tel:5083080192" }}
|
||||
secondaryButton={{ text: "Our Services", href: "#services" }}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/suburban-housing-garden_53876-30332.jpg"
|
||||
testimonials={[
|
||||
{
|
||||
name: "Juan Alvarez", handle: "Homeowner", text: "We hired Contreras Landscaping to replace our old concrete walkway with a new paver walkway. The results were amazing, high quality work. They were very professional, they did everything just like we wanted, and they finished in 2 days.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/people-recording-their-house-tour_23-2151139106.jpg"
|
||||
},
|
||||
{
|
||||
name: "Soraida Fernandez", handle: "Homeowner", text: "Contreras Landscaping did an amazing job with my spring cleaning and mulch. Very fast response and great price compared to others. We were very happy with the results and would recommend to others.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-beautiful-smiling-blond-model-dressed-summer-hipster-clothes-trendy-girl-posing-street-background-funny-positive-woman_158538-5479.jpg"
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
<StyleProvider heroBackground="none" siteBackground="none" buttonVariant="stagger">
|
||||
<HeroSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<AboutTestimonial
|
||||
tag="About Us"
|
||||
quote="At Contreras Landscaping, we treat every lawn like our own. Proudly serving Framingham at 49 Hayes St with honest, high-quality landscape solutions."
|
||||
author="Contreras Family"
|
||||
role="Local Landscaping Experts"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/reforestation-done-by-voluntary-group_23-2149500814.jpg"
|
||||
/>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="services" data-section="services">
|
||||
<FeaturesDetailedSteps
|
||||
tag="Our Services"
|
||||
title="Expert Landscape Solutions"
|
||||
description="Comprehensive lawn care and hardscape services to keep your property beautiful throughout the seasons."
|
||||
steps={[
|
||||
{
|
||||
tag: "Care", title: "Lawn Care & Maintenance", subtitle: "Healthy Lawns", description: "Professional mowing, edging, and seasonal upkeep to maintain a perfect, healthy lawn all year long.", imageSrc: "http://img.b2bpic.net/free-photo/orange-grasscutter-standing-ground-green-grass_176532-14408.jpg"
|
||||
},
|
||||
{
|
||||
tag: "Cleanups", title: "Mulching & Spring Cleanups", subtitle: "Seasonal Prep", description: "Refreshing your landscape with premium mulch and deep cleanups for a vibrant, weed-free garden.", imageSrc: "http://img.b2bpic.net/free-photo/yellow-flowering-plant-growing-out-from-soil_23-2147844293.jpg"
|
||||
},
|
||||
{
|
||||
tag: "Masonry", title: "Paver Walkways & Masonry", subtitle: "Custom Hardscapes", description: "Enhance your curb appeal with beautiful custom-built paver walkways and durable stone masonry.", imageSrc: "http://img.b2bpic.net/free-photo/cement-walkway-garden_1252-1023.jpg"
|
||||
},
|
||||
{
|
||||
tag: "Design", title: "Landscape Design", subtitle: "Custom Vision", description: "We plan and execute thoughtful landscapes tailored to your yard's unique needs and your personal preference.", imageSrc: "http://img.b2bpic.net/free-photo/view-city-with-apartment-buildings-green-vegetation_23-2150439317.jpg"
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
<ServicesSection />
|
||||
|
||||
<div id="why-us" data-section="why-us">
|
||||
<TeamGlassCards
|
||||
tag="Quality Guaranteed"
|
||||
title="Why Choose Contreras Landscaping"
|
||||
description="We prioritize reliability, fair pricing, and customer satisfaction above all else."
|
||||
members={[
|
||||
{ name: "Professionalism", role: "Dedicated to clear communication and timely completion of every project.", imageSrc: "http://img.b2bpic.net/free-photo/building-construction-workers-site_23-2149124254.jpg" },
|
||||
{ name: "Fair Pricing", role: "We provide great value for top-tier landscape maintenance and installation.", imageSrc: "http://img.b2bpic.net/free-photo/quality-standard-value-worth-level-class-grade-concept_53876-120630.jpg" },
|
||||
{ name: "Local Expertise", role: "Based in Framingham, we understand the local climate and soil conditions.", imageSrc: "http://img.b2bpic.net/free-photo/male-gardener-cutting-harvested-flower-garden_23-2148165213.jpg" }
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
<WhyUsSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<TestimonialAvatarCard
|
||||
tag="Happy Clients"
|
||||
title="Hear what our neighbors in Framingham are saying about Contreras Landscaping."
|
||||
primaryButton={{ text: "Get Quote", href: "#contact" }}
|
||||
avatars={[
|
||||
{ name: "Juan Alvarez", imageSrc: "http://img.b2bpic.net/free-photo/handsome-man-smiling-happy-face-portrait-close-up_53876-139608.jpg" },
|
||||
{ name: "Soraida Fernandez", imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-cheerful-beautiful-african-girl-smiling-young-woman-happily-facing-her-future_176420-11233.jpg" },
|
||||
{ name: "Jane Fannon", imageSrc: "http://img.b2bpic.net/free-photo/joyful-woman-black-jacket-liking-lip-posing-isolated-background-charming-lady-dark-suit-smiling-white-backdrop_197531-18516.jpg" }
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<FaqTwoColumn
|
||||
tag="FAQ"
|
||||
title="Frequently Asked Questions"
|
||||
description="Answers to common questions about our lawn and masonry services."
|
||||
items={[
|
||||
{ question: "Do you offer free estimates?", answer: "Yes, we are happy to provide free estimates for any of our landscaping, masonry, or maintenance services." },
|
||||
{ question: "What areas do you serve?", answer: "We are based in Framingham, MA and provide services to homeowners in the surrounding communities." },
|
||||
{ question: "How can I schedule a consultation?", answer: "Simply call us at (508) 308-0192 or fill out the form below to get started." },
|
||||
{ question: "Do you handle residential masonry?", answer: "Absolutely. We specialize in custom paver walkways and stone masonry projects." }
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactSplitForm
|
||||
tag="Contact Us"
|
||||
title="Get Your Free Estimate"
|
||||
description="Contact us at 49 Hayes St, Framingham or send a message below for a quick response."
|
||||
inputs={[
|
||||
{ name: "name", type: "text", placeholder: "Full Name", required: true },
|
||||
{ name: "email", type: "email", placeholder: "Email", required: true },
|
||||
{ name: "phone", type: "tel", placeholder: "Phone", required: true }
|
||||
]}
|
||||
textarea={{ name: "message", placeholder: "How can we help with your landscape?", rows: 4, required: true }}
|
||||
buttonText="Send Message"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/beautiful-shot-stone-building-with-lovely-yard-blue-sky-punta-de-lobos-chile_181624-13685.jpg"
|
||||
/>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</StyleProvider>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
19
src/pages/HomePage/sections/About.tsx
Normal file
19
src/pages/HomePage/sections/About.tsx
Normal file
@@ -0,0 +1,19 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "about" section.
|
||||
|
||||
import React from 'react';
|
||||
import AboutTestimonial from "@/components/sections/about/AboutTestimonial";
|
||||
|
||||
export default function AboutSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="about" data-section="about">
|
||||
<AboutTestimonial
|
||||
tag="About Us"
|
||||
quote="At Contreras Landscaping, we treat every lawn like our own. Proudly serving Framingham at 49 Hayes St with honest, high-quality landscape solutions."
|
||||
author="Contreras Family"
|
||||
role="Local Landscaping Experts"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/reforestation-done-by-voluntary-group_23-2149500814.jpg"
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
25
src/pages/HomePage/sections/Contact.tsx
Normal file
25
src/pages/HomePage/sections/Contact.tsx
Normal file
@@ -0,0 +1,25 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "contact" section.
|
||||
|
||||
import React from 'react';
|
||||
import ContactSplitForm from "@/components/sections/contact/ContactSplitForm";
|
||||
|
||||
export default function ContactSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactSplitForm
|
||||
tag="Contact Us"
|
||||
title="Get Your Free Estimate"
|
||||
description="Contact us at 49 Hayes St, Framingham or send a message below for a quick response."
|
||||
inputs={[
|
||||
{ name: "name", type: "text", placeholder: "Full Name", required: true },
|
||||
{ name: "email", type: "email", placeholder: "Email", required: true },
|
||||
{ name: "phone", type: "tel", placeholder: "Phone", required: true }
|
||||
]}
|
||||
textarea={{ name: "message", placeholder: "How can we help with your landscape?", rows: 4, required: true }}
|
||||
buttonText="Send Message"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/beautiful-shot-stone-building-with-lovely-yard-blue-sky-punta-de-lobos-chile_181624-13685.jpg"
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
23
src/pages/HomePage/sections/Faq.tsx
Normal file
23
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,23 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "faq" section.
|
||||
|
||||
import React from 'react';
|
||||
import FaqTwoColumn from "@/components/sections/faq/FaqTwoColumn";
|
||||
|
||||
export default function FaqSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="faq" data-section="faq">
|
||||
<FaqTwoColumn
|
||||
tag="FAQ"
|
||||
title="Frequently Asked Questions"
|
||||
description="Answers to common questions about our lawn and masonry services."
|
||||
items={[
|
||||
{ question: "Do you offer free estimates?", answer: "Yes, we are happy to provide free estimates for any of our landscaping, masonry, or maintenance services." },
|
||||
{ question: "What areas do you serve?", answer: "We are based in Framingham, MA and provide services to homeowners in the surrounding communities." },
|
||||
{ question: "How can I schedule a consultation?", answer: "Simply call us at (508) 308-0192 or fill out the form below to get started." },
|
||||
{ question: "Do you handle residential masonry?", answer: "Absolutely. We specialize in custom paver walkways and stone masonry projects." }
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
31
src/pages/HomePage/sections/Hero.tsx
Normal file
31
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,31 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "hero" section.
|
||||
|
||||
import React from 'react';
|
||||
import HeroOverlayTestimonial from "@/components/sections/hero/HeroOverlayTestimonial";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroOverlayTestimonial
|
||||
logo={{ text: "Contreras Landscaping Inc.", href: "/" }}
|
||||
tag="Professional Landscaping"
|
||||
title="Transform Your Outdoor Space with Contreras"
|
||||
description="Expert landscaping services serving Framingham and beyond. From lush gardens to beautiful stone masonry, we elevate your curb appeal."
|
||||
primaryButton={{ text: "(508) 308-0192", href: "tel:5083080192" }}
|
||||
secondaryButton={{ text: "Our Services", href: "#services" }}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/suburban-housing-garden_53876-30332.jpg"
|
||||
testimonials={[
|
||||
{
|
||||
name: "Juan Alvarez", handle: "Homeowner", text: "We hired Contreras Landscaping to replace our old concrete walkway with a new paver walkway. The results were amazing, high quality work. They were very professional, they did everything just like we wanted, and they finished in 2 days.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/people-recording-their-house-tour_23-2151139106.jpg"
|
||||
},
|
||||
{
|
||||
name: "Soraida Fernandez", handle: "Homeowner", text: "Contreras Landscaping did an amazing job with my spring cleaning and mulch. Very fast response and great price compared to others. We were very happy with the results and would recommend to others.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-beautiful-smiling-blond-model-dressed-summer-hipster-clothes-trendy-girl-posing-street-background-funny-positive-woman_158538-5479.jpg"
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
31
src/pages/HomePage/sections/Services.tsx
Normal file
31
src/pages/HomePage/sections/Services.tsx
Normal file
@@ -0,0 +1,31 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "services" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesDetailedSteps from "@/components/sections/features/FeaturesDetailedSteps";
|
||||
|
||||
export default function ServicesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="services" data-section="services">
|
||||
<FeaturesDetailedSteps
|
||||
tag="Our Services"
|
||||
title="Expert Landscape Solutions"
|
||||
description="Comprehensive lawn care and hardscape services to keep your property beautiful throughout the seasons."
|
||||
steps={[
|
||||
{
|
||||
tag: "Care", title: "Lawn Care & Maintenance", subtitle: "Healthy Lawns", description: "Professional mowing, edging, and seasonal upkeep to maintain a perfect, healthy lawn all year long.", imageSrc: "http://img.b2bpic.net/free-photo/orange-grasscutter-standing-ground-green-grass_176532-14408.jpg"
|
||||
},
|
||||
{
|
||||
tag: "Cleanups", title: "Mulching & Spring Cleanups", subtitle: "Seasonal Prep", description: "Refreshing your landscape with premium mulch and deep cleanups for a vibrant, weed-free garden.", imageSrc: "http://img.b2bpic.net/free-photo/yellow-flowering-plant-growing-out-from-soil_23-2147844293.jpg"
|
||||
},
|
||||
{
|
||||
tag: "Masonry", title: "Paver Walkways & Masonry", subtitle: "Custom Hardscapes", description: "Enhance your curb appeal with beautiful custom-built paver walkways and durable stone masonry.", imageSrc: "http://img.b2bpic.net/free-photo/cement-walkway-garden_1252-1023.jpg"
|
||||
},
|
||||
{
|
||||
tag: "Design", title: "Landscape Design", subtitle: "Custom Vision", description: "We plan and execute thoughtful landscapes tailored to your yard's unique needs and your personal preference.", imageSrc: "http://img.b2bpic.net/free-photo/view-city-with-apartment-buildings-green-vegetation_23-2150439317.jpg"
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
22
src/pages/HomePage/sections/Testimonials.tsx
Normal file
22
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,22 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "testimonials" section.
|
||||
|
||||
import React from 'react';
|
||||
import TestimonialAvatarCard from "@/components/sections/testimonial/TestimonialAvatarCard";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<TestimonialAvatarCard
|
||||
tag="Happy Clients"
|
||||
title="Hear what our neighbors in Framingham are saying about Contreras Landscaping."
|
||||
primaryButton={{ text: "Get Quote", href: "#contact" }}
|
||||
avatars={[
|
||||
{ name: "Juan Alvarez", imageSrc: "http://img.b2bpic.net/free-photo/handsome-man-smiling-happy-face-portrait-close-up_53876-139608.jpg" },
|
||||
{ name: "Soraida Fernandez", imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-cheerful-beautiful-african-girl-smiling-young-woman-happily-facing-her-future_176420-11233.jpg" },
|
||||
{ name: "Jane Fannon", imageSrc: "http://img.b2bpic.net/free-photo/joyful-woman-black-jacket-liking-lip-posing-isolated-background-charming-lady-dark-suit-smiling-white-backdrop_197531-18516.jpg" }
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
22
src/pages/HomePage/sections/WhyUs.tsx
Normal file
22
src/pages/HomePage/sections/WhyUs.tsx
Normal file
@@ -0,0 +1,22 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "why-us" section.
|
||||
|
||||
import React from 'react';
|
||||
import TeamGlassCards from "@/components/sections/team/TeamGlassCards";
|
||||
|
||||
export default function WhyUsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="why-us" data-section="why-us">
|
||||
<TeamGlassCards
|
||||
tag="Quality Guaranteed"
|
||||
title="Why Choose Contreras Landscaping"
|
||||
description="We prioritize reliability, fair pricing, and customer satisfaction above all else."
|
||||
members={[
|
||||
{ name: "Professionalism", role: "Dedicated to clear communication and timely completion of every project.", imageSrc: "http://img.b2bpic.net/free-photo/building-construction-workers-site_23-2149124254.jpg" },
|
||||
{ name: "Fair Pricing", role: "We provide great value for top-tier landscape maintenance and installation.", imageSrc: "http://img.b2bpic.net/free-photo/quality-standard-value-worth-level-class-grade-concept_53876-120630.jpg" },
|
||||
{ name: "Local Expertise", role: "Based in Framingham, we understand the local climate and soil conditions.", imageSrc: "http://img.b2bpic.net/free-photo/male-gardener-cutting-harvested-flower-garden_23-2148165213.jpg" }
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user