18 Commits

Author SHA1 Message Date
92359ee7d1 Update src/app/sold-cars/page.tsx 2026-04-17 00:28:00 +00:00
ce8157405e Update src/app/cars-for-sale/page.tsx 2026-04-17 00:27:59 +00:00
28af75d6c2 Update src/app/cars-for-rent/page.tsx 2026-04-17 00:27:59 +00:00
b56f6d48eb Update src/app/sold-cars/page.tsx 2026-04-17 00:27:35 +00:00
8366c71efe Update src/app/contact/page.tsx 2026-04-17 00:27:35 +00:00
ebf345b94f Update src/app/cars-for-sale/page.tsx 2026-04-17 00:27:34 +00:00
9a5f0a2a6e Update src/app/cars-for-rent/page.tsx 2026-04-17 00:27:34 +00:00
02b5bc9dd6 Add src/app/sold-cars/page.tsx 2026-04-17 00:27:05 +00:00
f04eb69295 Update src/app/page.tsx 2026-04-17 00:27:05 +00:00
8310e87704 Update src/app/contact/page.tsx 2026-04-17 00:27:05 +00:00
6d3c1f864a Add src/app/cars-for-sale/page.tsx 2026-04-17 00:27:04 +00:00
1b3ae89620 Add src/app/cars-for-rent/page.tsx 2026-04-17 00:27:04 +00:00
49ca598970 Merge version_2 into main
Merge version_2 into main
2026-04-16 13:41:19 +00:00
69f34c3d17 Update src/app/contact/page.tsx 2026-04-16 13:41:16 +00:00
0491519d01 Merge version_2 into main
Merge version_2 into main
2026-04-16 13:40:54 +00:00
d889e5b6dd Update src/app/styles/variables.css 2026-04-16 13:40:51 +00:00
398e3ed372 Update src/app/page.tsx 2026-04-16 13:40:51 +00:00
6952aed6a5 Add src/app/contact/page.tsx 2026-04-16 13:40:50 +00:00
6 changed files with 165 additions and 217 deletions

View File

@@ -0,0 +1,28 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
import ProductCardTwo from '@/components/sections/product/ProductCardTwo';
import FooterMedia from '@/components/sections/footer/FooterMedia';
export default function CarsForRentPage() {
return (
<ThemeProvider defaultButtonVariant="hover-bubble" defaultTextAnimation="entrance-slide" borderRadius="rounded" contentWidth="medium" sizing="medium" background="circleGradient" cardStyle="glass-elevated" primaryButtonStyle="gradient" secondaryButtonStyle="glass" headingFontWeight="normal">
<NavbarLayoutFloatingInline navItems={[{name: "Home", id: "/"}, {name: "Cars for Rent", id: "/cars-for-rent"}, {name: "Cars for Sale", id: "/cars-for-sale"}]} brandName="MaintainPro" button={{text: "Contact"}} />
<ProductCardTwo
title="Cars for Rent"
description="Explore our premium fleet available for short and long-term rental."
textboxLayout="default"
gridVariant="three-columns-all-equal-width"
animationType="slide-up"
useInvertedBackground={false}
products={[
{ id: "1", brand: "Toyota", name: "Camry", price: "$50/day", rating: 4.8, reviewCount: "120", imageSrc: "https://images.unsplash.com/photo-1621007947382-bb3c3994e3fb" },
{ id: "2", brand: "Honda", name: "CR-V", price: "$70/day", rating: 4.9, reviewCount: "85", imageSrc: "https://images.unsplash.com/photo-1542362567-b07e54256795?_wi=1" },
{ id: "3", brand: "Ford", name: "Escape", price: "$60/day", rating: 4.7, reviewCount: "95", imageSrc: "https://images.unsplash.com/photo-1542362567-b07e54256795?_wi=2" }
]}
/>
<FooterMedia logoText="MaintainPro" columns={[]} videoSrc="https://www.w3schools.com/howto/rain.mp4?_wi=1" />
</ThemeProvider>
);
}

View File

