diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 0f0aeff..c3df64d 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -8,7 +8,8 @@ const manrope = Manrope({ }); export const metadata: Metadata = { - title: "Taishan Construction | Premium Hardscape & Building Services Toronto", description: "Premium interlock driveways, patios, landscaping & construction services across the GTA. Free 3D design, expert installation, luxury results."}; + title: "Taishan Construction | Premium Hardscape & Building Services Toronto", description: "Premium interlock driveways, patios, landscaping & construction services across the GTA. Free 3D design, expert installation, luxury results." +}; export default function RootLayout({ children, diff --git a/src/app/page.tsx b/src/app/page.tsx index e693933..918fe4a 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -11,8 +11,81 @@ import TestimonialCardTen from '@/components/sections/testimonial/TestimonialCar import ContactFaq from '@/components/sections/contact/ContactFaq'; import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal'; import { Building2, Eye, CheckCircle2, Palette, Users, MessageCircle, Sparkles, ArrowRightLeft, Cog, Footprints, Home, Zap, Shield, Hammer, Trees, Droplet, Frame, Lightbulb, Crown, Phone } from 'lucide-react'; +import React, { useState } from 'react'; + +interface BeforeAfterImagePair { + beforeSrc: string; + afterSrc: string; + title: string; +} + +const BeforeAfterCard: React.FC<{ + pair: BeforeAfterImagePair; + isHovered: boolean; +}> = ({ pair, isHovered }) => { + const [sliderPosition, setSliderPosition] = useState(50); + + const handleMouseMove = (e: React.MouseEvent) => { + const rect = e.currentTarget.getBoundingClientRect(); + const newPosition = ((e.clientX - rect.left) / rect.width) * 100; + setSliderPosition(Math.max(0, Math.min(100, newPosition))); + }; + + return ( +
setSliderPosition(50)} + > +
+ After +
+
+ Before +
+
+
+ +
+
+
+

{pair.title}

+
+
+ ); +}; export default function LandingPage() { + const [servicesHoveredCard, setServicesHoveredCard] = useState(null); + const [galleryHoveredCard, setGalleryHoveredCard] = useState(null); + + const beforeAfterPairs: BeforeAfterImagePair[] = [ + { + beforeSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AXh5KliD4l7rWjrQZkOq7ZuPnH/uploaded-1772749929936-lbulq2e9.jpg?_wi=1", afterSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AXh5KliD4l7rWjrQZkOq7ZuPnH/uploaded-1772749929936-uklcyhsf.jpg?_wi=1", title: "Rendering vs. Completed Project" + }, + { + beforeSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AXh5KliD4l7rWjrQZkOq7ZuPnH/uploaded-1772749929936-ok3joqnq.jpg?_wi=1", afterSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AXh5KliD4l7rWjrQZkOq7ZuPnH/uploaded-1772749929936-heyeujvs.jpg?_wi=1", title: "3D Design to Reality" + }, + { + beforeSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AXh5KliD4l7rWjrQZkOq7ZuPnH/uploaded-1772749929936-uklcyhsf.jpg?_wi=2", afterSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AXh5KliD4l7rWjrQZkOq7ZuPnH/uploaded-1772749929936-lbulq2e9.jpg?_wi=2", title: "Luxury Interlock Installation" + } + ]; + return (
- +
+
+
+

Complete Solutions

+

Our Services

+

Premium construction and landscaping services for Toronto and the Greater Toronto Area. Each project is crafted with precision and built to last.

+
+ +
+ {[ + { + id: "interlock", icon: Cog, + title: "Interlock Driveways", description: "Professional interlock paving with premium materials and expert installation" + }, + { + id: "patios", icon: Palette, + title: "Backyard Patios", description: "Custom patio designs transforming outdoor living spaces into luxury retreats" + }, + { + id: "walkways", icon: Footprints, + title: "Walkways", description: "Decorative and functional pathways connecting your property with style" + }, + { + id: "retaining", icon: Building2, + title: "Retaining Walls", description: "Structural and aesthetic walls for landscaping and property management" + }, + { + id: "porches", icon: Home, + title: "Natural Stone Porches", description: "Premium stone entry features creating impressive curb appeal" + }, + { + id: "lighting", icon: Zap, + title: "Landscape Lighting", description: "Professional outdoor lighting systems enhancing ambiance and security" + } + ].map((service) => ( +
setServicesHoveredCard(service.id)} + onMouseLeave={() => setServicesHoveredCard(null)} + > +
+ +

{service.title}

+

{service.description}

+
+ {servicesHoveredCard === service.id && ( +
+
+

See examples of this service

+

in our project gallery

+
+
+ )} +
+ ))} +
+ +
+

Interlock Driveway Showcase

+

Hover over the slider to see our photorealistic 3D renderings compared to actual completed projects:

+
+ {beforeAfterPairs.map((pair, index) => ( + + ))} +
+
+
+