13 Commits

Author SHA1 Message Date
f7376c7bbd Merge version_9_1778358860476 into main
Merge version_9_1778358860476 into main
2026-05-09 20:35:50 +00:00
kudinDmitriyUp
56cd4902bd feat: Remove star ratings from product cards 2026-05-09 20:35:10 +00:00
46096bc2de Switch to version 8: modified src/pages/HomePage.tsx 2026-05-09 20:19:35 +00:00
a0d5e89304 Switch to version 7: modified src/pages/HomePage.tsx 2026-05-09 20:19:08 +00:00
9c6e7a549c Merge version_8_1778357203266 into main
Merge version_8_1778357203266 into main
2026-05-09 20:08:31 +00:00
kudinDmitriyUp
76e4a68006 feat: replace FeaturesTaggedCards with FeaturesMediaCards for a more connected look 2026-05-09 20:07:53 +00:00
d19f1afc4d Merge version_6_1778355317849 into main
Merge version_6_1778355317849 into main
2026-05-09 19:37:12 +00:00
kudinDmitriyUp
cd15b4aa88 feat: Combine hero buttons into a single full-width button 2026-05-09 19:36:35 +00:00
237b5d6dad Merge version_5_1778355140725 into main
Merge version_5_1778355140725 into main
2026-05-09 19:33:59 +00:00
kudinDmitriyUp
e9e582d543 feat: Change button style to be full 2026-05-09 19:33:23 +00:00
5189fba3e2 Merge version_4_1778354978472 into main
Merge version_4_1778354978472 into main
2026-05-09 19:31:02 +00:00
kudinDmitriyUp
be75e69bf6 feat: connect hero buttons into a single unit 2026-05-09 19:30:22 +00:00
9abaace63e Merge version_3_1778354574150 into main
Merge version_3_1778354574150 into main
2026-05-09 19:24:40 +00:00
5 changed files with 10 additions and 53 deletions

View File

