Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1a2e890e8e | |||
| 40f7e82d4e | |||
| ae87b05607 | |||
| b1940907fd | |||
| a495999be7 | |||
| be6d1517ff | |||
| d8c463c271 | |||
| 420e9610f7 | |||
| 23b7192dd3 | |||
| e06891ea9e |
64
src/app/exercises/page.tsx
Normal file
64
src/app/exercises/page.tsx
Normal file
@@ -0,0 +1,64 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import ReactLenis from "lenis/react";
|
||||
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
|
||||
import FeatureCardMedia from '@/components/sections/feature/FeatureCardMedia';
|
||||
import FooterBase from '@/components/sections/footer/FooterBase';
|
||||
|
||||
export default function ExercisesPage() {
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="text-stagger"
|
||||
defaultTextAnimation="entrance-slide"
|
||||
borderRadius="rounded"
|
||||
contentWidth="medium"
|
||||
sizing="medium"
|
||||
background="circleGradient"
|
||||
cardStyle="glass-elevated"
|
||||
primaryButtonStyle="gradient"
|
||||
secondaryButtonStyle="glass"
|
||||
headingFontWeight="normal"
|
||||
>
|
||||
<ReactLenis root>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarLayoutFloatingOverlay
|
||||
navItems={[
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Log Workout", id: "/workout-log" },
|
||||
{ name: "History", id: "/workout-history" },
|
||||
{ name: "Exercises", id: "/exercises" }
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
<div className="pt-32 pb-20">
|
||||
<FeatureCardMedia
|
||||
animationType="blur-reveal"
|
||||
title="Exercise Library"
|
||||
description="Master your form with our curated collection of effective exercises."
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
features={[
|
||||
{
|
||||
id: "e1", title: "Squats", tag: "Legs & Glutes", description: "Focus: Quadriceps, Hamstrings, Glutes. Keep your back straight, chest up, and lower your hips until thighs are parallel to the floor.", videoSrc: "https://www.w3schools.com/howto/movie.mp4?_wi=1"
|
||||
},
|
||||
{
|
||||
id: "e2", title: "Push-ups", tag: "Chest & Shoulders", description: "Focus: Pectorals, Deltoids, Triceps. Maintain a straight plank position and lower your body until your chest nearly touches the floor.", videoSrc: "https://www.w3schools.com/howto/movie.mp4?_wi=2"
|
||||
},
|
||||
{
|
||||
id: "e3", title: "Lunges", tag: "Legs & Stability", description: "Focus: Glutes, Quads. Step forward and lower your hips until both knees are bent at 90-degree angles.", videoSrc: "https://www.w3schools.com/howto/movie.mp4?_wi=3"
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterBase
|
||||
columns={[
|
||||
{ title: "Vitality", items: [{ label: "Home", href: "/" }] }
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
185
src/app/page.tsx
185
src/app/page.tsx
@@ -30,21 +30,15 @@ export default function LandingPage() {
|
||||
<NavbarLayoutFloatingOverlay
|
||||
navItems={[
|
||||
{
|
||||
name: "About",
|
||||
id: "about",
|
||||
},
|
||||
name: "About", id: "about"},
|
||||
{
|
||||
name: "Services",
|
||||
id: "services",
|
||||
},
|
||||
name: "Services", id: "services"},
|
||||
{
|
||||
name: "Testimonials",
|
||||
id: "testimonials",
|
||||
},
|
||||
name: "Exercises", id: "/exercises"},
|
||||
{
|
||||
name: "Contact",
|
||||
id: "contact",
|
||||
},
|
||||
name: "Testimonials", id: "testimonials"},
|
||||
{
|
||||
name: "Contact", id: "contact"},
|
||||
]}
|
||||
brandName="Vitality"
|
||||
/>
|
||||
@@ -53,47 +47,26 @@ export default function LandingPage() {
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroBillboardRotatedCarousel
|
||||
background={{
|
||||
variant: "rotated-rays-static",
|
||||
}}
|
||||
variant: "rotated-rays-static"}}
|
||||
title="Redefining Your Wellness Experience"
|
||||
description="Experience premium, personalized healthcare designed with your comfort and vitality in mind. Our clinic blends advanced science with serene luxury."
|
||||
buttons={[
|
||||
{
|
||||
text: "Book Consultation",
|
||||
href: "#contact",
|
||||
},
|
||||
text: "Book Consultation", href: "#contact"},
|
||||
]}
|
||||
carouselItems={[
|
||||
{
|
||||
id: "1",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/side-view-woman-looking-out-window_23-2149622868.jpg",
|
||||
imageAlt: "Luxurious healthcare clinic entrance",
|
||||
},
|
||||
id: "1", imageSrc: "http://img.b2bpic.net/free-photo/side-view-woman-looking-out-window_23-2149622868.jpg", imageAlt: "Luxurious healthcare clinic entrance"},
|
||||
{
|
||||
id: "2",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-relaxing-spa_23-2148000456.jpg",
|
||||
imageAlt: "Calm medical environment",
|
||||
},
|
||||
id: "2", imageSrc: "http://img.b2bpic.net/free-photo/woman-relaxing-spa_23-2148000456.jpg", imageAlt: "Calm medical environment"},
|
||||
{
|
||||
id: "3",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/family-doctor-doctor-s-office_23-2148168485.jpg",
|
||||
imageAlt: "Professional medical consultation",
|
||||
},
|
||||
id: "3", imageSrc: "http://img.b2bpic.net/free-photo/family-doctor-doctor-s-office_23-2148168485.jpg", imageAlt: "Professional medical consultation"},
|
||||
{
|
||||
id: "4",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/old-specialist-meeting-with-woman-patient-discuss-results-cabinet_482257-126979.jpg",
|
||||
imageAlt: "State of the art medical facilities",
|
||||
},
|
||||
id: "4", imageSrc: "http://img.b2bpic.net/free-photo/old-specialist-meeting-with-woman-patient-discuss-results-cabinet_482257-126979.jpg", imageAlt: "State of the art medical facilities"},
|
||||
{
|
||||
id: "5",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/nurse-guides-patient-medical-checkup_482257-108947.jpg",
|
||||
imageAlt: "Healthcare expert professional",
|
||||
},
|
||||
id: "5", imageSrc: "http://img.b2bpic.net/free-photo/nurse-guides-patient-medical-checkup_482257-108947.jpg", imageAlt: "Healthcare expert professional"},
|
||||
{
|
||||
id: "6",
|
||||
imageSrc: "http://img.b2bpic.net/free-psd/entrance-emergency-room-hospital-generative-ai_587448-2179.jpg",
|
||||
imageAlt: "Modern wellness clinic lobby",
|
||||
},
|
||||
id: "6", imageSrc: "http://img.b2bpic.net/free-psd/entrance-emergency-room-hospital-generative-ai_587448-2179.jpg", imageAlt: "Modern wellness clinic lobby"},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
@@ -105,19 +78,13 @@ export default function LandingPage() {
|
||||
metrics={[
|
||||
{
|
||||
icon: Award,
|
||||
label: "Years Experience",
|
||||
value: "15+",
|
||||
},
|
||||
label: "Years Experience", value: "15+"},
|
||||
{
|
||||
icon: Users,
|
||||
label: "Satisfied Patients",
|
||||
value: "10k+",
|
||||
},
|
||||
label: "Satisfied Patients", value: "10k+"},
|
||||
{
|
||||
icon: CheckCircle,
|
||||
label: "Procedures Completed",
|
||||
value: "25k+",
|
||||
},
|
||||
label: "Procedures Completed", value: "25k+"},
|
||||
]}
|
||||
metricsAnimation="blur-reveal"
|
||||
/>
|
||||
@@ -130,32 +97,17 @@ export default function LandingPage() {
|
||||
useInvertedBackground={false}
|
||||
features={[
|
||||
{
|
||||
id: "s1",
|
||||
title: "Precision Diagnostics",
|
||||
tags: [
|
||||
"Advanced Tech",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/futuristic-kitchen-interior-design_23-2151821256.jpg",
|
||||
imageAlt: "Medical tech",
|
||||
},
|
||||
id: "s1", title: "Precision Diagnostics", tags: [
|
||||
"Advanced Tech"],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/futuristic-kitchen-interior-design_23-2151821256.jpg", imageAlt: "Medical tech"},
|
||||
{
|
||||
id: "s2",
|
||||
title: "Holistic Therapy",
|
||||
tags: [
|
||||
"Wellness",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/labor-union-members-working-together_23-2150995049.jpg",
|
||||
imageAlt: "Holistic healing",
|
||||
},
|
||||
id: "s2", title: "Holistic Therapy", tags: [
|
||||
"Wellness"],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/labor-union-members-working-together_23-2150995049.jpg", imageAlt: "Holistic healing"},
|
||||
{
|
||||
id: "s3",
|
||||
title: "Preventative Care",
|
||||
tags: [
|
||||
"Health Check",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-stylish-white-office-successful-doctor_8353-9587.jpg",
|
||||
imageAlt: "Medical checkup",
|
||||
},
|
||||
id: "s3", title: "Preventative Care", tags: [
|
||||
"Health Check"],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-stylish-white-office-successful-doctor_8353-9587.jpg", imageAlt: "Medical checkup"},
|
||||
]}
|
||||
title="Comprehensive Wellness Care"
|
||||
description="A tailored approach to your health, offering a wide range of specialized services in a premium setting."
|
||||
@@ -170,45 +122,20 @@ export default function LandingPage() {
|
||||
useInvertedBackground={false}
|
||||
testimonials={[
|
||||
{
|
||||
id: "t1",
|
||||
name: "Alice M.",
|
||||
role: "Executive",
|
||||
company: "Global Corp",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-young-businesswoman-talking-mobile-phone_1262-16443.jpg?_wi=1",
|
||||
},
|
||||
id: "t1", name: "Alice M.", role: "Executive", company: "Global Corp", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-young-businesswoman-talking-mobile-phone_1262-16443.jpg?_wi=1"},
|
||||
{
|
||||
id: "t2",
|
||||
name: "David R.",
|
||||
role: "Architect",
|
||||
company: "Studio X",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/worker-with-big-smile-crossed-arms_1139-248.jpg",
|
||||
},
|
||||
id: "t2", name: "David R.", role: "Architect", company: "Studio X", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/worker-with-big-smile-crossed-arms_1139-248.jpg"},
|
||||
{
|
||||
id: "t3",
|
||||
name: "Sarah K.",
|
||||
role: "Teacher",
|
||||
company: "EduGroup",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-with-water-bottle-mat_23-2148247208.jpg",
|
||||
},
|
||||
id: "t3", name: "Sarah K.", role: "Teacher", company: "EduGroup", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-with-water-bottle-mat_23-2148247208.jpg"},
|
||||
{
|
||||
id: "t4",
|
||||
name: "Mark L.",
|
||||
role: "Entrepreneur",
|
||||
company: "StartUp Labs",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/patient-consulting-doctor_1170-2096.jpg",
|
||||
},
|
||||
id: "t4", name: "Mark L.", role: "Entrepreneur", company: "StartUp Labs", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/patient-consulting-doctor_1170-2096.jpg"},
|
||||
{
|
||||
id: "t5",
|
||||
name: "Elena V.",
|
||||
role: "Consultant",
|
||||
company: "Strategy Firm",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-young-businesswoman-talking-mobile-phone_1262-16443.jpg?_wi=2",
|
||||
},
|
||||
id: "t5", name: "Elena V.", role: "Consultant", company: "Strategy Firm", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-young-businesswoman-talking-mobile-phone_1262-16443.jpg?_wi=2"},
|
||||
]}
|
||||
title="What Our Patients Say"
|
||||
description="Excellence in care, as shared by those who trust us with their health journey."
|
||||
@@ -222,22 +149,14 @@ export default function LandingPage() {
|
||||
description="Ready to experience premium care? Reach out to our team to book your initial consultation."
|
||||
inputs={[
|
||||
{
|
||||
name: "name",
|
||||
type: "text",
|
||||
placeholder: "Your Name",
|
||||
required: true,
|
||||
name: "name", type: "text", placeholder: "Your Name", required: true,
|
||||
},
|
||||
{
|
||||
name: "email",
|
||||
type: "email",
|
||||
placeholder: "Your Email",
|
||||
required: true,
|
||||
name: "email", type: "email", placeholder: "Your Email", required: true,
|
||||
},
|
||||
]}
|
||||
textarea={{
|
||||
name: "message",
|
||||
placeholder: "How can we help?",
|
||||
rows: 4,
|
||||
name: "message", placeholder: "How can we help?", rows: 4,
|
||||
required: true,
|
||||
}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/general-practitioner-consulting-old-man-facility-office-taking-notes-give-prescription-medicine-treatment-medic-doing-checkup-examination-appointment-with-senior-patient-clinic_482257-49284.jpg"
|
||||
@@ -251,33 +170,21 @@ export default function LandingPage() {
|
||||
<FooterBase
|
||||
columns={[
|
||||
{
|
||||
title: "Vitality",
|
||||
items: [
|
||||
title: "Vitality", items: [
|
||||
{
|
||||
label: "About Us",
|
||||
href: "#about",
|
||||
},
|
||||
label: "About Us", href: "#about"},
|
||||
{
|
||||
label: "Services",
|
||||
href: "#services",
|
||||
},
|
||||
label: "Services", href: "#services"},
|
||||
{
|
||||
label: "Contact",
|
||||
href: "#contact",
|
||||
},
|
||||
label: "Contact", href: "#contact"},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Legal",
|
||||
items: [
|
||||
title: "Legal", items: [
|
||||
{
|
||||
label: "Privacy Policy",
|
||||
href: "#",
|
||||
},
|
||||
label: "Privacy Policy", href: "#"},
|
||||
{
|
||||
label: "Terms of Service",
|
||||
href: "#",
|
||||
},
|
||||
label: "Terms of Service", href: "#"},
|
||||
],
|
||||
},
|
||||
]}
|
||||
|
||||
@@ -10,15 +10,15 @@
|
||||
--accent: #ffffff;
|
||||
--background-accent: #ffffff; */
|
||||
|
||||
--background: #f5f4ef;
|
||||
--card: #dad6cd;
|
||||
--foreground: #2a2928;
|
||||
--primary-cta: #2a2928;
|
||||
--primary-cta-text: #f5f4ef;
|
||||
--secondary-cta: #ecebea;
|
||||
--secondary-cta-text: #2a2928;
|
||||
--accent: #ffffff;
|
||||
--background-accent: #c6b180;
|
||||
--background: #ffffff;
|
||||
--card: #f9f9f9;
|
||||
--foreground: #000612e6;
|
||||
--primary-cta: #15479c;
|
||||
--primary-cta-text: #ffffff;
|
||||
--secondary-cta: #f9f9f9;
|
||||
--secondary-cta-text: #000612e6;
|
||||
--accent: #e2e2e2;
|
||||
--background-accent: #c4c4c4;
|
||||
|
||||
/* text sizing - set by ThemeProvider */
|
||||
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);
|
||||
|
||||
49
src/app/workout-history/page.tsx
Normal file
49
src/app/workout-history/page.tsx
Normal file
@@ -0,0 +1,49 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import ReactLenis from "lenis/react";
|
||||
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
|
||||
import CardStack from '@/components/cardStack/CardStack';
|
||||
|
||||
export default function WorkoutHistoryPage() {
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="text-stagger"
|
||||
defaultTextAnimation="entrance-slide"
|
||||
borderRadius="rounded"
|
||||
contentWidth="medium"
|
||||
sizing="medium"
|
||||
background="circleGradient"
|
||||
cardStyle="glass-elevated"
|
||||
primaryButtonStyle="gradient"
|
||||
secondaryButtonStyle="glass"
|
||||
headingFontWeight="normal"
|
||||
>
|
||||
<ReactLenis root>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarLayoutFloatingOverlay
|
||||
navItems={[
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Log Workout", id: "/workout-log" },
|
||||
{ name: "History", id: "/workout-history" },
|
||||
{ name: "Exercises", id: "/exercises" }
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
<div className="pt-32 pb-20 px-6">
|
||||
<h1 className="text-4xl font-bold mb-12 text-center">Your Workout History</h1>
|
||||
<CardStack animationType="blur-reveal" textboxLayout="default">
|
||||
<div className="p-8 bg-card rounded-xl shadow-lg border">
|
||||
<h3 className="text-2xl font-semibold">Bench Press - 2023-10-15</h3>
|
||||
<p>Sets: 4 | Reps: 10 | Weight: 80kg</p>
|
||||
</div>
|
||||
<div className="p-8 bg-card rounded-xl shadow-lg border">
|
||||
<h3 className="text-2xl font-semibold">Squats - 2023-10-14</h3>
|
||||
<p>Sets: 3 | Reps: 12 | Weight: 100kg</p>
|
||||
</div>
|
||||
</CardStack>
|
||||
</div>
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
53
src/app/workout-log/page.tsx
Normal file
53
src/app/workout-log/page.tsx
Normal file
@@ -0,0 +1,53 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import ReactLenis from "lenis/react";
|
||||
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
|
||||
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
|
||||
|
||||
export default function WorkoutLogPage() {
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="text-stagger"
|
||||
defaultTextAnimation="entrance-slide"
|
||||
borderRadius="rounded"
|
||||
contentWidth="medium"
|
||||
sizing="medium"
|
||||
background="circleGradient"
|
||||
cardStyle="glass-elevated"
|
||||
primaryButtonStyle="gradient"
|
||||
secondaryButtonStyle="glass"
|
||||
headingFontWeight="normal"
|
||||
>
|
||||
<ReactLenis root>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarLayoutFloatingOverlay
|
||||
navItems={[
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Log Workout", id: "/workout-log" },
|
||||
{ name: "History", id: "/workout-history" },
|
||||
{ name: "Exercises", id: "/exercises" }
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
<div className="pt-32 pb-20 px-6 max-w-4xl mx-auto">
|
||||
<h1 className="text-4xl font-bold mb-8">Log New Workout</h1>
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactSplitForm
|
||||
title="Record Your Session"
|
||||
description="Log your daily exercise progress including weight and reps."
|
||||
inputs={[
|
||||
{ name: "exercise", type: "text", placeholder: "Exercise Name", required: true },
|
||||
{ name: "sets", type: "number", placeholder: "Sets", required: true },
|
||||
{ name: "reps", type: "number", placeholder: "Reps", required: true },
|
||||
{ name: "weight", type: "number", placeholder: "Weight (kg)", required: true }
|
||||
]}
|
||||
buttonText="Save Workout"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user