Merge version_3 into main #5
@@ -1,17 +1,14 @@
|
||||
import type { Metadata } from "next";
|
||||
import { Geist, Geist_Mono } from "next/font/google";
|
||||
import { Inter } from "next/font/google";
|
||||
import "./globals.css";
|
||||
|
||||
const geist = Geist({
|
||||
variable: "--font-geist-sans", subsets: ["latin"],
|
||||
});
|
||||
|
||||
const geistMono = Geist_Mono({
|
||||
variable: "--font-geist-mono", subsets: ["latin"],
|
||||
const inter = Inter({
|
||||
variable: "--font-inter", subsets: ["latin"],
|
||||
});
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Create Next App", description: "Generated by create next app"};
|
||||
title: "JunkGone - Professional Junk Removal Service", description: "Same-day junk removal for homes and businesses. Transparent pricing, professional service, and responsible disposal."
|
||||
};
|
||||
|
||||
export default function RootLayout({
|
||||
children,
|
||||
@@ -20,7 +17,7 @@ export default function RootLayout({
|
||||
}) {
|
||||
return (
|
||||
<html lang="en">
|
||||
<body className={`${geist.variable} ${geistMono.variable}`}>
|
||||
<body className={`${inter.variable}`}>
|
||||
{children}
|
||||
|
||||
<script
|
||||
|
||||
162
src/app/page.tsx
162
src/app/page.tsx
@@ -4,13 +4,16 @@ import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
|
||||
import HeroSplitDualMedia from '@/components/sections/hero/HeroSplitDualMedia';
|
||||
import FeatureBorderGlow from '@/components/sections/feature/featureBorderGlow/FeatureBorderGlow';
|
||||
import ProductCardTwo from '@/components/sections/product/ProductCardTwo';
|
||||
import MetricSplitMediaAbout from '@/components/sections/about/MetricSplitMediaAbout';
|
||||
import PricingCardThree from '@/components/sections/pricing/PricingCardThree';
|
||||
import FeatureCardNine from '@/components/sections/feature/FeatureCardNine/FeatureCardNine';
|
||||
import PricingCardFive from '@/components/sections/pricing/PricingCardFive';
|
||||
import MetricCardEleven from '@/components/sections/metrics/MetricCardEleven';
|
||||
import TestimonialCardSix from '@/components/sections/testimonial/TestimonialCardSix';
|
||||
import ContactCenter from '@/components/sections/contact/ContactCenter';
|
||||
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
|
||||
import { Sparkles, Building2, Package, Leaf, Clock, DollarSign, CheckCircle, Home, Shield } from 'lucide-react';
|
||||
import FaqSplitText from '@/components/sections/faq/FaqSplitText';
|
||||
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
|
||||
import SocialProofOne from '@/components/sections/socialProof/SocialProofOne';
|
||||
import FooterMedia from '@/components/sections/footer/FooterMedia';
|
||||
import { Sparkles, Building2, Package, Leaf, Clock, DollarSign, CheckCircle, Home, Shield, Truck, Recycle, Users } from 'lucide-react';
|
||||
|
||||
export default function LandingPage() {
|
||||
return (
|
||||
@@ -104,36 +107,6 @@ export default function LandingPage() {
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="portfolio" data-section="portfolio">
|
||||
<ProductCardTwo
|
||||
tag="Before & After Gallery"
|
||||
title="See Our Work in Action"
|
||||
description="Real transformations from real customers. Watch cluttered spaces become clean, organized havens."
|
||||
textboxLayout="default"
|
||||
animationType="slide-up"
|
||||
useInvertedBackground={false}
|
||||
gridVariant="uniform-all-items-equal"
|
||||
products={[
|
||||
{
|
||||
id: "1", brand: "Residential", name: "Garage Transformation", price: "Same-Day Service", rating: 5,
|
||||
reviewCount: "Perfect", imageSrc: "http://img.b2bpic.net/free-photo/mechanics-servicing-bicycles_1170-2475.jpg", imageAlt: "Before: cluttered garage filled with junk"
|
||||
},
|
||||
{
|
||||
id: "2", brand: "Residential", name: "Garage - After", price: "Completed", rating: 5,
|
||||
reviewCount: "Perfect", imageSrc: "http://img.b2bpic.net/free-photo/indoor-carpark-atnight-wode-angle_1127-3163.jpg", imageAlt: "After: clean, organized, spacious garage"
|
||||
},
|
||||
{
|
||||
id: "3", brand: "Commercial", name: "Basement Clearout", price: "Same-Day Service", rating: 5,
|
||||
reviewCount: "Perfect", imageSrc: "http://img.b2bpic.net/free-photo/messy-abandoned-room-psychiatric-hospital_1150-18956.jpg", imageAlt: "Before: basement cluttered with storage items and junk"
|
||||
},
|
||||
{
|
||||
id: "4", brand: "Commercial", name: "Basement - After", price: "Completed", rating: 5,
|
||||
reviewCount: "Perfect", imageSrc: "http://img.b2bpic.net/free-photo/woman-buys-dishes-store_1157-36684.jpg", imageAlt: "After: empty basement ready for use"
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<MetricSplitMediaAbout
|
||||
tag="Why Choose JunkGone"
|
||||
@@ -151,8 +124,37 @@ export default function LandingPage() {
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="portfolio" data-section="portfolio">
|
||||
<FeatureCardNine
|
||||
tag="How We Work"
|
||||
title="Our Process - Simple & Efficient"
|
||||
description="Four easy steps to a junk-free space."
|
||||
textboxLayout="default"
|
||||
animationType="slide-up"
|
||||
useInvertedBackground={false}
|
||||
features={[
|
||||
{
|
||||
id: "1", title: "Schedule & Quote", description: "Book online or call. We provide instant pricing based on volume—no surprises, no hidden fees.", icon: Clock,
|
||||
reverse: false
|
||||
},
|
||||
{
|
||||
id: "2", title: "Professional Pickup", description: "Our trained crew arrives on time, handles your items safely, and loads everything quickly.", icon: Truck,
|
||||
reverse: true
|
||||
},
|
||||
{
|
||||
id: "3", title: "Responsible Disposal", description: "We recycle, donate, or dispose responsibly. Your junk is handled with care for the environment.", icon: Recycle,
|
||||
reverse: false
|
||||
},
|
||||
{
|
||||
id: "4", title: "Clean Finish", description: "We clean up after ourselves and leave your space spotless. Job done right, first time.", icon: CheckCircle,
|
||||
reverse: true
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="pricing" data-section="pricing">
|
||||
<PricingCardThree
|
||||
<PricingCardFive
|
||||
tag="Simple, Transparent Pricing"
|
||||
title="Choose Your Plan"
|
||||
description="We quote based on volume—never by the hour. Schedule online, get instant pricing, book same-day."
|
||||
@@ -192,6 +194,31 @@ export default function LandingPage() {
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="metrics" data-section="metrics">
|
||||
<MetricCardEleven
|
||||
tag="Success Stories"
|
||||
title="What Our Numbers Tell"
|
||||
description="Real results from real customers who trusted us with their junk removal."
|
||||
textboxLayout="default"
|
||||
animationType="slide-up"
|
||||
useInvertedBackground={false}
|
||||
metrics={[
|
||||
{
|
||||
id: "1", title: "2,000+ Jobs Completed", description: "From small rooms to entire estates", value: "100% On-Time", category: "Reliability", icon: CheckCircle
|
||||
},
|
||||
{
|
||||
id: "2", title: "98% Same-Day Service", description: "Fast scheduling in most areas", value: "Next Day", category: "Speed", icon: Truck
|
||||
},
|
||||
{
|
||||
id: "3", title: "65% Eco-Friendly Diversion", description: "Recycled or donated instead of landfill", value: "Responsible", category: "Sustainability", icon: Leaf
|
||||
},
|
||||
{
|
||||
id: "4", title: "4.9/5 Customer Rating", description: "Consistently excellent service", value: "Trusted", category: "Quality", icon: Users
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<TestimonialCardSix
|
||||
tag="Client Stories"
|
||||
@@ -223,22 +250,71 @@ export default function LandingPage() {
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<FaqSplitText
|
||||
sideTitle="Frequently Asked Questions"
|
||||
sideDescription="Everything you need to know about our junk removal service."
|
||||
textPosition="left"
|
||||
useInvertedBackground={false}
|
||||
faqsAnimation="slide-up"
|
||||
faqs={[
|
||||
{
|
||||
id: "1", title: "How quickly can you schedule removal?", content: "We offer same-day service in most areas! Call or book online to get an instant quote and schedule pickup as soon as tomorrow or today if you book early enough."
|
||||
},
|
||||
{
|
||||
id: "2", title: "What items do you remove?", content: "We remove almost everything—furniture, appliances, electronics, construction debris, yard waste, and more. Just let us know what you have, and we'll give you a quote."
|
||||
},
|
||||
{
|
||||
id: "3", title: "Do you provide free quotes?", content: "Yes! Quotes are always free. We assess the items, provide transparent pricing with no hidden fees, and you only pay what we quote."
|
||||
},
|
||||
{
|
||||
id: "4", title: "What happens to the junk?", content: "We prioritize recycling and donation. Items that can be reused go to local charities or resale centers. The rest is disposed of responsibly and environmentally friendly."
|
||||
},
|
||||
{
|
||||
id: "5", title: "Do I need to be home during pickup?", content: "Yes, we need someone home to show us what needs to be removed and ensure access to all areas. It typically takes 1-3 hours depending on the volume."
|
||||
},
|
||||
{
|
||||
id: "6", title: "How much does it cost?", content: "Pricing depends on volume. Small loads: $150–$300. Medium loads: $300–$600. Large loads: $600–$1200. Get an instant quote when you call or book online."
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactCenter
|
||||
<ContactSplitForm
|
||||
tag="Ready to Declutter?"
|
||||
title="Book Your Junk Removal Today"
|
||||
description="Get an instant quote and schedule your removal. Same-day service available in most areas."
|
||||
tagIcon={CheckCircle}
|
||||
background={{ variant: "plain" }}
|
||||
useInvertedBackground={false}
|
||||
inputPlaceholder="Enter your email for a quick quote"
|
||||
buttonText="Book Now"
|
||||
termsText="We respect your privacy. Unsubscribe anytime. By booking, you agree to our Terms and Service Policy."
|
||||
formFields={[
|
||||
{ name: "name", label: "Your Name", type: "text", placeholder: "John Doe", required: true },
|
||||
{ name: "email", label: "Email Address", type: "email", placeholder: "john@example.com", required: true },
|
||||
{ name: "phone", label: "Phone Number", type: "tel", placeholder: "(555) 123-4567", required: true },
|
||||
{ name: "description", label: "What needs to be removed?", type: "textarea", placeholder: "Describe your junk removal needs...", required: true }
|
||||
]}
|
||||
buttonText="Get Free Quote"
|
||||
successMessage="Thank you! We'll contact you soon with your free quote."
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="socialProof" data-section="socialProof">
|
||||
<SocialProofOne
|
||||
tag="Trusted Partners"
|
||||
title="Featured In & Trusted By"
|
||||
description="Recognized for excellence in junk removal and customer service."
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
names={[
|
||||
"Local Business Bureau", "Home Advisor", "Google Reviews", "Angi (formerly Angie's List)", "Better Business Bureau", "Yelp"
|
||||
]}
|
||||
speed={40}
|
||||
showCard={true}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterLogoEmphasis
|
||||
<FooterMedia
|
||||
logoText="JunkGone"
|
||||
columns={[
|
||||
{
|
||||
@@ -252,7 +328,7 @@ export default function LandingPage() {
|
||||
items: [
|
||||
{ label: "Testimonials", href: "testimonials" },
|
||||
{ label: "Book Now", href: "contact" },
|
||||
{ label: "Contact", href: "contact" }
|
||||
{ label: "FAQ", href: "faq" }
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user