Files
2c825dcd-bcfb-49ef-aaa3-b9c…/src/pages/HomePage.tsx
2026-06-13 16:47:19 +00:00

290 lines
9.9 KiB
TypeScript

import AboutText from '@/components/sections/about/AboutText';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
import FeaturesBento from '@/components/sections/features/FeaturesBento';
import HeroOverlay from '@/components/sections/hero/HeroOverlay';
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
import PricingLayeredCards from '@/components/sections/pricing/PricingLayeredCards';
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
import { Clock, Flame, Heart, Unlock, Zap } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HomePage() {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroOverlay
tag="Transform Your Life"
title="Built for Those Who Never Stop"
description="Unlock your potential with premium equipment, expert coaching, and a community that pushes you to your limits every single day."
primaryButton={{
text: "Get Started",
href: "#contact",
}}
secondaryButton={{
text: "Tour the Gym",
href: "#about",
}}
imageSrc="http://img.b2bpic.net/free-photo/many-black-dumbbells_1163-128.jpg?_wi=1"
/>
</SectionErrorBoundary>
</div>
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutText
title="At Iron & Grit, we believe greatness is earned, not given. Our facility is designed for athletes, beginners, and everyone in between who is ready to redefine their limits."
/>
</SectionErrorBoundary>
</div>
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesBento
tag="Why Us?"
title="Elite Facilities for Elite Results"
description="State-of-the-art training gear combined with a supportive community environment."
features={[
{
title: "24/7 Access",
description: "Workout whenever it fits your schedule.",
bentoComponent: "info-card-marquee",
infoCards: [
{
icon: Clock,
label: "Status",
value: "24/7 Open",
},
{
icon: Unlock,
label: "Access",
value: "Secure Key",
},
{
icon: Zap,
label: "State",
value: "Always Ready",
},
],
imageSrc: "http://img.b2bpic.net/free-photo/young-adult-doing-indoor-sport-gym_23-2149205541.jpg",
imageAlt: "happy gym member portrait athletic",
},
{
title: "Pro Coaching",
description: "Certified trainers dedicated to your goals.",
bentoComponent: "tilted-stack-cards",
stackCards: [
{
icon: Dumbbell,
title: "Strength",
subtitle: "Powerlifting",
detail: "Certified Experts",
},
{
icon: Flame,
title: "HIIT",
subtitle: "Conditioning",
detail: "Burn Fat Fast",
},
{
icon: Heart,
title: "Recovery",
subtitle: "Stretching",
detail: "Stay Injury-Free",
},
],
imageSrc: "http://img.b2bpic.net/free-photo/many-black-dumbbells_1163-128.jpg?_wi=2",
imageAlt: "happy gym member portrait athletic",
},
{
title: "Community Focus",
description: "Join a group that motivates each other.",
bentoComponent: "media-stack",
mediaItems: [
{
imageSrc: "http://img.b2bpic.net/free-photo/side-view-woman-dancing-studio_23-2150621031.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/man-weightlifter-doing-leg-presses-with-his-trainer-sports-couple-is-working-out-gym_613910-2375.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-handsome-sportsman-holds-hand-chin-dark-background_613910-19218.jpg",
},
],
imageSrc: "http://img.b2bpic.net/free-photo/healthy-fitness-concept-beautiful-african-american-girl-sport-clothes-holding-plastic-water_1258-106707.jpg?_wi=1",
imageAlt: "happy gym member portrait athletic",
},
]}
/>
</SectionErrorBoundary>
</div>
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsMediaCards
tag="Our Impact"
title="Real Results, Measurable Progress"
description="We measure success by the milestones reached and the lives transformed within these walls."
metrics={[
{
value: "1.2k+",
title: "Active Members",
description: "Growing community of athletes.",
imageSrc: "http://img.b2bpic.net/free-photo/healthy-fitness-concept-beautiful-african-american-girl-sport-clothes-holding-plastic-water_1258-106707.jpg?_wi=2",
},
{
value: "450+",
title: "Transformations",
description: "Lives changed through fitness.",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-fit-woman-stretching-indoors_23-2150255913.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeCards
tag="Success Stories"
title="Hear From Our Community"
description="Discover how our members have redefined their fitness journey."
testimonials={[
{
name: "Marcus R.",
role: "Powerlifter",
quote: "The best equipment I have ever used. Unmatched quality.",
imageSrc: "http://img.b2bpic.net/free-photo/brunette-woman-wearing-sportswear-smiling_23-2147654912.jpg",
},
{
name: "Sarah L.",
role: "HIIT Athlete",
quote: "The energy here is infectious! I never skip a workout.",
imageSrc: "http://img.b2bpic.net/free-photo/adult-training-body-building_23-2149660988.jpg",
},
{
name: "David W.",
role: "Beginner",
quote: "I felt welcomed from day one. Coaching is incredible.",
imageSrc: "http://img.b2bpic.net/free-photo/woman-training-gym_23-2148024299.jpg",
},
{
name: "Elena V.",
role: "Bodybuilder",
quote: "Everything I need to prep for competition is here.",
imageSrc: "http://img.b2bpic.net/free-photo/endurance-women-fitness-concept-goodlooking-young-healthy-sporty-female-athlete-finish-productive-training-take-breath-after-exercise-sit-with-legs-crossed-gym-floor-smiling-satisfied_197531-30358.jpg",
},
{
name: "Jake P.",
role: "Member",
quote: "No waiting for equipment, clean, and professional.",
imageSrc: "http://img.b2bpic.net/free-photo/young-fit-man-beach-listening-music_273609-15927.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<div id="pricing" data-section="pricing">
<SectionErrorBoundary name="pricing">
<PricingLayeredCards
tag="Simple Pricing"
title="Flexible Plans for Everyone"
description="No hidden fees, no long contracts. Just pure fitness."
plans={[
{
tag: "Starter",
price: "$39",
description: "Great for casual training.",
primaryButton: {
text: "Choose Basic",
href: "#contact",
},
features: [
"24/7 Gym Access",
"Access to Basic Classes",
"Free Orientation",
],
},
{
tag: "Pro",
price: "$69",
description: "Best for performance athletes.",
primaryButton: {
text: "Choose Pro",
href: "#contact",
},
features: [
"Everything in Starter",
"Access to HIIT Classes",
"1 Guest Pass per month",
],
},
{
tag: "Elite",
price: "$99",
description: "Full access, maximum benefits.",
primaryButton: {
text: "Choose Elite",
href: "#contact",
},
features: [
"Everything in Pro",
"Personalized Coaching",
"Unlimited Guest Passes",
],
},
]}
/>
</SectionErrorBoundary>
</div>
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTwoColumn
tag="Support"
title="Frequently Asked Questions"
description="Everything you need to know about our memberships."
items={[
{
question: "Are there contracts?",
answer: "No, we use a simple month-to-month membership system.",
},
{
question: "Can I bring a guest?",
answer: "Elite members get unlimited guests; Pro members get 1 monthly.",
},
{
question: "Is personal training included?",
answer: "Elite members receive monthly coaching sessions included.",
},
{
question: "Do you offer trials?",
answer: "Yes, grab a 3-day guest pass through our contact form!",
},
]}
/>
</SectionErrorBoundary>
</div>
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Get Started"
text="Your journey to a stronger self starts here. Join the community today."
primaryButton={{
text: "Join Iron & Grit",
href: "#",
}}
secondaryButton={{
text: "Contact Us",
href: "#",
}}
/>
</SectionErrorBoundary>
</div>
</>
);
}