coachify / index.html
Faco24's picture
undefined - Initial Deployment
47b4308 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Coachify - Voice-Powered Fitness App</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
.gradient-bg {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}
.voice-pulse {
animation: pulse 2s infinite;
}
@keyframes pulse {
0% {
box-shadow: 0 0 0 0 rgba(102, 126, 234, 0.7);
}
70% {
box-shadow: 0 0 0 15px rgba(102, 126, 234, 0);
}
100% {
box-shadow: 0 0 0 0 rgba(102, 126, 234, 0);
}
}
.exercise-card:hover {
transform: translateY(-5px);
transition: all 0.3s ease;
}
.progress-ring__circle {
transition: stroke-dashoffset 0.5s;
transform: rotate(-90deg);
transform-origin: 50% 50%;
}
</style>
</head>
<body class="font-sans bg-gray-50">
<!-- Navigation -->
<nav class="gradient-bg text-white shadow-lg">
<div class="container mx-auto px-4 py-3 flex justify-between items-center">
<div class="flex items-center space-x-2">
<i class="fas fa-dumbbell text-2xl"></i>
<span class="text-xl font-bold">Coachify</span>
</div>
<div class="hidden md:flex space-x-6">
<a href="#" class="hover:text-gray-200">Home</a>
<a href="#" class="hover:text-gray-200">Features</a>
<a href="#" class="hover:text-gray-200">Dashboard</a>
<a href="#" class="hover:text-gray-200">Coach</a>
</div>
<div class="flex items-center space-x-4">
<button class="bg-white text-indigo-700 px-4 py-2 rounded-full font-medium hover:bg-gray-100 transition">
Sign In
</button>
<button class="md:hidden text-white">
<i class="fas fa-bars text-xl"></i>
</button>
</div>
</div>
</nav>
<!-- Hero Section -->
<section class="gradient-bg text-white py-16 md:py-24">
<div class="container mx-auto px-4 flex flex-col md:flex-row items-center">
<div class="md:w-1/2 mb-10 md:mb-0">
<h1 class="text-4xl md:text-5xl font-bold mb-6">Train Smarter With Voice Commands</h1>
<p class="text-xl mb-8">Coachify transforms your fitness journey with natural voice tracking, smart analytics, and a virtual coach that keeps you motivated.</p>
<div class="flex flex-col sm:flex-row space-y-4 sm:space-y-0 sm:space-x-4">
<button class="bg-white text-indigo-700 px-6 py-3 rounded-full font-bold hover:bg-gray-100 transition">
Get Started
</button>
<button class="border-2 border-white text-white px-6 py-3 rounded-full font-bold hover:bg-white hover:text-indigo-700 transition">
Watch Demo
</button>
</div>
</div>
<div class="md:w-1/2 flex justify-center">
<div class="relative">
<div class="bg-white rounded-2xl p-4 shadow-xl w-80 h-96 relative overflow-hidden">
<div class="absolute top-4 left-4 right-4 bg-gray-100 rounded-lg p-3">
<div class="flex justify-between items-center mb-2">
<span class="font-bold text-gray-800">Today's Workout</span>
<span class="text-xs text-gray-500">45 min</span>
</div>
<div class="space-y-2">
<div class="bg-indigo-100 rounded p-2 flex items-center">
<div class="w-8 h-8 rounded-full bg-indigo-500 flex items-center justify-center text-white mr-2">
<i class="fas fa-dumbbell text-sm"></i>
</div>
<div>
<p class="font-medium text-gray-800">Squats</p>
<p class="text-xs text-gray-600">4x12 @ 60kg</p>
</div>
</div>
<div class="bg-indigo-100 rounded p-2 flex items-center">
<div class="w-8 h-8 rounded-full bg-indigo-500 flex items-center justify-center text-white mr-2">
<i class="fas fa-running text-sm"></i>
</div>
<div>
<p class="font-medium text-gray-800">Sprints</p>
<p class="text-xs text-gray-600">20s @ 19km/h</p>
</div>
</div>
<div class="bg-indigo-100 rounded p-2 flex items-center">
<div class="w-8 h-8 rounded-full bg-indigo-500 flex items-center justify-center text-white mr-2">
<i class="fas fa-fire-alt text-sm"></i>
</div>
<div>
<p class="font-medium text-gray-800">Burpees</p>
<p class="text-xs text-gray-600">4x10</p>
</div>
</div>
</div>
</div>
<div class="absolute bottom-4 left-4 right-4">
<div class="bg-indigo-600 rounded-full p-4 flex items-center justify-center voice-pulse">
<i class="fas fa-microphone text-white text-2xl"></i>
</div>
<p class="text-center text-gray-600 mt-2">Tap to record your workout</p>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Features Section -->
<section class="py-16 bg-white">
<div class="container mx-auto px-4">
<h2 class="text-3xl font-bold text-center mb-12">Powerful Features</h2>
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
<!-- Feature 1 -->
<div class="bg-gray-50 rounded-xl p-6 shadow-md hover:shadow-lg transition">
<div class="w-16 h-16 rounded-full bg-indigo-100 flex items-center justify-center mb-4">
<i class="fas fa-microphone text-indigo-600 text-2xl"></i>
</div>
<h3 class="text-xl font-bold mb-3">Voice Commands</h3>
<p class="text-gray-600">Simply speak your workout details like "4 sets of 12 squats with 60kg" and let Coachify handle the rest.</p>
</div>
<!-- Feature 2 -->
<div class="bg-gray-50 rounded-xl p-6 shadow-md hover:shadow-lg transition">
<div class="w-16 h-16 rounded-full bg-indigo-100 flex items-center justify-center mb-4">
<i class="fas fa-chart-line text-indigo-600 text-2xl"></i>
</div>
<h3 class="text-xl font-bold mb-3">Progress Tracking</h3>
<p class="text-gray-600">Visual dashboards show your strength gains, workout frequency, and muscle group balance.</p>
</div>
<!-- Feature 3 -->
<div class="bg-gray-50 rounded-xl p-6 shadow-md hover:shadow-lg transition">
<div class="w-16 h-16 rounded-full bg-indigo-100 flex items-center justify-center mb-4">
<i class="fas fa-robot text-indigo-600 text-2xl"></i>
</div>
<h3 class="text-xl font-bold mb-3">Virtual Coach</h3>
<p class="text-gray-600">Your personal AI trainer provides motivation, technique tips, and workout variations.</p>
</div>
</div>
</div>
</section>
<!-- Voice Demo Section -->
<section class="py-16 bg-gray-50">
<div class="container mx-auto px-4">
<div class="flex flex-col md:flex-row items-center">
<div class="md:w-1/2 mb-10 md:mb-0">
<h2 class="text-3xl font-bold mb-6">How Voice Tracking Works</h2>
<p class="text-gray-600 mb-8">Coachify understands natural language commands to log your workouts effortlessly. No more fumbling with your phone between sets!</p>
<div class="space-y-4">
<div class="flex items-start">
<div class="bg-indigo-100 rounded-full w-10 h-10 flex items-center justify-center mr-4 mt-1">
<i class="fas fa-quote-left text-indigo-600"></i>
</div>
<div>
<p class="font-medium">"3 sets of 10 pull-ups with 5kg assistance"</p>
<p class="text-sm text-gray-500">Records pull-ups with assisted weight</p>
</div>
</div>
<div class="flex items-start">
<div class="bg-indigo-100 rounded-full w-10 h-10 flex items-center justify-center mr-4 mt-1">
<i class="fas fa-quote-left text-indigo-600"></i>
</div>
<div>
<p class="font-medium">"Ran 5km in 28 minutes"</p>
<p class="text-sm text-gray-500">Logs cardio with distance and time</p>
</div>
</div>
<div class="flex items-start">
<div class="bg-indigo-100 rounded-full w-10 h-10 flex items-center justify-center mr-4 mt-1">
<i class="fas fa-quote-left text-indigo-600"></i>
</div>
<div>
<p class="font-medium">"4x8 bench press at 80kg with 2 min rest"</p>
<p class="text-sm text-gray-500">Tracks weight, reps, and rest periods</p>
</div>
</div>
</div>
</div>
<div class="md:w-1/2 flex justify-center">
<div class="bg-white rounded-2xl p-6 shadow-lg w-full max-w-md">
<div class="flex justify-between items-center mb-6">
<h3 class="font-bold text-lg">Voice Workout Log</h3>
<div class="flex space-x-2">
<button class="w-8 h-8 rounded-full bg-gray-100 flex items-center justify-center">
<i class="fas fa-history text-gray-500"></i>
</button>
<button class="w-8 h-8 rounded-full bg-gray-100 flex items-center justify-center">
<i class="fas fa-cog text-gray-500"></i>
</button>
</div>
</div>
<div class="bg-indigo-50 rounded-lg p-4 mb-6">
<div class="flex items-center justify-center mb-2">
<div class="relative">
<div class="w-24 h-24 rounded-full bg-indigo-100 flex items-center justify-center">
<i class="fas fa-microphone text-indigo-600 text-3xl"></i>
</div>
<div class="absolute inset-0 rounded-full border-4 border-indigo-200 animate-ping opacity-75"></div>
</div>
</div>
<p class="text-center text-indigo-800 font-medium">Listening for workout...</p>
<p class="text-center text-indigo-600 text-sm">Speak naturally after the beep</p>
</div>
<div class="space-y-3">
<div class="flex items-center">
<div class="w-8 h-8 rounded-full bg-green-100 flex items-center justify-center mr-3">
<i class="fas fa-check text-green-600"></i>
</div>
<div>
<p class="font-medium">"3 sets of 12 squats at 60kg"</p>
<p class="text-xs text-gray-500">Added to today's workout</p>
</div>
</div>
<div class="flex items-center">
<div class="w-8 h-8 rounded-full bg-yellow-100 flex items-center justify-center mr-3">
<i class="fas fa-exclamation text-yellow-600"></i>
</div>
<div>
<p class="font-medium">"4 rounds of 30s sprints"</p>
<p class="text-xs text-gray-500">Confirm rest period duration</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Dashboard Preview -->
<section class="py-16 bg-white">
<div class="container mx-auto px-4">
<h2 class="text-3xl font-bold text-center mb-6">Your Fitness Dashboard</h2>
<p class="text-gray-600 text-center max-w-2xl mx-auto mb-12">Visualize your progress with beautiful charts and actionable insights tailored to your goals.</p>
<div class="bg-gray-50 rounded-2xl p-6 shadow-lg overflow-hidden">
<div class="flex flex-wrap -mx-2">
<!-- Weekly Summary -->
<div class="w-full md:w-1/3 px-2 mb-6 md:mb-0">
<div class="bg-white rounded-xl p-4 h-full">
<h3 class="font-bold mb-4">This Week</h3>
<div class="space-y-4">
<div>
<p class="text-gray-500 text-sm">Workouts Completed</p>
<p class="text-2xl font-bold">4/5</p>
</div>
<div>
<p class="text-gray-500 text-sm">Total Volume</p>
<p class="text-2xl font-bold">12,540 kg</p>
</div>
<div>
<p class="text-gray-500 text-sm">Calories Burned</p>
<p class="text-2xl font-bold">3,450</p>
</div>
</div>
</div>
</div>
<!-- Muscle Group Chart -->
<div class="w-full md:w-1/3 px-2 mb-6 md:mb-0">
<div class="bg-white rounded-xl p-4 h-full">
<h3 class="font-bold mb-4">Muscle Balance</h3>
<div class="flex justify-center">
<svg width="160" height="160" viewBox="0 0 160 160">
<!-- Background circle -->
<circle cx="80" cy="80" r="70" fill="none" stroke="#e2e8f0" stroke-width="10"/>
<!-- Progress circle (Chest) -->
<circle cx="80" cy="80" r="70" fill="none" stroke="#818cf8" stroke-width="10"
stroke-dasharray="439.8" stroke-dashoffset="307.8" stroke-linecap="round"/>
<!-- Progress circle (Legs) -->
<circle cx="80" cy="80" r="70" fill="none" stroke="#4f46e5" stroke-width="10"
stroke-dasharray="439.8" stroke-dashoffset="219.9" stroke-linecap="round" transform="rotate(70 80 80)"/>
<!-- Progress circle (Back) -->
<circle cx="80" cy="80" r="70" fill="none" stroke="#6366f1" stroke-width="10"
stroke-dasharray="439.8" stroke-dashoffset="351.8" stroke-linecap="round" transform="rotate(140 80 80)"/>
<!-- Progress circle (Arms) -->
<circle cx="80" cy="80" r="70" fill="none" stroke="#a5b4fc" stroke-width="10"
stroke-dasharray="439.8" stroke-dashoffset="395.8" stroke-linecap="round" transform="rotate(210 80 80)"/>
<!-- Progress circle (Core) -->
<circle cx="80" cy="80" r="70" fill="none" stroke="#c7d2fe" stroke-width="10"
stroke-dasharray="439.8" stroke-dashoffset="263.8" stroke-linecap="round" transform="rotate(280 80 80)"/>
</svg>
</div>
<div class="grid grid-cols-2 gap-2 mt-4">
<div class="flex items-center">
<div class="w-3 h-3 rounded-full bg-indigo-400 mr-2"></div>
<span class="text-xs">Legs (50%)</span>
</div>
<div class="flex items-center">
<div class="w-3 h-3 rounded-full bg-indigo-600 mr-2"></div>
<span class="text-xs">Chest (30%)</span>
</div>
<div class="flex items-center">
<div class="w-3 h-3 rounded-full bg-indigo-300 mr-2"></div>
<span class="text-xs">Core (40%)</span>
</div>
<div class="flex items-center">
<div class="w-3 h-3 rounded-full bg-indigo-500 mr-2"></div>
<span class="text-xs">Back (20%)</span>
</div>
<div class="flex items-center">
<div class="w-3 h-3 rounded-full bg-indigo-200 mr-2"></div>
<span class="text-xs">Arms (10%)</span>
</div>
</div>
</div>
</div>
<!-- Recent Exercises -->
<div class="w-full md:w-1/3 px-2">
<div class="bg-white rounded-xl p-4 h-full">
<h3 class="font-bold mb-4">Recent Exercises</h3>
<div class="space-y-3">
<div class="flex items-center justify-between">
<div class="flex items-center">
<div class="w-8 h-8 rounded-full bg-indigo-100 flex items-center justify-center mr-3">
<i class="fas fa-dumbbell text-indigo-600"></i>
</div>
<div>
<p class="font-medium">Squats</p>
<p class="text-xs text-gray-500">4x12 @ 60kg</p>
</div>
</div>
<span class="text-sm text-gray-500">2d ago</span>
</div>
<div class="flex items-center justify-between">
<div class="flex items-center">
<div class="w-8 h-8 rounded-full bg-indigo-100 flex items-center justify-center mr-3">
<i class="fas fa-running text-indigo-600"></i>
</div>
<div>
<p class="font-medium">Sprints</p>
<p class="text-xs text-gray-500">4x30s @ 18km/h</p>
</div>
</div>
<span class="text-sm text-gray-500">1d ago</span>
</div>
<div class="flex items-center justify-between">
<div class="flex items-center">
<div class="w-8 h-8 rounded-full bg-indigo-100 flex items-center justify-center mr-3">
<i class="fas fa-fire-alt text-indigo-600"></i>
</div>
<div>
<p class="font-medium">Burpees</p>
<p class="text-xs text-gray-500">4x10</p>
</div>
</div>
<span class="text-sm text-gray-500">Today</span>
</div>
</div>
</div>
</div>
</div>
<!-- Progress Chart -->
<div class="mt-6 bg-white rounded-xl p-4">
<div class="flex justify-between items-center mb-4">
<h3 class="font-bold">Strength Progress</h3>
<div class="flex space-x-2">
<button class="px-3 py-1 bg-indigo-100 text-indigo-700 rounded-full text-sm">1M</button>
<button class="px-3 py-1 bg-indigo-600 text-white rounded-full text-sm">3M</button>
<button class="px-3 py-1 bg-indigo-100 text-indigo-700 rounded-full text-sm">6M</button>
<button class="px-3 py-1 bg-indigo-100 text-indigo-700 rounded-full text-sm">1Y</button>
</div>
</div>
<div class="h-64">
<!-- This would be a Chart.js or similar chart in a real app -->
<div class="flex items-end h-48 space-x-1">
<div class="w-8 bg-indigo-200 rounded-t" style="height: 40%;"></div>
<div class="w-8 bg-indigo-300 rounded-t" style="height: 50%;"></div>
<div class="w-8 bg-indigo-400 rounded-t" style="height: 60%;"></div>
<div class="w-8 bg-indigo-500 rounded-t" style="height: 70%;"></div>
<div class="w-8 bg-indigo-600 rounded-t" style="height: 90%;"></div>
<div class="w-8 bg-indigo-500 rounded-t" style="height: 80%;"></div>
<div class="w-8 bg-indigo-400 rounded-t" style="height: 75%;"></div>
</div>
<div class="flex justify-between mt-2 text-xs text-gray-500">
<span>Jan</span>
<span>Feb</span>
<span>Mar</span>
<span>Apr</span>
<span>May</span>
<span>Jun</span>
<span>Jul</span>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Virtual Coach Section -->
<section class="py-16 bg-indigo-50">
<div class="container mx-auto px-4">
<div class="flex flex-col md:flex-row items-center">
<div class="md:w-1/2 mb-10 md:mb-0">
<h2 class="text-3xl font-bold mb-6">Your Personal AI Coach</h2>
<p class="text-gray-600 mb-8">Meet Coach Max - your virtual training partner who provides motivation, technique tips, and workout variations tailored to your progress.</p>
<div class="bg-white rounded-xl p-6 shadow-md max-w-lg">
<div class="flex items-start mb-4">
<div class="w-12 h-12 rounded-full bg-indigo-100 flex items-center justify-center mr-4">
<i class="fas fa-robot text-indigo-600 text-xl"></i>
</div>
<div class="bg-gray-100 rounded-lg p-4 flex-1">
<p class="font-medium">Hey champ! I noticed you crushed your squat PR yesterday. 💪 Want to try paused squats next time to build even more strength out of the hole?</p>
<div class="flex space-x-2 mt-3">
<button class="text-xs bg-indigo-600 text-white px-3 py-1 rounded-full">Sounds good!</button>
<button class="text-xs border border-gray-300 px-3 py-1 rounded-full">Show me how</button>
</div>
</div>
</div>
<div class="flex items-start">
<div class="w-12 h-12 rounded-full bg-indigo-100 flex items-center justify-center mr-4">
<img src="https://randomuser.me/api/portraits/women/44.jpg" alt="User" class="rounded-full w-full h-full object-cover">
</div>
<div class="bg-indigo-600 text-white rounded-lg p-4 flex-1">
<p>"4 sets of 8 paused squats with 50kg"</p>
</div>
</div>
</div>
</div>
<div class="md:w-1/2 flex justify-center">
<div class="bg-white rounded-2xl p-6 shadow-xl max-w-md w-full">
<div class="flex justify-between items-center mb-6">
<h3 class="font-bold text-lg">Coach Messages</h3>
<button class="text-indigo-600">
<i class="fas fa-ellipsis-h"></i>
</button>
</div>
<div class="space-y-4">
<!-- Message 1 -->
<div class="flex items-start">
<div class="w-10 h-10 rounded-full bg-indigo-100 flex items-center justify-center mr-3">
<i class="fas fa-robot text-indigo-600"></i>
</div>
<div class="bg-gray-100 rounded-xl p-3">
<p class="text-sm">Your deadlift progress is impressive! You've added 15kg in 2 months. Try alternating with Romanian deadlifts for hamstring development.</p>
<div class="flex justify-end mt-2">
<span class="text-xs text-gray-500">Yesterday</span>
</div>
</div>
</div>
<!-- Message 2 -->
<div class="flex items-start">
<div class="w-10 h-10 rounded-full bg-indigo-100 flex items-center justify-center mr-3">
<i class="fas fa-robot text-indigo-600"></i>
</div>
<div class="bg-gray-100 rounded-xl p-3">
<p class="text-sm">Rest day tomorrow! Your muscles need recovery to grow. Maybe try some light yoga or walking?</p>
<div class="flex justify-end mt-2">
<span class="text-xs text-gray-500">2 days ago</span>
</div>
</div>
</div>
<!-- Message 3 -->
<div class="flex items-start">
<div class="w-10 h-10 rounded-full bg-indigo-100 flex items-center justify-center mr-3">
<i class="fas fa-robot text-indigo-600"></i>
</div>
<div class="bg-gray-100 rounded-xl p-3">
<div class="flex items-center mb-1">
<i class="fas fa-trophy text-yellow-500 mr-2"></i>
<p class="font-medium text-sm">New Achievement!</p>
</div>
<p class="text-sm">You've completed 50 workouts with Coachify! Here's your virtual high five! ✋</p>
<div class="flex justify-end mt-2">
<span class="text-xs text-gray-500">1 week ago</span>
</div>
</div>
</div>
</div>
<div class="mt-6 flex items-center">
<input type="text" placeholder="Message Coach Max..." class="flex-1 border border-gray-300 rounded-full py-2 px-4 focus:outline-none focus:ring-2 focus:ring-indigo-500">
<button class="ml-2 w-10 h-10 rounded-full bg-indigo-600 text-white flex items-center justify-center">
<i class="fas fa-paper-plane"></i>
</button>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- CTA Section -->
<section class="py-16 gradient-bg text-white">
<div class="container mx-auto px-4 text-center">
<h2 class="text-3xl font-bold mb-6">Ready to Transform Your Fitness Journey?</h2>
<p class="text-xl mb-8 max-w-2xl mx-auto">Join thousands of athletes and fitness enthusiasts who are training smarter with Coachify.</p>
<div class="flex flex-col sm:flex-row justify-center space-y-4 sm:space-y-0 sm:space-x-4">
<button class="bg-white text-indigo-700 px-8 py-4 rounded-full font-bold hover:bg-gray-100 transition">
Start Free Trial
</button>
<button class="border-2 border-white text-white px-8 py-4 rounded-full font-bold hover:bg-white hover:text-indigo-700 transition">
See Pricing Plans
</button>
</div>
</div>
</section>
<!-- Footer -->
<footer class="bg-gray-900 text-white py-12">
<div class="container mx-auto px-4">
<div class="grid grid-cols-1 md:grid-cols-4 gap-8">
<div>
<div class="flex items-center space-x-2 mb-4">
<i class="fas fa-dumbbell text-2xl"></i>
<span class="text-xl font-bold">Coachify</span>
</div>
<p class="text-gray-400">The voice-powered fitness app that helps you train smarter and track progress effortlessly.</p>
</div>
<div>
<h3 class="font-bold mb-4">Product</h3>
<ul class="space-y-2 text-gray-400">
<li><a href="#" class="hover:text-white">Features</a></li>
<li><a href="#" class="hover:text-white">Pricing</a></li>
<li><a href="#" class="hover:text-white">Download</a></li>
<li><a href="#" class="hover:text-white">Demo</a></li>
</ul>
</div>
<div>
<h3 class="font-bold mb-4">Company</h3>
<ul class="space-y-2 text-gray-400">
<li><a href="#" class="hover:text-white">About</a></li>
<li><a href="#" class="hover:text-white">Careers</a></li>
<li><a href="#" class="hover:text-white">Blog</a></li>
<li><a href="#" class="hover:text-white">Contact</a></li>
</ul>
</div>
<div>
<h3 class="font-bold mb-4">Connect</h3>
<div class="flex space-x-4 mb-4">
<a href="#" class="w-10 h-10 rounded-full bg-gray-800 flex items-center justify-center hover:bg-indigo-600">
<i class="fab fa-facebook-f"></i>
</a>
<a href="#" class="w-10 h-10 rounded-full bg-gray-800 flex items-center justify-center hover:bg-indigo-600">
<i class="fab fa-twitter"></i>
</a>
<a href="#" class="w-10 h-10 rounded-full bg-gray-800 flex items-center justify-center hover:bg-indigo-600">
<i class="fab fa-instagram"></i>
</a>
<a href="#" class="w-10 h-10 rounded-full bg-gray-800 flex items-center justify-center hover:bg-indigo-600">
<i class="fab fa-youtube"></i>
</a>
</div>
<p class="text-gray-400">support@coachify.fit</p>
</div>
</div>
<div class="border-t border-gray-800 mt-8 pt-8 flex flex-col md:flex-row justify-between items-center">
<p class="text-gray-400 mb-4 md:mb-0">© 2023 Coachify. All rights reserved.</p>
<div class="flex space-x-6">
<a href="#" class="text-gray-400 hover:text-white">Privacy Policy</a>
<a href="#" class="text-gray-400 hover:text-white">Terms of Service</a>
<a href="#" class="text-gray-400 hover:text-white">Cookie Policy</a>
</div>
</div>
</div>
</footer>
<!-- Sign In Modal -->
<div id="signInModal" class="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 hidden">
<div class="bg-white rounded-lg p-8 max-w-md w-full">
<div class="flex justify-between items-center mb-6">
<h3 class="text-2xl font-bold">Sign In</h3>
<button id="closeModal" class="text-gray-500 hover:text-gray-700">
<i class="fas fa-times"></i>
</button>
</div>
<form>
<div class="mb-4">
<label class="block text-gray-700 mb-2" for="email">Email</label>
<input type="email" id="email" class="w-full px-4 py-2 border rounded-lg focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500">
</div>
<div class="mb-6">
<label class="block text-gray-700 mb-2" for="password">Password</label>
<input type="password" id="password" class="w-full px-4 py-2 border rounded-lg focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500">
</div>
<button type="submit" class="w-full bg-indigo-600 text-white py-2 px-4 rounded-lg hover:bg-indigo-700 transition">
Sign In
</button>
<p class="text-center mt-4 text-gray-600">
Don't have an account? <a href="#" class="text-indigo-600 hover:underline">Sign up</a>
</p>
</form>
</div>
</div>
<script>
// Modal and voice recording functionality
document.addEventListener('DOMContentLoaded', function() {
// Sign In Modal
const signInBtn = document.querySelector('button.bg-white.text-indigo-700');
const modal = document.getElementById('signInModal');
const closeModal = document.getElementById('closeModal');
if (signInBtn) {
signInBtn.addEventListener('click', function(e) {
e.preventDefault();
modal.classList.remove('hidden');
});
}
if (closeModal) {
closeModal.addEventListener('click', function() {
modal.classList.add('hidden');
});
}
// Close modal when clicking outside
modal.addEventListener('click', function(e) {
if (e.target === modal) {
modal.classList.add('hidden');
}
});
const voiceButtons = document.querySelectorAll('.fa-microphone');
voiceButtons.forEach(button => {
button.addEventListener('click', function() {
const parent = this.closest('.voice-pulse');
if (parent) {
parent.classList.remove('voice-pulse');
this.classList.remove('fa-microphone');
this.classList.add('fa-stop');
// Simulate recording
setTimeout(() => {
this.classList.remove('fa-stop');
this.classList.add('fa-microphone');
parent.classList.add('voice-pulse');
// Show success message
alert("Workout recorded successfully! '4 sets of 12 squats with 60kg' has been added to your log.");
}, 3000);
}
});
});
// Form submission
const signInForm = document.querySelector('#signInModal form');
if (signInForm) {
signInForm.addEventListener('submit', function(e) {
e.preventDefault();
const email = document.getElementById('email').value;
const password = document.getElementById('password').value;
// Simple validation
if (email && password) {
alert(`Sign in successful for ${email}`);
modal.classList.add('hidden');
signInForm.reset();
} else {
alert('Please enter both email and password');
}
});
}
// Coach message send
const sendButton = document.querySelector('.fa-paper-plane');
if (sendButton) {
sendButton.addEventListener('click', function() {
const input = this.previousElementSibling;
if (input.value.trim() !== '') {
alert("Message sent to Coach Max: " + input.value);
input.value = '';
}
});
}
});
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=Faco24/coachify" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>