39 Commits

Author SHA1 Message Date
e0076c6b13 Update src/app/page.tsx 2026-03-06 00:25:20 +00:00
3eed2431ef Update src/app/layout.tsx 2026-03-06 00:25:19 +00:00
3fe25ae0df Merge version_7 into main
Merge version_7 into main
2026-03-06 00:18:04 +00:00
1d9349c15d Update src/app/page.tsx 2026-03-06 00:18:00 +00:00
e92f8bfe99 Update src/app/layout.tsx 2026-03-06 00:18:00 +00:00
51e34f4b29 Merge version_6 into main
Merge version_6 into main
2026-03-06 00:15:00 +00:00
812ca9ef84 Update src/app/page.tsx 2026-03-06 00:14:56 +00:00
55ed7a7d9f Merge version_6 into main
Merge version_6 into main
2026-03-06 00:13:13 +00:00
605f8bdf62 Update src/app/page.tsx 2026-03-06 00:13:09 +00:00
87bec05b7e Merge version_6 into main
Merge version_6 into main
2026-03-06 00:11:32 +00:00
43c9bc334a Update src/app/page.tsx 2026-03-06 00:11:28 +00:00
13e2614fdb Update src/app/layout.tsx 2026-03-06 00:11:27 +00:00
4a6a6f1a7f Merge version_6 into main
Merge version_6 into main
2026-03-06 00:09:40 +00:00
fbe218e325 Update src/app/page.tsx 2026-03-06 00:09:36 +00:00
52b726e20a Merge version_6 into main
Merge version_6 into main
2026-03-06 00:07:54 +00:00
3124ddf4bf Update src/app/page.tsx 2026-03-06 00:07:50 +00:00
a3a623d06a Merge version_6 into main
Merge version_6 into main
2026-03-06 00:06:07 +00:00
21bec54d83 Update src/app/page.tsx 2026-03-06 00:06:03 +00:00
9dbcf34068 Merge version_6 into main
Merge version_6 into main
2026-03-06 00:04:21 +00:00
d43a1af899 Update src/app/page.tsx 2026-03-06 00:04:11 +00:00
203283c134 Merge version_6 into main
Merge version_6 into main
2026-03-06 00:02:25 +00:00
fa437999a3 Update src/app/page.tsx 2026-03-06 00:02:21 +00:00
18959feb6a Merge version_6 into main
Merge version_6 into main
2026-03-06 00:00:38 +00:00
4a97a8eaf9 Update src/app/page.tsx 2026-03-06 00:00:34 +00:00
43bee4235f Update src/app/layout.tsx 2026-03-06 00:00:34 +00:00
e14e26ec5b Merge version_3 into main
Merge version_3 into main
2026-03-05 23:57:45 +00:00
70055d040a Switch to version 3: modified src/app/page.tsx 2026-03-05 23:56:07 +00:00
53692691ca Switch to version 4: modified src/app/page.tsx 2026-03-05 23:56:00 +00:00
4c56d54f72 Switch to version 4: modified src/app/layout.tsx 2026-03-05 23:56:00 +00:00
3ed757eeb7 Merge version_5 into main
Merge version_5 into main
2026-03-05 23:06:34 +00:00
6ecb80f5f1 Update src/app/page.tsx 2026-03-05 23:06:29 +00:00
a91830f1d8 Merge version_5 into main
Merge version_5 into main
2026-03-05 23:04:50 +00:00
86f3a04a34 Update src/app/page.tsx 2026-03-05 23:04:46 +00:00
4493b29637 Update src/app/layout.tsx 2026-03-05 23:04:45 +00:00
7b760bc1de Merge version_4 into main
Merge version_4 into main
2026-03-05 22:56:24 +00:00
dc074890c8 Update src/app/page.tsx 2026-03-05 22:56:20 +00:00
84791df8f1 Merge version_4 into main
Merge version_4 into main
2026-03-05 22:54:36 +00:00
e08c865688 Update src/app/page.tsx 2026-03-05 22:54:32 +00:00
6ddaa22e34 Merge version_3 into main
Merge version_3 into main
2026-03-05 22:39:44 +00:00
2 changed files with 42 additions and 91 deletions

View File

