Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b49688950d | |||
| 4eecc7a316 | |||
| 42d1233365 | |||
| 7fdf81e13d | |||
| 0e861d8acb | |||
| 60bf78b510 | |||
| ac0f6d9e6d | |||
| 01443389f1 | |||
| 30adb82b92 | |||
| 3f76e9c66d |
71
src/app/cycling/page.tsx
Normal file
71
src/app/cycling/page.tsx
Normal file
@@ -0,0 +1,71 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import ReactLenis from "lenis/react";
|
||||
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
|
||||
import FeatureCardTwentySix from '@/components/sections/feature/FeatureCardTwentySix';
|
||||
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
|
||||
import { Bike, ShieldCheck, Settings, AlertCircle } from "lucide-react";
|
||||
|
||||
export default function CyclingDisciplinePage() {
|
||||
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">
|
||||
<NavbarLayoutFloatingInline
|
||||
navItems={[
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Cycling", id: "#cycling-guide" },
|
||||
]}
|
||||
brandName="TriathlonLife"
|
||||
button={{ text: "Get Started", href: "/" }}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="cycling-guide" data-section="features">
|
||||
<FeatureCardTwentySix
|
||||
title="Cycling Mastery"
|
||||
description="Comprehensive guide to elevating your cycling performance, from training techniques to equipment essentials."
|
||||
textboxLayout="split"
|
||||
useInvertedBackground={false}
|
||||
features={[
|
||||
{
|
||||
title: "Training Techniques", description: "Focus on interval training, cadence drills, and threshold heart rate zones to improve speed and power output.", buttonIcon: Settings,
|
||||
},
|
||||
{
|
||||
title: "Equipment Essentials", description: "Ensure a professional bike fit, check tire pressure regularly, and utilize aerodynamic components for efficiency.", buttonIcon: Bike,
|
||||
},
|
||||
{
|
||||
title: "Common Mistakes", description: "Avoid overtraining, improper saddle height, and neglecting nutrition during long sessions.", buttonIcon: AlertCircle,
|
||||
},
|
||||
{
|
||||
title: "Safety Standards", description: "Always wear a helmet, maintain bike components, and practice defensive riding on open roads.", buttonIcon: ShieldCheck,
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterLogoEmphasis
|
||||
columns={[
|
||||
{ items: [{ label: "Home", href: "/" }] },
|
||||
{ items: [{ label: "Cycling", href: "/cycling" }] }
|
||||
]}
|
||||
logoText="TriathlonLife"
|
||||
/>
|
||||
</div>
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
@@ -31,6 +31,8 @@ export default function LandingPage() {
|
||||
{ name: "Home", id: "hero" },
|
||||
{ name: "About", id: "about" },
|
||||
{ name: "Features", id: "features" },
|
||||
{ name: "Nutrition", id: "nutrition" },
|
||||
{ name: "Training", id: "training" },
|
||||
{ name: "FAQ", id: "faq" },
|
||||
]}
|
||||
brandName="TriathlonLife"
|
||||
@@ -47,7 +49,7 @@ export default function LandingPage() {
|
||||
{ imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3BfhvAsSkAikuNE3OizCw3v88gB/professional-shot-of-a-triathlete-swimmi-1774886309114-5d7acb82.png?_wi=1", imageAlt: "Triathlon swimming start" },
|
||||
{ imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3BfhvAsSkAikuNE3OizCw3v88gB/action-shot-of-a-road-cyclist-racing-on--1774886307117-b5f5ff13.png?_wi=1", imageAlt: "Triathlon road cycling" },
|
||||
{ imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3BfhvAsSkAikuNE3OizCw3v88gB/runner-finishing-a-marathon-cheering-cro-1774886307080-e4ab08b2.png", imageAlt: "Triathlon running marathon" },
|
||||
{ imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3BfhvAsSkAikuNE3OizCw3v88gB/transition-area-in-a-triathlon-race-rows-1774886307364-e40eabd5.png", imageAlt: "Triathlon transition area" },
|
||||
{ imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3BfhvAsSkAikuNE3OizCw3v88gB/transition-area-in-a-triathlon-race-rows-1774886307364-e40eabd5.png?_wi=1", imageAlt: "Triathlon transition area" },
|
||||
{ imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3BfhvAsSkAikuNE3OizCw3v88gB/triathlete-running-in-a-park-scenic-trai-1774886307322-198c875e.png?_wi=1", imageAlt: "Triathlete running park" },
|
||||
{ imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3BfhvAsSkAikuNE3OizCw3v88gB/swimming-start-splash-group-of-swimmers--1774886307466-af646834.png", imageAlt: "Triathlon swimming splash" }
|
||||
]}
|
||||
@@ -86,6 +88,36 @@ export default function LandingPage() {
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="nutrition" data-section="nutrition">
|
||||
<FeatureCardOne
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
gridVariant="two-items-per-row"
|
||||
useInvertedBackground={false}
|
||||
features={[
|
||||
{ title: "Ironman Fueling", description: "Carb-loading, electrolyte management, and calorie intake strategies for long-distance efforts.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3BfhvAsSkAikuNE3OizCw3v88gB/professional-shot-of-a-triathlete-swimmi-1774886309114-5d7acb82.png?_wi=2" },
|
||||
{ title: "Post-Race Recovery", description: "Protein windows and nutrient timing to repair muscles post-event.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3BfhvAsSkAikuNE3OizCw3v88gB/action-shot-of-a-road-cyclist-racing-on--1774886307117-b5f5ff13.png?_wi=2" }
|
||||
]}
|
||||
title="Nutrition Strategy"
|
||||
description="Fuel your performance with ironman-specific nutrition protocols."
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="training" data-section="training">
|
||||
<FeatureCardOne
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
gridVariant="two-items-per-row"
|
||||
useInvertedBackground={false}
|
||||
features={[
|
||||
{ title: "Race Preparation", description: "Tapering phases, mental visualization, and transition mastery.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3BfhvAsSkAikuNE3OizCw3v88gB/triathlete-running-in-a-park-scenic-trai-1774886307322-198c875e.png?_wi=2" },
|
||||
{ title: "Volume Building", description: "Strategic increase in base mileage while managing fatigue and injury risk.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3BfhvAsSkAikuNE3OizCw3v88gB/transition-area-in-a-triathlon-race-rows-1774886307364-e40eabd5.png?_wi=2" }
|
||||
]}
|
||||
title="Training Plans"
|
||||
description="Comprehensive training blueprints to get you race-ready."
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<TestimonialCardOne
|
||||
textboxLayout="default"
|
||||
@@ -122,7 +154,7 @@ export default function LandingPage() {
|
||||
<FooterLogoEmphasis
|
||||
columns={[
|
||||
{ items: [{ label: "About", href: "#about" }, { label: "Features", href: "#features" }] },
|
||||
{ items: [{ label: "FAQ", href: "#faq" }, { label: "Contact", href: "#" }] }
|
||||
{ items: [{ label: "Nutrition", href: "#nutrition" }, { label: "Training", href: "#training" }, { label: "FAQ", href: "#faq" }] }
|
||||
]}
|
||||
logoText="TriathlonLife"
|
||||
/>
|
||||
|
||||
67
src/app/running/page.tsx
Normal file
67
src/app/running/page.tsx
Normal file
@@ -0,0 +1,67 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import ReactLenis from "lenis/react";
|
||||
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
|
||||
import FeatureCardTwentySeven from '@/components/sections/feature/FeatureCardTwentySeven';
|
||||
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
|
||||
|
||||
export default function RunningPage() {
|
||||
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">
|
||||
<NavbarLayoutFloatingInline
|
||||
navItems={[
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Running", id: "/running" },
|
||||
{ name: "About", id: "about" },
|
||||
{ name: "Features", id: "features" },
|
||||
{ name: "FAQ", id: "faq" },
|
||||
]}
|
||||
brandName="TriathlonLife"
|
||||
button={{ text: "Get Started", href: "#" }}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<FeatureCardTwentySeven
|
||||
useInvertedBackground={false}
|
||||
title="Mastering the Running Discipline"
|
||||
description="Expert advice, essential techniques, and gear recommendations to improve your run performance."
|
||||
gridVariant="bento-grid"
|
||||
animationType="slide-up"
|
||||
textboxLayout="split"
|
||||
features={[
|
||||
{ id: "1", title: "Running Form", description: "Focus on mid-foot strike, cadence, and posture to reduce injury risk." },
|
||||
{ id: "2", title: "Training Advice", description: "Incorporate interval runs, tempo runs, and long slow distance training for balance." },
|
||||
{ id: "3", title: "Essential Equipment", description: "Invest in gait-analyzed running shoes and moisture-wicking apparel." },
|
||||
{ id: "4", title: "Common Mistakes", description: "Avoid over-striding, ignoring recovery days, and rapidly increasing weekly mileage." }
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterLogoEmphasis
|
||||
columns={[
|
||||
{ items: [{ label: "Home", href: "/" }, { label: "Running", href: "/running" }] },
|
||||
{ items: [{ label: "FAQ", href: "/" }, { label: "Contact", href: "#" }] }
|
||||
]}
|
||||
logoText="TriathlonLife"
|
||||
/>
|
||||
</div>
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
@@ -10,15 +10,15 @@
|
||||
--accent: #ffffff;
|
||||
--background-accent: #ffffff; */
|
||||
|
||||
--background: #f5faff;
|
||||
--card: #f1f8ff;
|
||||
--foreground: #001122;
|
||||
--primary-cta: #15479c;
|
||||
--background: #0a0a0a;
|
||||
--card: #1a1a1a;
|
||||
--foreground: #ffffff;
|
||||
--primary-cta: #ff3d4a;
|
||||
--primary-cta-text: #f5faff;
|
||||
--secondary-cta: #ffffff;
|
||||
--secondary-cta: #0a0a0a;
|
||||
--secondary-cta-text: #001122;
|
||||
--accent: #a8cce8;
|
||||
--background-accent: #7ba3cf;
|
||||
--accent: #7b2d2d;
|
||||
--background-accent: #b8111f;
|
||||
|
||||
/* text sizing - set by ThemeProvider */
|
||||
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);
|
||||
|
||||
Reference in New Issue
Block a user