290 lines
9.9 KiB
TypeScript
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>
|
|
</>
|
|
);
|
|
}
|