@@ -9,7 +9,6 @@ type HeroOverlayProps = {
title: string;
description: string;
primaryButton: { text: string; href: string };
secondaryButton: { text: string; href: string };
avatars?: { src: string }[];
avatarsLabel?: string;
} & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never });
@@ -19,7 +18,6 @@ const HeroOverlay = ({
title,
description,
primaryButton,
secondaryButton,
imageSrc,
videoSrc,
avatars,
@@ -62,10 +60,7 @@ const HeroOverlay = ({
className="text-lg md:text-xl text-primary-cta-text leading-tight text-balance"
/>
<div className="flex flex-wrap gap-3 mt-3">
<Button text={primaryButton.text} href={primaryButton.href} variant="primary"/>
<Button text={secondaryButton.text} href={secondaryButton.href} variant="secondary"animationDelay={0.1} />
</div>
<Button text={primaryButton.text} href={primaryButton.href} variant="primary" className="w-full mt-3" />
{avatars && avatars.length > 0 && (
<div className="mt-4">

View File

@@ -45,9 +45,9 @@ const HeroSplit = ({
className="max-w-8/10 text-lg md:text-xl leading-tight text-center md:text-left"
/>
<div className="flex flex-wrap max-md:justify-center gap-3 mt-3">
<Button text={primaryButton.text} href={primaryButton.href} variant="primary"/>
<Button text={secondaryButton.text} href={secondaryButton.href} variant="secondary"animationDelay={0.1} />
<div className="flex flex-wrap max-md:justify-center mt-3">
<Button text={primaryButton.text} href={primaryButton.href} variant="primary" className="rounded-r-none" />
<Button text={secondaryButton.text} href={secondaryButton.href} variant="secondary" className="rounded-l-none" animationDelay={0.1} />
</div>
</div>
</div>

View File

@@ -108,21 +108,7 @@ const ProductRatingCards = ({
<div className="flex flex-col gap-1">
<h3 className="text-xl font-medium truncate">{product.name}</h3>
<div className="flex items-center gap-2">
<div className="flex items-center gap-1">
{Array.from({ length: 5 }).map((_, index) => (
<Star
key={index}
className={cls(
"size-4 text-accent",
index < Math.floor(product.rating) ? "fill-accent" : "opacity-20"
)}
strokeWidth={1.5}
/>
))}
</div>
<span className="text-sm">({product.reviewCount})</span>
</div>
</div>
<p className="text-2xl font-medium">{product.price}</p>

View File

@@ -165,40 +165,24 @@ h6 {
.primary-button {
/* WEBILD_PRIMARY_BUTTON */
/* @primaryButtons/depth-layers */
/* @primaryButtons/full */
background: var(--color-primary-cta);
border-top: 1px solid color-mix(in srgb, var(--color-primary-cta) 80%, #fff);
border-bottom: 1px solid color-mix(in srgb, var(--color-primary-cta) 80%, #000);
box-shadow: 0 4px 6px rgba(0,0,0,0.1), 0 1px 3px rgba(0,0,0,0.08);
transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
}
.primary-button:hover {
transform: translateY(-2px);
box-shadow: 0 7px 14px rgba(0,0,0,0.1), 0 3px 6px rgba(0,0,0,0.08);
}
.primary-button:active {
transform: translateY(1px);
box-shadow: 0 2px 4px rgba(0,0,0,0.1), 0 1px 2px rgba(0,0,0,0.08);
}
.secondary-button {
/* WEBILD_SECONDARY_BUTTON */
/* @secondaryButtons/layered */
/* @secondaryButtons/full */
background: var(--color-secondary-cta);
border-top: 1px solid color-mix(in srgb, var(--color-secondary-cta) 80%, #fff);
border-bottom: 1px solid color-mix(in srgb, var(--color-secondary-cta) 80%, #000);
box-shadow: 0 4px 6px rgba(0,0,0,0.1), 0 1px 3px rgba(0,0,0,0.08);
transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
}
.secondary-button:hover {
transform: translateY(-2px);
box-shadow: 0 7px 14px rgba(0,0,0,0.1), 0 3px 6px rgba(0,0,0,0.08);
}
.secondary-button:active {
transform: translateY(1px);
box-shadow: 0 2px 4px rgba(0,0,0,0.1), 0 1px 2px rgba(0,0,0,0.08);
}

View File

@@ -1,6 +1,6 @@
import AboutTestimonial from '@/components/sections/about/AboutTestimonial';
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
import FeaturesMediaCards from '@/components/sections/features/FeaturesMediaCards';
import HeroOverlay from '@/components/sections/hero/HeroOverlay';
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
import ProductRatingCards from '@/components/sections/product/ProductRatingCards';
@@ -18,13 +18,9 @@ export default function HomePage() {
title="Transforming San Diego Landscapes"
description="Expert landscaping services for residential and commercial properties in San Diego. From lush gardens to sustainable designs, we bring your vision to life."
primaryButton={{
text: "Get a Free Estimate",
text: "Get a Free Estimate or View Our Services",
href: "#contact",
}}
secondaryButton={{
text: "View Our Services",
href: "#services",
}}
imageSrc="http://img.b2bpic.net/free-photo/landscape-courtyard-monastery_1268-15252.jpg"
avatarsLabel="Trusted by 500+ happy clients"
avatars={[
@@ -50,31 +46,27 @@ export default function HomePage() {
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesTaggedCards
<FeaturesMediaCards
tag="Our Services"
title="Comprehensive Landscaping Solutions"
description="We offer a full range of landscaping services to enhance the beauty and functionality of your property, tailored to San Diego's unique climate."
items={[
{
tag: "Design & Planning",
title: "Custom Garden Design",
description: "From conceptualization to execution, we craft bespoke garden designs that reflect your style and thrive in our local environment.",
imageSrc: "https://storage.googleapis.com/webild/users/user_3AJc0x1D8fz8hQeSgAZ5t4kfi3f/tmp/make-a-garden-1778354006288-58a0ef89.png",
},
{
tag: "Water Management",
title: "Efficient Irrigation Systems",
description: "Minimize water waste and maintain lush landscapes with our expertly installed and maintained irrigation systems.",
imageSrc: "https://pixabay.com/get/gee03c76caf2072a1410b6a90291c9fc2a15e13422de8717d3b37cf15dba7a3f1e04099aa7f6e3e7d85cf7719273d7c200642bf6b83aa462832eedd86198793b4_1280.jpg?id=2900029",
},
{
tag: "Plant Care",
title: "Tree & Shrub Services",
description: "Keep your trees and shrubs healthy and beautiful with our professional pruning, removal, and plant health care programs.",
imageSrc: "https://pixabay.com/get/gd04c1f5508662b2129847ab2da6c712392b6afe2db7416fdb3707e2fb50a3eaee99ff69ee8f054482c6c1d486f33ed08d073f38aaf82a8db2bb54007cec1c572_1280.jpg?id=5263781",
},
{
tag: "Outdoor Living",
title: "Hardscaping & Patios",
description: "Create stunning outdoor living spaces with custom patios, walkways, fire pits, and retaining walls using durable materials.",
imageSrc: "http://img.b2bpic.net/free-photo/rustic-deck-with-patio-furniture-vegetation_23-2150698456.jpg",