Download index.html from Faco24/coachify: direct link, hf CLI and curl.
- Browser
- Download file 41.6 kB
-
https://huggingface.co/spaces/Faco24/coachify/resolve/main/index.html
- Command line
-
hf download hf://spaces/Faco24/coachify/index.html
-
curl -L -o index.html https://huggingface.co/spaces/Faco24/coachify/resolve/main/index.html
41.6 kB
| <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> |