@@ -0,0 +1,28 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
import ProductCardTwo from '@/components/sections/product/ProductCardTwo';
import FooterMedia from '@/components/sections/footer/FooterMedia';
export default function CarsForSalePage() {
return (
<ThemeProvider defaultButtonVariant="hover-bubble" defaultTextAnimation="entrance-slide" borderRadius="rounded" contentWidth="medium" sizing="medium" background="circleGradient" cardStyle="glass-elevated" primaryButtonStyle="gradient" secondaryButtonStyle="glass" headingFontWeight="normal">
<NavbarLayoutFloatingInline navItems={[{name: "Home", id: "/"}, {name: "Cars for Rent", id: "/cars-for-rent"}, {name: "Cars for Sale", id: "/cars-for-sale"}]} brandName="MaintainPro" button={{text: "Contact"}} />
<ProductCardTwo
title="Cars for Sale"
description="Certified pre-owned vehicles with full maintenance history."
textboxLayout="default"
gridVariant="three-columns-all-equal-width"
animationType="slide-up"
useInvertedBackground={false}
products={[
{ id: "1", brand: "Ford", name: "Mustang", price: "$35,000", rating: 5.0, reviewCount: "45", imageSrc: "https://images.unsplash.com/photo-1547744152-14d9851142bc?_wi=1" },
{ id: "2", brand: "Tesla", name: "Model 3", price: "$42,000", rating: 4.7, reviewCount: "200", imageSrc: "https://images.unsplash.com/photo-1560958089-b8a1949cea8c" },
{ id: "3", brand: "Toyota", name: "Corolla", price: "$22,000", rating: 4.6, reviewCount: "150", imageSrc: "https://images.unsplash.com/photo-1547744152-14d9851142bc?_wi=2" }
]}
/>
<FooterMedia logoText="MaintainPro" columns={[]} videoSrc="https://www.w3schools.com/howto/rain.mp4?_wi=2" />
</ThemeProvider>
);
}

33
src/app/contact/page.tsx Normal file
View File

