Merge version_2 into main #1
51
src/app/courses/page.tsx
Normal file
51
src/app/courses/page.tsx
Normal file
@@ -0,0 +1,51 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import ReactLenis from "lenis/react";
|
||||
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
|
||||
import FooterBase from '@/components/sections/footer/FooterBase';
|
||||
import ContactCTA from '@/components/sections/contact/ContactCTA';
|
||||
import { LucideIcon } from "lucide-react";
|
||||
|
||||
export default function CoursesPage() {
|
||||
return (
|
||||
<ThemeProvider>
|
||||
<ReactLenis root>
|
||||
<NavbarLayoutFloatingInline
|
||||
navItems={[
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Courses", id: "/courses" },
|
||||
]}
|
||||
brandName="TrainFit"
|
||||
button={{ text: "Get Started", href: "#contact" }}
|
||||
/>
|
||||
<div className="py-20 px-6 max-w-7xl mx-auto">
|
||||
<h1 className="text-5xl font-bold mb-6">Our Courses</h1>
|
||||
<p className="text-xl text-gray-600 mb-12">Explore our professional training programs.</p>
|
||||
<div className="grid md:grid-cols-3 gap-8">
|
||||
{["Strength Foundations", "Advanced Cardio", "Yoga for Mobility", "Nutrition Basics", "HIIT Mastery", "Recovery Science"].map((title, i) => (
|
||||
<div key={i} className="p-6 rounded-2xl border border-gray-200 shadow-sm">
|
||||
<h3 className="text-xl font-semibold mb-2">{title}</h3>
|
||||
<p className="text-sm text-gray-500 mb-4">Master the fundamentals of your fitness journey.</p>
|
||||
<button className="px-4 py-2 bg-black text-white rounded-full">View Course</button>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
<ContactCTA
|
||||
tag="Get Started"
|
||||
title="Start Your Training"
|
||||
description="Ready to level up your fitness?"
|
||||
buttons={[{text: "Get Started", href: "#"}]}
|
||||
/>
|
||||
<FooterBase
|
||||
columns={[
|
||||
{ title: "Product", items: [{ label: "Courses", href: "/courses" }] },
|
||||
{ title: "Company", items: [{ label: "Contact", href: "#contact" }] },
|
||||
]}
|
||||
logoText="TrainFit"
|
||||
/>
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
31
src/app/dashboard/page.tsx
Normal file
31
src/app/dashboard/page.tsx
Normal file
@@ -0,0 +1,31 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import ReactLenis from "lenis/react";
|
||||
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
|
||||
import MetricCardOne from '@/components/sections/metrics/MetricCardOne';
|
||||
import { TrendingUp, Activity, Target } from "lucide-react";
|
||||
|
||||
export default function DashboardPage() {
|
||||
return (
|
||||
<ThemeProvider>
|
||||
<ReactLenis root>
|
||||
<NavbarLayoutFloatingInline navItems={[{ name: "Home", id: "/" }, { name: "Dashboard", id: "/dashboard" }, { name: "Pricing", id: "/pricing" }]} brandName="TrainFit" />
|
||||
<div className="pt-24">
|
||||
<MetricCardOne
|
||||
title="Your Progress"
|
||||
description="Track your active training sessions and growth."
|
||||
gridVariant="uniform-all-items-equal"
|
||||
animationType="slide-up"
|
||||
textboxLayout="split"
|
||||
metrics={[
|
||||
{ id: "1", value: "42", title: "Active Days", description: "Consistency streak", icon: Activity },
|
||||
{ id: "2", value: "18", title: "Workouts", description: "Completed this month", icon: Target },
|
||||
{ id: "3", value: "+12%", title: "Improvement", description: "Volume compared to last month", icon: TrendingUp }
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
302
src/app/page.tsx
302
src/app/page.tsx
@@ -12,7 +12,7 @@ import MetricSplitMediaAbout from '@/components/sections/about/MetricSplitMediaA
|
||||
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
|
||||
import SocialProofOne from '@/components/sections/socialProof/SocialProofOne';
|
||||
import TestimonialCardTen from '@/components/sections/testimonial/TestimonialCardTen';
|
||||
import { Clock, Star, Zap } from "lucide-react";
|
||||
import { Clock, Star, Zap, MessageSquare } from "lucide-react";
|
||||
|
||||
export default function LandingPage() {
|
||||
return (
|
||||
@@ -33,27 +33,17 @@ export default function LandingPage() {
|
||||
<NavbarLayoutFloatingInline
|
||||
navItems={[
|
||||
{
|
||||
name: "Features",
|
||||
id: "#features",
|
||||
},
|
||||
name: "Features", id: "#features"},
|
||||
{
|
||||
name: "Metrics",
|
||||
id: "#metrics",
|
||||
},
|
||||
name: "Metrics", id: "#metrics"},
|
||||
{
|
||||
name: "Testimonials",
|
||||
id: "#testimonials",
|
||||
},
|
||||
name: "Testimonials", id: "#testimonials"},
|
||||
{
|
||||
name: "FAQ",
|
||||
id: "#faq",
|
||||
},
|
||||
name: "FAQ", id: "#faq"},
|
||||
]}
|
||||
brandName="TrainFit"
|
||||
button={{
|
||||
text: "Get Started",
|
||||
href: "#contact",
|
||||
}}
|
||||
text: "Get Started", href: "#contact"}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -61,99 +51,51 @@ export default function LandingPage() {
|
||||
<HeroSplitTestimonial
|
||||
useInvertedBackground={true}
|
||||
background={{
|
||||
variant: "gradient-bars",
|
||||
}}
|
||||
variant: "gradient-bars"}}
|
||||
title="Master Your Training"
|
||||
description="Unlock professional-grade training plans, real-time analytics, and a community dedicated to results. Train smarter, not harder."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Alex R.",
|
||||
handle: "@alexfit",
|
||||
testimonial: "The best training app I've ever used. Precision tracking!",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/handsome-black-man-is-engaged-gym_1157-29637.jpg",
|
||||
},
|
||||
name: "Alex R.", handle: "@alexfit", testimonial: "The best training app I've ever used. Precision tracking!", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/handsome-black-man-is-engaged-gym_1157-29637.jpg"},
|
||||
{
|
||||
name: "Sarah J.",
|
||||
handle: "@sfit",
|
||||
testimonial: "Finally, a routine that works for my specific goals. Love it.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-young-female-excited-pink_179666-2069.jpg",
|
||||
},
|
||||
name: "Sarah J.", handle: "@sfit", testimonial: "Finally, a routine that works for my specific goals. Love it.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-young-female-excited-pink_179666-2069.jpg"},
|
||||
{
|
||||
name: "Mark D.",
|
||||
handle: "@marktrains",
|
||||
testimonial: "Advanced metrics really pushed my limits. Worth every penny.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-women-gym-training_23-2148419894.jpg",
|
||||
},
|
||||
name: "Mark D.", handle: "@marktrains", testimonial: "Advanced metrics really pushed my limits. Worth every penny.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-women-gym-training_23-2148419894.jpg"},
|
||||
{
|
||||
name: "Elena V.",
|
||||
handle: "@elenaactive",
|
||||
testimonial: "Community challenges are exactly what I needed.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-woman-outdoors-portrait_23-2150828878.jpg",
|
||||
},
|
||||
name: "Elena V.", handle: "@elenaactive", testimonial: "Community challenges are exactly what I needed.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-woman-outdoors-portrait_23-2150828878.jpg"},
|
||||
{
|
||||
name: "John K.",
|
||||
handle: "@jkfitness",
|
||||
testimonial: "Professional UI and even better workout depth.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/redhead-man-with-long-beard-wearing-basketball-uniform-angry-mad-raising-fist-frustrated-furious-while-shouting-with-anger-rage-aggressive-concept_839833-6491.jpg",
|
||||
},
|
||||
name: "John K.", handle: "@jkfitness", testimonial: "Professional UI and even better workout depth.", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/redhead-man-with-long-beard-wearing-basketball-uniform-angry-mad-raising-fist-frustrated-furious-while-shouting-with-anger-rage-aggressive-concept_839833-6491.jpg"},
|
||||
]}
|
||||
buttons={[
|
||||
{
|
||||
text: "Start Training",
|
||||
href: "#contact",
|
||||
},
|
||||
text: "Start Training", href: "#contact"},
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/panoramic-view-determined-physically-active-young-man-stands-topless-highway-raises-leg-road-sign-does-exercises-morning-admires-nature-likes-sport-feels-exhausted-needs-energy_273609-29337.jpg"
|
||||
mediaAnimation="slide-up"
|
||||
avatars={[
|
||||
{
|
||||
src: "http://img.b2bpic.net/free-photo/confident-sportsman-with-bushy-hairstyle-doing-exercises-pier-early-morning-placing-his-arms-platform-while-listening-music_176420-19887.jpg",
|
||||
alt: "athlete one",
|
||||
},
|
||||
src: "http://img.b2bpic.net/free-photo/confident-sportsman-with-bushy-hairstyle-doing-exercises-pier-early-morning-placing-his-arms-platform-while-listening-music_176420-19887.jpg", alt: "athlete one"},
|
||||
{
|
||||
src: "http://img.b2bpic.net/free-photo/exhausted-black-male-runner-rests-after-active-run-wears-sneakers-poses-thinks-about-future-sport-competitions-has-hard-sport-workout-jogging-motivation_273609-29338.jpg",
|
||||
alt: "athlete two",
|
||||
},
|
||||
src: "http://img.b2bpic.net/free-photo/exhausted-black-male-runner-rests-after-active-run-wears-sneakers-poses-thinks-about-future-sport-competitions-has-hard-sport-workout-jogging-motivation_273609-29338.jpg", alt: "athlete two"},
|
||||
{
|
||||
src: "http://img.b2bpic.net/free-photo/serious-brunet-curly-darkskinned-man-black-sport-longsleeved-shirt-looks-into-camera-runs-outside_197531-28741.jpg",
|
||||
alt: "athlete three",
|
||||
},
|
||||
src: "http://img.b2bpic.net/free-photo/serious-brunet-curly-darkskinned-man-black-sport-longsleeved-shirt-looks-into-camera-runs-outside_197531-28741.jpg", alt: "athlete three"},
|
||||
{
|
||||
src: "http://img.b2bpic.net/free-photo/tired-sporty-man-with-dark-skin-sprints-fast-mountain-road-focused-down-catches-breath-holds-fresh-water-bottle-models-against-mountain-view-free-space-your-advertising-content_273609-29330.jpg",
|
||||
alt: "athlete four",
|
||||
},
|
||||
src: "http://img.b2bpic.net/free-photo/tired-sporty-man-with-dark-skin-sprints-fast-mountain-road-focused-down-catches-breath-holds-fresh-water-bottle-models-against-mountain-view-free-space-your-advertising-content_273609-29330.jpg", alt: "athlete four"},
|
||||
{
|
||||
src: "http://img.b2bpic.net/free-photo/cropped-shot-happy-young-afro-american-bodybuilder-looking-camera-grinning-confidently-keeping-hands-his-waist-posing-against-white-studio-wall-background-with-copy-space-your-text_343059-465.jpg",
|
||||
alt: "athlete five",
|
||||
},
|
||||
src: "http://img.b2bpic.net/free-photo/cropped-shot-happy-young-afro-american-bodybuilder-looking-camera-grinning-confidently-keeping-hands-his-waist-posing-against-white-studio-wall-background-with-copy-space-your-text_343059-465.jpg", alt: "athlete five"},
|
||||
]}
|
||||
avatarText="Join 50k+ athletes"
|
||||
marqueeItems={[
|
||||
{
|
||||
type: "text",
|
||||
text: "Strength",
|
||||
},
|
||||
{
|
||||
type: "text",
|
||||
text: "Cardio",
|
||||
},
|
||||
{
|
||||
type: "text",
|
||||
text: "Yoga",
|
||||
},
|
||||
{
|
||||
type: "text",
|
||||
text: "Recovery",
|
||||
},
|
||||
{
|
||||
type: "text",
|
||||
text: "Nutrition",
|
||||
},
|
||||
{ type: "text", text: "Strength" },
|
||||
{ type: "text", text: "Cardio" },
|
||||
{ type: "text", text: "Yoga" },
|
||||
{ type: "text", text: "Recovery" },
|
||||
{ type: "text", text: "Nutrition" },
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
@@ -164,18 +106,9 @@ export default function LandingPage() {
|
||||
title="Data-Driven Fitness"
|
||||
description="We combine human expertise with advanced algorithms to design training programs that evolve with your performance."
|
||||
metrics={[
|
||||
{
|
||||
value: "50k+",
|
||||
title: "Active Athletes",
|
||||
},
|
||||
{
|
||||
value: "1M+",
|
||||
title: "Workouts Completed",
|
||||
},
|
||||
{
|
||||
value: "98%",
|
||||
title: "User Satisfaction",
|
||||
},
|
||||
{ value: "50k+", title: "Active Athletes" },
|
||||
{ value: "1M+", title: "Workouts Completed" },
|
||||
{ value: "98%", title: "User Satisfaction" },
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/image-beautiful-woman-stylish-sportswear-looking-her-smartphone-sitting-yoga-mat-home_1258-182393.jpg"
|
||||
mediaAnimation="blur-reveal"
|
||||
@@ -189,27 +122,9 @@ export default function LandingPage() {
|
||||
textboxLayout="split"
|
||||
useInvertedBackground={true}
|
||||
features={[
|
||||
{
|
||||
id: "f1",
|
||||
title: "Custom Plans",
|
||||
subtitle: "Built for you",
|
||||
category: "Training",
|
||||
value: "Tailored",
|
||||
},
|
||||
{
|
||||
id: "f2",
|
||||
title: "Live Metrics",
|
||||
subtitle: "Track real-time",
|
||||
category: "Analytics",
|
||||
value: "Precise",
|
||||
},
|
||||
{
|
||||
id: "f3",
|
||||
title: "Global Community",
|
||||
subtitle: "Stay motivated",
|
||||
category: "Social",
|
||||
value: "Active",
|
||||
},
|
||||
{ id: "f1", title: "Custom Plans", subtitle: "Built for you", category: "Training", value: "Tailored" },
|
||||
{ id: "f2", title: "Live Metrics", subtitle: "Track real-time", category: "Analytics", value: "Precise" },
|
||||
{ id: "f3", title: "Global Community", subtitle: "Stay motivated", category: "Social", value: "Active" },
|
||||
]}
|
||||
title="Core Capabilities"
|
||||
description="Powerful tools to help you crush your fitness goals."
|
||||
@@ -223,27 +138,9 @@ export default function LandingPage() {
|
||||
gridVariant="uniform-all-items-equal"
|
||||
useInvertedBackground={false}
|
||||
metrics={[
|
||||
{
|
||||
id: "m1",
|
||||
value: "240",
|
||||
title: "Workouts",
|
||||
description: "This year alone",
|
||||
icon: Zap,
|
||||
},
|
||||
{
|
||||
id: "m2",
|
||||
value: "120h",
|
||||
title: "Time Spent",
|
||||
description: "Focused training",
|
||||
icon: Clock,
|
||||
},
|
||||
{
|
||||
id: "m3",
|
||||
value: "85kg",
|
||||
title: "Avg Load",
|
||||
description: "Average intensity",
|
||||
icon: Star,
|
||||
},
|
||||
{ id: "m1", value: "240", title: "Workouts", description: "This year alone", icon: Zap },
|
||||
{ id: "m2", value: "120h", title: "Time Spent", description: "Focused training", icon: Clock },
|
||||
{ id: "m3", value: "85kg", title: "Avg Load", description: "Average intensity", icon: Star },
|
||||
]}
|
||||
title="Performance Tracking"
|
||||
description="View all your stats in one place."
|
||||
@@ -255,46 +152,11 @@ export default function LandingPage() {
|
||||
textboxLayout="split"
|
||||
useInvertedBackground={true}
|
||||
testimonials={[
|
||||
{
|
||||
id: "t1",
|
||||
title: "Game Changer",
|
||||
quote: "I have never tracked my progress this effectively before.",
|
||||
name: "Sarah P.",
|
||||
role: "Athlete",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-handsome-man-training-gym-bodybuilding_23-2149552356.jpg",
|
||||
},
|
||||
{
|
||||
id: "t2",
|
||||
title: "Incredible Data",
|
||||
quote: "The analytics gave me the clarity I needed for growth.",
|
||||
name: "John R.",
|
||||
role: "Pro",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-fit-man-gym_23-2150289978.jpg",
|
||||
},
|
||||
{
|
||||
id: "t3",
|
||||
title: "Motivating",
|
||||
quote: "The community kept me consistent for months.",
|
||||
name: "Emily S.",
|
||||
role: "User",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-women-gym-taking-selfies_23-2148419851.jpg",
|
||||
},
|
||||
{
|
||||
id: "t4",
|
||||
title: "Professional",
|
||||
quote: "Training felt more structured and goals achieved faster.",
|
||||
name: "David L.",
|
||||
role: "Gym Goer",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-woman-fitness-instructor-doing-workout-home-practice-yoga-wireless-headphones-rubber_1258-218294.jpg",
|
||||
},
|
||||
{
|
||||
id: "t5",
|
||||
title: "Must Have",
|
||||
quote: "Best investment I made for my health.",
|
||||
name: "Kevin M.",
|
||||
role: "Amateur",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/male-swimmer-with-towel-locker-room_23-2148357073.jpg",
|
||||
},
|
||||
{ id: "t1", title: "Game Changer", quote: "I have never tracked my progress this effectively before.", name: "Sarah P.", role: "Athlete", imageSrc: "http://img.b2bpic.net/free-photo/young-handsome-man-training-gym-bodybuilding_23-2149552356.jpg" },
|
||||
{ id: "t2", title: "Incredible Data", quote: "The analytics gave me the clarity I needed for growth.", name: "John R.", role: "Pro", imageSrc: "http://img.b2bpic.net/free-photo/front-view-fit-man-gym_23-2150289978.jpg" },
|
||||
{ id: "t3", title: "Motivating", quote: "The community kept me consistent for months.", name: "Emily S.", role: "User", imageSrc: "http://img.b2bpic.net/free-photo/young-women-gym-taking-selfies_23-2148419851.jpg" },
|
||||
{ id: "t4", title: "Professional", quote: "Training felt more structured and goals achieved faster.", name: "David L.", role: "Gym Goer", imageSrc: "http://img.b2bpic.net/free-photo/young-woman-fitness-instructor-doing-workout-home-practice-yoga-wireless-headphones-rubber_1258-218294.jpg" },
|
||||
{ id: "t5", title: "Must Have", quote: "Best investment I made for my health.", name: "Kevin M.", role: "Amateur", imageSrc: "http://img.b2bpic.net/free-photo/male-swimmer-with-towel-locker-room_23-2148357073.jpg" },
|
||||
]}
|
||||
title="User Stories"
|
||||
description="Hear from the community."
|
||||
@@ -305,15 +167,7 @@ export default function LandingPage() {
|
||||
<SocialProofOne
|
||||
textboxLayout="split"
|
||||
useInvertedBackground={false}
|
||||
names={[
|
||||
"FitnessPro",
|
||||
"GymNation",
|
||||
"HealthCo",
|
||||
"ActiveElite",
|
||||
"PowerUp",
|
||||
"StrongLife",
|
||||
"VitalTech",
|
||||
]}
|
||||
names={["FitnessPro", "GymNation", "HealthCo", "ActiveElite", "PowerUp", "StrongLife", "VitalTech"]}
|
||||
title="Trusted By Professionals"
|
||||
description="Leading gyms and health tech companies rely on us."
|
||||
/>
|
||||
@@ -324,21 +178,9 @@ export default function LandingPage() {
|
||||
textboxLayout="split"
|
||||
useInvertedBackground={true}
|
||||
faqs={[
|
||||
{
|
||||
id: "q1",
|
||||
title: "How do I start?",
|
||||
content: "Just sign up and follow our onboarding wizard.",
|
||||
},
|
||||
{
|
||||
id: "q2",
|
||||
title: "Is it paid?",
|
||||
content: "We offer a free tier and a pro tier.",
|
||||
},
|
||||
{
|
||||
id: "q3",
|
||||
title: "Can I sync apps?",
|
||||
content: "Yes, we integrate with most health wearables.",
|
||||
},
|
||||
{ id: "q1", title: "How do I start?", content: "Just sign up and follow our onboarding wizard." },
|
||||
{ id: "q2", title: "Is it paid?", content: "We offer a free tier and a pro tier." },
|
||||
{ id: "q3", title: "Can I sync apps?", content: "Yes, we integrate with most health wearables." },
|
||||
]}
|
||||
title="Common Questions"
|
||||
description="Find quick answers."
|
||||
@@ -351,17 +193,13 @@ export default function LandingPage() {
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactCTA
|
||||
useInvertedBackground={false}
|
||||
background={{
|
||||
variant: "plain",
|
||||
}}
|
||||
background={{ variant: "plain" }}
|
||||
tag="Get Started"
|
||||
title="Start Your Fitness Journey"
|
||||
description="Join thousands of athletes training smarter. Get started for free today."
|
||||
description="Join thousands of athletes training smarter. Get started for free today. Our AI Chatbot is here to assist with any questions!"
|
||||
buttons={[
|
||||
{
|
||||
text: "Contact Support",
|
||||
href: "#",
|
||||
},
|
||||
{ text: "Contact Support", href: "#" },
|
||||
{ text: "Ask AI Chatbot", onClick: () => console.log("Open Chatbot") },
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
@@ -369,37 +207,25 @@ export default function LandingPage() {
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterBase
|
||||
columns={[
|
||||
{
|
||||
title: "Product",
|
||||
items: [
|
||||
{
|
||||
label: "Features",
|
||||
href: "#features",
|
||||
},
|
||||
{
|
||||
label: "Metrics",
|
||||
href: "#metrics",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Company",
|
||||
items: [
|
||||
{
|
||||
label: "About",
|
||||
href: "#",
|
||||
},
|
||||
{
|
||||
label: "Contact",
|
||||
href: "#contact",
|
||||
},
|
||||
],
|
||||
},
|
||||
{ title: "Product", items: [{ label: "Features", href: "#features" }, { label: "Metrics", href: "#metrics" }] },
|
||||
{ title: "Company", items: [{ label: "About", href: "#" }, { label: "Contact", href: "#contact" }] },
|
||||
]}
|
||||
logoText="TrainFit"
|
||||
copyrightText="© 2025 TrainFit. All rights reserved."
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Global AI Chatbot Integration */}
|
||||
<div className="fixed bottom-6 right-6 z-50">
|
||||
<button
|
||||
className="p-4 bg-primary text-white rounded-full shadow-lg hover:scale-105 transition-all flex items-center justify-center"
|
||||
onClick={() => console.log("Opening AI Chatbot")}
|
||||
aria-label="Open AI Chatbot"
|
||||
>
|
||||
<MessageSquare size={24} />
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
|
||||
28
src/app/pricing/page.tsx
Normal file
28
src/app/pricing/page.tsx
Normal file
@@ -0,0 +1,28 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import ReactLenis from "lenis/react";
|
||||
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
|
||||
import PricingCardFive from '@/components/sections/pricing/PricingCardFive';
|
||||
|
||||
export default function PricingPage() {
|
||||
return (
|
||||
<ThemeProvider>
|
||||
<ReactLenis root>
|
||||
<NavbarLayoutFloatingInline navItems={[{ name: "Home", id: "/" }, { name: "Dashboard", id: "/dashboard" }, { name: "Pricing", id: "/pricing" }]} brandName="TrainFit" />
|
||||
<div className="pt-24">
|
||||
<PricingCardFive
|
||||
title="Subscription Tiers"
|
||||
description="Choose the plan that suits your goals."
|
||||
textboxLayout="split"
|
||||
animationType="slide-up"
|
||||
plans={[
|
||||
{ id: "basic", tag: "Free", price: "$0", period: "forever", description: "Essentials for beginners.", button: { text: "Join Free" }, featuresTitle: "Includes", features: ["Basic Tracking", "Community Access"] },
|
||||
{ id: "pro", tag: "Pro", price: "$19", period: "mo", description: "Advanced for athletes.", button: { text: "Upgrade Now" }, featuresTitle: "Includes", features: ["Everything in Basic", "Advanced Analytics", "Custom Plans"] }
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user