13 Commits

Author SHA1 Message Date
4d1365bf80 Merge version_2 into main
Merge version_2 into main
2026-03-30 16:04:20 +00:00
b49688950d Update src/app/page.tsx 2026-03-30 16:04:17 +00:00
6518167a02 Merge version_2 into main
Merge version_2 into main
2026-03-30 16:03:56 +00:00
4eecc7a316 Update src/app/running/page.tsx 2026-03-30 16:03:53 +00:00
42d1233365 Update src/app/page.tsx 2026-03-30 16:03:53 +00:00
8721bbce97 Merge version_2 into main
Merge version_2 into main
2026-03-30 16:03:17 +00:00
7fdf81e13d Update src/app/styles/variables.css 2026-03-30 16:03:13 +00:00
0e861d8acb Add src/app/running/page.tsx 2026-03-30 16:03:13 +00:00
60bf78b510 Update src/app/page.tsx 2026-03-30 16:03:13 +00:00
ac0f6d9e6d Add src/app/cycling/page.tsx 2026-03-30 16:03:12 +00:00
01443389f1 Merge version_1 into main
Merge version_1 into main
2026-03-30 15:59:51 +00:00
30adb82b92 Merge version_1 into main
Merge version_1 into main
2026-03-30 15:59:19 +00:00
3f76e9c66d Merge version_1 into main
Merge version_1 into main
2026-03-30 15:58:44 +00:00
4 changed files with 179 additions and 9 deletions

71
src/app/cycling/page.tsx Normal file
View 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>
);
}

View File

@@ -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
View 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>
);
}

View File

@@ -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);