@@ -0,0 +1,33 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import ContactSplit from '@/components/sections/contact/ContactSplit';
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
export default function ContactPage() {
return (
<ThemeProvider defaultButtonVariant="hover-bubble" defaultTextAnimation="entrance-slide" borderRadius="rounded" contentWidth="medium" sizing="medium" background="circleGradient" cardStyle="glass-elevated" primaryButtonStyle="gradient" secondaryButtonStyle="glass" headingFontWeight="normal">
<ReactLenis root>
<NavbarLayoutFloatingInline
navItems={[
{ name: "Home", id: "/" },
{ name: "Cars for Rent", id: "/cars-for-rent" },
{ name: "Cars for Sale", id: "/cars-for-sale" },
]}
brandName="MaintainPro"
button={{text: "Contact"}}
/>
<ContactSplit
tag="Contact"
title="Contact Us"
description="Get in touch for professional service."
background={{ variant: "sparkles-gradient" }}
mediaAnimation="blur-reveal"
useInvertedBackground={false}
imageSrc="http://img.b2bpic.net/free-photo/lot-old-instruments-tool-box_146671-19093.jpg"
/>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -6,10 +6,10 @@ import AboutMetric from '@/components/sections/about/AboutMetric';
import ContactSplit from '@/components/sections/contact/ContactSplit';
import FeatureCardNineteen from '@/components/sections/feature/FeatureCardNineteen';
import FooterMedia from '@/components/sections/footer/FooterMedia';
import HeroBillboardTestimonial from '@/components/sections/hero/HeroBillboardTestimonial';
import HeroPersonalLinks from '@/components/sections/hero/HeroPersonalLinks';
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
import TestimonialCardSix from '@/components/sections/testimonial/TestimonialCardSix';
import { Award, Clock, Zap } from "lucide-react";
import { Award, Clock, Zap, Facebook, Instagram, Twitter, Linkedin } from "lucide-react";
export default function LandingPage() {
return (
@@ -29,122 +29,31 @@ export default function LandingPage() {
<div id="nav" data-section="nav">
<NavbarLayoutFloatingInline
navItems={[
{
name: "Services",
id: "services",
},
{
name: "About",
id: "about",
},
{
name: "Testimonials",
id: "testimonials",
},
{
name: "Contact",
id: "contact",
},
{ name: "Services", id: "services" },
{ name: "About", id: "about" },
{ name: "Testimonials", id: "testimonials" },
{ name: "Contact", id: "contact" },
]}
brandName="MaintainPro"
button={{
text: "Get Quote",
href: "#contact",
}}
text: "Get Quote", href: "#contact" }}
/>
</div>
<div id="hero" data-section="hero">
<HeroBillboardTestimonial
useInvertedBackground={false}
background={{
variant: "gradient-bars",
}}
<HeroPersonalLinks
background={{ variant: "gradient-bars" }}
title="Keep Your Business Running Smoothly"
description="Fast, reliable, and professional repair and maintenance services tailored for small businesses. Don't let downtime cost you your success."
testimonials={[
{
name: "Sarah Miller",
handle: "@smallbiz",
testimonial: "MaintainPro saved us hours of downtime. Incredible response time!",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/vendor-flowers_1098-13113.jpg",
},
{
name: "James Chen",
handle: "@techcorp",
testimonial: "Their preventive maintenance keeps our machinery in top condition.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg",
},
{
name: "Elena Rodriguez",
handle: "@growthco",
testimonial: "Transparent pricing and flexible scheduling — a perfect partner.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/closeup-portrait-successful-happy-smiling-young-woman-beige-jacket-glasses-standing-lobby-office-reception-greeting-business-client-with-pleasant-grin-inviting-company_197531-30568.jpg",
},
{
name: "David Smith",
handle: "@localstore",
testimonial: "Best maintenance service we have ever used. Highly professional.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/content-senior-businessman-with-arms-crossed_1262-1790.jpg",
},
{
name: "Linda White",
handle: "@agency",
testimonial: "Reliable, fast, and always there when we need an emergency repair.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/smiling-middle-aged-business-leader-window_1262-5674.jpg",
},
socialLinks={[
{ icon: Facebook, label: "Facebook", href: "#" },
{ icon: Instagram, label: "Instagram", href: "#" },
{ icon: Twitter, label: "Twitter", href: "#" },
{ icon: Linkedin, label: "LinkedIn", href: "#" },
]}
imageSrc="http://img.b2bpic.net/free-photo/mechanic-looking-tool-box_1170-1199.jpg"
imageAlt="Technician performing equipment repair"
mediaAnimation="blur-reveal"
avatars={[
{
src: "http://img.b2bpic.net/free-photo/confident-asian-businesswoman-showing-thumbs-up-standing-near-entrance-her-cafe-restaurant_1258-199355.jpg",
alt: "Client avatar 1",
},
{
src: "http://img.b2bpic.net/free-photo/portrait-young-female-entrepreneur-asian-business-owner-manager-sitting-confident-smiling_1258-199004.jpg",
alt: "Client avatar 2",
},
{
src: "http://img.b2bpic.net/free-photo/portrait-young-businesswoman-her-own-cafe-manager-standing-near-entrance-inviting-you-posi_1258-127578.jpg",
alt: "Client avatar 3",
},
{
src: "http://img.b2bpic.net/free-photo/portrait-smiling-owner-standing-bakery-shop_1170-2076.jpg",
alt: "Client avatar 4",
},
{
src: "http://img.b2bpic.net/free-photo/closeup-handsome-middle-aged-business-leader_1262-4822.jpg",
alt: "Client avatar 5",
},
]}
marqueeItems={[
{
type: "text",
text: "24/7 Support",
},
{
type: "text",
text: "Licensed Professionals",
},
{
type: "text",
text: "Rapid Response",
},
{
type: "text",
text: "Nationwide Coverage",
},
{
type: "text",
text: "Affordable Rates",
},
linkCards={[
{ title: "Preventive Care", description: "Routine maintenance to avoid costly downtime.", button: { text: "Learn More" } },
{ title: "Emergency Repair", description: "Available 24/7 for urgent operational needs.", button: { text: "Call Now" } },
{ title: "Facility Expert", description: "Comprehensive HVAC and electrical support.", button: { text: "Services" } }
]}
/>
</div>
@@ -154,21 +63,9 @@ export default function LandingPage() {
useInvertedBackground={false}
title="Operational Partners You Can Trust"
metrics={[
{
icon: Clock,
label: "Response Time",
value: "24/7",
},
{
icon: Award,
label: "Certified Pros",
value: "100%",
},
{
icon: Zap,
label: "Service Packages",
value: "5+",
},
{ icon: Clock, label: "Response Time", value: "24/7" },
{ icon: Award, label: "Certified Pros", value: "100%" },
{ icon: Zap, label: "Service Packages", value: "5+" },
]}
metricsAnimation="slide-up"
/>
@@ -179,27 +76,9 @@ export default function LandingPage() {
textboxLayout="split"
useInvertedBackground={false}
features={[
{
tag: "Essential",
title: "Preventive Maintenance",
subtitle: "Avoid breakdowns",
description: "Scheduled inspections and upkeep to prevent costly surprises.",
imageSrc: "http://img.b2bpic.net/free-photo/coworkers-servicing-hvac-system_482257-91024.jpg",
},
{
tag: "Urgent",
title: "Emergency Repairs",
subtitle: "Rapid response",
description: "We are available when you need us most to restore operations fast.",
imageSrc: "http://img.b2bpic.net/free-photo/man-electrical-technician-working-switchboard-with-fuses_169016-24584.jpg",
},
{
tag: "Core",
title: "Facility Servicing",
subtitle: "Plumbing & HVAC",
description: "Electrical, HVAC, and general facility repairs managed by experts.",
imageSrc: "http://img.b2bpic.net/free-photo/plumber-making-time-out-gesture_1368-773.jpg",
},
{ tag: "Essential", title: "Preventive Maintenance", subtitle: "Avoid breakdowns", description: "Scheduled inspections and upkeep to prevent costly surprises.", imageSrc: "http://img.b2bpic.net/free-photo/coworkers-servicing-hvac-system_482257-91024.jpg" },
{ tag: "Urgent", title: "Emergency Repairs", subtitle: "Rapid response", description: "We are available when you need us most to restore operations fast.", imageSrc: "http://img.b2bpic.net/free-photo/man-electrical-technician-working-switchboard-with-fuses_169016-24584.jpg" },
{ tag: "Core", title: "Facility Servicing", subtitle: "Plumbing & HVAC", description: "Electrical, HVAC, and general facility repairs managed by experts.", imageSrc: "http://img.b2bpic.net/free-photo/plumber-making-time-out-gesture_1368-773.jpg" },
]}
title="Professional Solutions for Every Need"
description="From emergency repairs to routine upkeep, we handle all your operational maintenance needs."
@@ -212,41 +91,11 @@ export default function LandingPage() {
textboxLayout="default"
useInvertedBackground={false}
testimonials={[
{
id: "1",
name: "Sarah Miller",
handle: "@smallbiz",
testimonial: "Excellent service and professionalism throughout the whole process.",
imageSrc: "http://img.b2bpic.net/free-photo/pleased-tilting-head-blinked-middle-aged-man-wearing-white-t-shirt-with-tie-crossing-hands-isolated-orange-wall_141793-83652.jpg",
},
{
id: "2",
name: "James Chen",
handle: "@techcorp",
testimonial: "Their expertise saved us significant money on long-term repairs.",
imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-businessman-suit-looking-camera-meeting_1163-4654.jpg",
},
{
id: "3",
name: "Elena Rodriguez",
handle: "@growthco",
testimonial: "Incredibly responsive and always transparent about pricing.",
imageSrc: "http://img.b2bpic.net/free-photo/smiling-african-american-girl-sitting-cafe_1262-3083.jpg",
},
{
id: "4",
name: "David Smith",
handle: "@localstore",
testimonial: "They understand the constraints of a small business and deliver.",
imageSrc: "http://img.b2bpic.net/free-photo/smiling-senior-businessman-sitting-stairs_1262-3109.jpg",
},
{
id: "5",
name: "Linda White",
handle: "@agency",
testimonial: "Our facility has never run more smoothly thanks to their team.",
imageSrc: "http://img.b2bpic.net/free-photo/man-smiling_1187-3402.jpg",
},
{ id: "1", name: "Sarah Miller", handle: "@smallbiz", testimonial: "Excellent service and professionalism throughout the whole process.", imageSrc: "http://img.b2bpic.net/free-photo/pleased-tilting-head-blinked-middle-aged-man-wearing-white-t-shirt-with-tie-crossing-hands-isolated-orange-wall_141793-83652.jpg" },
{ id: "2", name: "James Chen", handle: "@techcorp", testimonial: "Their expertise saved us significant money on long-term repairs.", imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-businessman-suit-looking-camera-meeting_1163-4654.jpg" },
{ id: "3", name: "Elena Rodriguez", handle: "@growthco", testimonial: "Incredibly responsive and always transparent about pricing.", imageSrc: "http://img.b2bpic.net/free-photo/smiling-african-american-girl-sitting-cafe_1262-3083.jpg" },
{ id: "4", name: "David Smith", handle: "@localstore", testimonial: "They understand the constraints of a small business and deliver.", imageSrc: "http://img.b2bpic.net/free-photo/smiling-senior-businessman-sitting-stairs_1262-3109.jpg" },
{ id: "5", name: "Linda White", handle: "@agency", testimonial: "Our facility has never run more smoothly thanks to their team.", imageSrc: "http://img.b2bpic.net/free-photo/man-smiling_1187-3402.jpg" },
]}
title="Trusted by Small Businesses"
description="See why business owners rely on MaintainPro for their operational stability."
@@ -256,9 +105,7 @@ export default function LandingPage() {
<div id="contact" data-section="contact">
<ContactSplit
useInvertedBackground={false}
background={{
variant: "sparkles-gradient",
}}
background={{ variant: "sparkles-gradient" }}
tag="Let's Talk"
title="Ready to Partner with Us?"
description="Reach out to schedule a consultation or request an emergency service quote."
@@ -273,36 +120,12 @@ export default function LandingPage() {
imageSrc="http://img.b2bpic.net/free-photo/large-modern-architecture-hall_181624-239.jpg"
logoText="MaintainPro"
columns={[
{
title: "Company",
items: [
{
label: "About",
href: "#about",
},
{
label: "Services",
href: "#services",
},
],
},
{
title: "Support",
items: [
{
label: "FAQ",
href: "#faq",
},
{
label: "Contact",
href: "#contact",
},
],
},
{ title: "Company", items: [{ label: "About", href: "#about" }, { label: "Services", href: "#services" }] },
{ title: "Support", items: [{ label: "FAQ", href: "#faq" }, { label: "Contact", href: "#contact" }] },
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}
}

View File

@@ -0,0 +1,36 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import ProductCardTwo from '@/components/sections/product/ProductCardTwo';
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
export default function SoldCarsPage() {
return (
<ThemeProvider defaultButtonVariant="hover-bubble" defaultTextAnimation="entrance-slide" borderRadius="rounded" contentWidth="medium" sizing="medium" background="circleGradient" cardStyle="glass-elevated" primaryButtonStyle="gradient" secondaryButtonStyle="glass" headingFontWeight="normal">
<ReactLenis root>
<NavbarLayoutFloatingInline
navItems={[
{ name: "Home", id: "/" },
{ name: "Contact", id: "/contact" },
]}
brandName="MaintainPro"
button={{text: "Contact"}}
/>
<ProductCardTwo
title="Recently Sold Vehicles"
description="A showcase of cars we've serviced and successfully sold."
gridVariant="three-columns-all-equal-width"
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
products={[
{ id: "1", brand: "Toyota", name: "Camry", price: "$15,000", rating: 5, reviewCount: "12", imageSrc: "http://img.b2bpic.net/free-photo/toyota-camry.jpg?_wi=1" },
{ id: "2", brand: "Honda", name: "Civic", price: "$12,000", rating: 4, reviewCount: "8", imageSrc: "http://img.b2bpic.net/free-photo/honda-civic.jpg" },
{ id: "3", brand: "Mazda", name: "CX-5", price: "$18,000", rating: 5, reviewCount: "15", imageSrc: "http://img.b2bpic.net/free-photo/toyota-camry.jpg?_wi=2" }
]}
/>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -10,15 +10,15 @@
--accent: #ffffff;
--background-accent: #ffffff; */
--background: #fafffb;
--card: #f7fffa;
--foreground: #001a0a;
--primary-cta: #0a7039;
--background: #020617;
--card: #0f172a;
--foreground: #e2e8f0;
--primary-cta: #c4d8f9;
--primary-cta-text: #fafffb;
--secondary-cta: #ffffff;
--secondary-cta: #041633;
--secondary-cta-text: #001a0a;
--accent: #a8d9be;
--background-accent: #6bbf8e;
--accent: #2d30f3;
--background-accent: #1d4ed8;
/* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);