@@ -1,24 +1,13 @@
import type { Metadata } from "next";
import { Manrope } from "next/font/google";
import { Inter } from "next/font/google";
import { Open_Sans } from "next/font/google";
import "./styles/variables.css";
import { Raleway } from "next/font/google";
import "./globals.css";
const raleway = Raleway({ subsets: ["latin"] });
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 & Construction Services Toronto", description: "Premium landscaping and construction services across the GTA. Free 3D design, professional installation, material showroom."
};
const inter = Inter({
variable: "--font-inter",
subsets: ["latin"],
});
const openSans = Open_Sans({
variable: "--font-open-sans",
subsets: ["latin"],
});
export default function RootLayout({
children,
}: {
@@ -26,9 +15,7 @@ export default function RootLayout({
}) {
return (
<html lang="en">
<body className={`${inter.variable} ${openSans.variable} antialiased`}>
{children}
<body className={raleway.className}>{children}
<script
dangerouslySetInnerHTML={{
__html: `

View File

@@ -12,6 +12,7 @@ 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';
import Link from 'next/link';
interface BeforeAfterImagePair {
beforeSrc: string;
@@ -207,79 +208,42 @@ export default function LandingPage() {
</div>
<div id="services" data-section="services">
<div className="px-6 lg:px-12 py-16 lg:py-24">
<div className="max-w-7xl mx-auto">
<div className="mb-12">
<p className="text-sm font-semibold uppercase tracking-wider text-primary-cta mb-2">Complete Solutions</p>
<h2 className="text-4xl lg:text-5xl font-bold mb-4">Our Services</h2>
<p className="text-lg text-foreground/80">Premium construction and landscaping services for Toronto and the Greater Toronto Area. Each project is crafted with precision and built to last.</p>
</div>
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mb-12">
{[
{
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) => (
<div
key={service.id}
className="relative group"
onMouseEnter={() => setServicesHoveredCard(service.id)}
onMouseLeave={() => setServicesHoveredCard(null)}
>
<div className="p-6 rounded-lg border border-accent/20 bg-card hover:border-primary-cta/40 transition-all duration-300">
<service.icon className="w-8 h-8 text-primary-cta mb-4" />
<h3 className="text-xl font-semibold mb-2">{service.title}</h3>
<p className="text-foreground/70 text-sm">{service.description}</p>
</div>
{servicesHoveredCard === service.id && (
<div className="absolute inset-0 rounded-lg bg-black/50 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-300 pointer-events-none">
<div className="text-center text-white p-4">
<p className="font-semibold">See examples of this service</p>
<p className="text-sm text-white/80">in our project gallery</p>
</div>
</div>
)}
</div>
))}
</div>
<div className="bg-card rounded-lg p-8 border border-accent/20">
<h3 className="text-2xl font-bold mb-6">Interlock Driveway Showcase</h3>
<p className="text-foreground/80 mb-8">Hover over the slider to see our photorealistic 3D renderings compared to actual completed projects:</p>
<div className="grid grid-cols-1 lg:grid-cols-3 gap-6">
{beforeAfterPairs.map((pair, index) => (
<BeforeAfterCard
key={index}
pair={pair}
isHovered={galleryHoveredCard === `service-${index}`}
/>
))}
</div>
</div>
</div>
</div>
<FeatureHoverPattern
title="Our Services"
description="Premium construction and landscaping services for Toronto and the Greater Toronto Area. Each project is crafted with precision and built to last."
tag="Complete Solutions"
tagAnimation="slide-up"
features={[
{
icon: Cog,
title: "Interlock Driveways", description: "Professional interlock paving with premium materials and expert installation"
},
{
icon: Palette,
title: "Backyard Patios", description: "Custom patio designs transforming outdoor living spaces into luxury retreats"
},
{
icon: Footprints,
title: "Walkways", description: "Decorative and functional pathways connecting your property with style"
},
{
icon: Building2,
title: "Retaining Walls", description: "Structural and aesthetic walls for landscaping and property management"
},
{
icon: Home,
title: "Natural Stone Porches", description: "Premium stone entry features creating impressive curb appeal"
},
{
icon: Zap,
title: "Landscape Lighting", description: "Professional outdoor lighting systems enhancing ambiance and security"
}
]}
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
buttonAnimation="slide-up"
/>
</div>
<div id="gallery" data-section="gallery">
@@ -447,7 +411,7 @@ export default function LandingPage() {
<div id="contact" data-section="contact">
<ContactFaq
ctaTitle="Ready to Transform Your Property?"
ctaDescription="Book a consultation and receive a free 3D preview of your project."
ctaDescription="Start your project with a free consultation and photorealistic 3D rendering."
ctaButton={{
text: "Get Free 3D Design", href: "mailto:info@taishanconstruction.com?subject=Free%203D%20Design%20Consultation"
}}