|
|
<!DOCTYPE html> |
|
|
<html lang="en"> |
|
|
<head> |
|
|
<meta charset="UTF-8"> |
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
|
<title>LifeFlow - Your Personal Life Planner</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"> |
|
|
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script> |
|
|
<style> |
|
|
:root { |
|
|
--primary: #6366f1; |
|
|
--secondary: #8b5cf6; |
|
|
--accent: #ec4899; |
|
|
--dark: #1e293b; |
|
|
--light: #f8fafc; |
|
|
} |
|
|
|
|
|
.gradient-bg { |
|
|
background: linear-gradient(135deg, var(--primary), var(--secondary)); |
|
|
} |
|
|
|
|
|
.progress-ring__circle { |
|
|
transition: stroke-dashoffset 0.35s; |
|
|
transform: rotate(-90deg); |
|
|
transform-origin: 50% 50%; |
|
|
} |
|
|
|
|
|
.habit-streak { |
|
|
position: relative; |
|
|
} |
|
|
|
|
|
.habit-streak::after { |
|
|
content: ''; |
|
|
position: absolute; |
|
|
top: 0; |
|
|
left: 0; |
|
|
width: 100%; |
|
|
height: 100%; |
|
|
background: linear-gradient(to right, rgba(255,255,255,0.1), rgba(255,255,255,0.3)); |
|
|
opacity: 0; |
|
|
transition: opacity 0.3s; |
|
|
} |
|
|
|
|
|
.habit-streak:hover::after { |
|
|
opacity: 1; |
|
|
} |
|
|
|
|
|
.mood-emoji { |
|
|
transition: all 0.2s; |
|
|
} |
|
|
|
|
|
.mood-emoji:hover { |
|
|
transform: scale(1.2); |
|
|
} |
|
|
|
|
|
.task-item { |
|
|
transition: all 0.2s; |
|
|
} |
|
|
|
|
|
.task-item:hover { |
|
|
transform: translateY(-2px); |
|
|
box-shadow: 0 4px 6px rgba(0,0,0,0.1); |
|
|
} |
|
|
|
|
|
.calendar-day { |
|
|
transition: all 0.2s; |
|
|
} |
|
|
|
|
|
.calendar-day:hover { |
|
|
background-color: rgba(99, 102, 241, 0.2); |
|
|
} |
|
|
|
|
|
.calendar-day.today { |
|
|
background-color: rgba(99, 102, 241, 0.1); |
|
|
border: 2px solid var(--primary); |
|
|
} |
|
|
|
|
|
.calendar-day.selected { |
|
|
background-color: var(--primary); |
|
|
color: white; |
|
|
} |
|
|
|
|
|
@keyframes pulse { |
|
|
0%, 100% { |
|
|
opacity: 1; |
|
|
} |
|
|
50% { |
|
|
opacity: 0.5; |
|
|
} |
|
|
} |
|
|
|
|
|
.animate-pulse { |
|
|
animation: pulse 2s infinite; |
|
|
} |
|
|
|
|
|
|
|
|
.custom-scrollbar::-webkit-scrollbar { |
|
|
width: 6px; |
|
|
} |
|
|
|
|
|
.custom-scrollbar::-webkit-scrollbar-track { |
|
|
background: #f1f1f1; |
|
|
border-radius: 10px; |
|
|
} |
|
|
|
|
|
.custom-scrollbar::-webkit-scrollbar-thumb { |
|
|
background: #c7d2fe; |
|
|
border-radius: 10px; |
|
|
} |
|
|
|
|
|
.custom-scrollbar::-webkit-scrollbar-thumb:hover { |
|
|
background: var(--primary); |
|
|
} |
|
|
|
|
|
|
|
|
.modal { |
|
|
transition: opacity 0.3s ease; |
|
|
} |
|
|
|
|
|
.modal-overlay { |
|
|
background-color: rgba(0, 0, 0, 0.5); |
|
|
} |
|
|
</style> |
|
|
</head> |
|
|
<body class="bg-gray-50 text-gray-800 font-sans"> |
|
|
<div class="min-h-screen flex flex-col"> |
|
|
|
|
|
<header class="gradient-bg text-white shadow-lg"> |
|
|
<div class="container mx-auto px-4 py-4 flex justify-between items-center"> |
|
|
<div class="flex items-center space-x-2"> |
|
|
<i class="fas fa-compass text-2xl"></i> |
|
|
<h1 class="text-2xl font-bold">LifeFlow</h1> |
|
|
</div> |
|
|
<div class="flex items-center space-x-4"> |
|
|
<button class="p-2 rounded-full hover:bg-white hover:bg-opacity-20 transition"> |
|
|
<i class="fas fa-bell"></i> |
|
|
</button> |
|
|
<div class="relative"> |
|
|
<button id="user-menu" class="flex items-center space-x-2 focus:outline-none"> |
|
|
<div class="w-8 h-8 rounded-full bg-white flex items-center justify-center text-indigo-600 font-bold">JD</div> |
|
|
<span class="hidden md:inline" id="username-display">John Doe</span> |
|
|
</button> |
|
|
<div id="user-dropdown" class="hidden absolute right-0 mt-2 w-48 bg-white rounded-md shadow-lg py-1 z-50"> |
|
|
<a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-indigo-100">Profile</a> |
|
|
<a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-indigo-100" id="settings-btn">Settings</a> |
|
|
<a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-indigo-100" id="export-data">Export Data</a> |
|
|
<a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-indigo-100" id="import-data">Import Data</a> |
|
|
<a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-indigo-100" id="clear-data">Clear Data</a> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</header> |
|
|
|
|
|
|
|
|
<main class="flex-1 container mx-auto px-4 py-6 flex flex-col lg:flex-row gap-6"> |
|
|
|
|
|
<aside class="w-full lg:w-64 bg-white rounded-lg shadow-md p-4 h-fit lg:sticky lg:top-6"> |
|
|
<nav> |
|
|
<ul class="space-y-2"> |
|
|
<li> |
|
|
<a href="#" class="flex items-center space-x-3 p-3 rounded-lg bg-indigo-50 text-indigo-700 font-medium"> |
|
|
<i class="fas fa-home"></i> |
|
|
<span>Dashboard</span> |
|
|
</a> |
|
|
</li> |
|
|
<li> |
|
|
<a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-100 transition" id="goals-nav"> |
|
|
<i class="fas fa-bullseye"></i> |
|
|
<span>Goals</span> |
|
|
</a> |
|
|
</li> |
|
|
<li> |
|
|
<a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-100 transition" id="tasks-nav"> |
|
|
<i class="fas fa-tasks"></i> |
|
|
<span>Tasks</span> |
|
|
</a> |
|
|
</li> |
|
|
<li> |
|
|
<a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-100 transition" id="calendar-nav"> |
|
|
<i class="fas fa-calendar-alt"></i> |
|
|
<span>Calendar</span> |
|
|
</a> |
|
|
</li> |
|
|
<li> |
|
|
<a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-100 transition" id="analytics-nav"> |
|
|
<i class="fas fa-chart-line"></i> |
|
|
<span>Analytics</span> |
|
|
</a> |
|
|
</li> |
|
|
<li> |
|
|
<a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-100 transition" id="habits-nav"> |
|
|
<i class="fas fa-heartbeat"></i> |
|
|
<span>Habits</span> |
|
|
</a> |
|
|
</li> |
|
|
<li> |
|
|
<a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-100 transition" id="mood-nav"> |
|
|
<i class="fas fa-smile"></i> |
|
|
<span>Mood Tracker</span> |
|
|
</a> |
|
|
</li> |
|
|
</ul> |
|
|
</nav> |
|
|
|
|
|
<div class="mt-8"> |
|
|
<h3 class="font-medium text-gray-500 uppercase text-sm mb-2">Quick Add</h3> |
|
|
<div class="space-y-2"> |
|
|
<button class="w-full flex items-center space-x-2 p-2 rounded-lg border border-dashed border-gray-300 hover:bg-gray-50 transition" id="quick-add-task"> |
|
|
<i class="fas fa-plus text-gray-500"></i> |
|
|
<span class="text-gray-600">New Task</span> |
|
|
</button> |
|
|
<button class="w-full flex items-center space-x-2 p-2 rounded-lg border border-dashed border-gray-300 hover:bg-gray-50 transition" id="quick-add-goal"> |
|
|
<i class="fas fa-plus text-gray-500"></i> |
|
|
<span class="text-gray-600">New Goal</span> |
|
|
</button> |
|
|
<button class="w-full flex items-center space-x-2 p-2 rounded-lg border border-dashed border-gray-300 hover:bg-gray-50 transition" id="quick-add-event"> |
|
|
<i class="fas fa-plus text-gray-500"></i> |
|
|
<span class="text-gray-600">New Event</span> |
|
|
</button> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="mt-8"> |
|
|
<h3 class="font-medium text-gray-500 uppercase text-sm mb-2">Categories</h3> |
|
|
<div class="flex flex-wrap gap-2" id="categories-container"> |
|
|
<span class="px-3 py-1 bg-red-100 text-red-800 rounded-full text-xs">Health</span> |
|
|
<span class="px-3 py-1 bg-blue-100 text-blue-800 rounded-full text-xs">Career</span> |
|
|
<span class="px-3 py-1 bg-green-100 text-green-800 rounded-full text-xs">Finance</span> |
|
|
<span class="px-3 py-1 bg-purple-100 text-purple-800 rounded-full text-xs">Relationships</span> |
|
|
<span class="px-3 py-1 bg-yellow-100 text-yellow-800 rounded-full text-xs">Personal Growth</span> |
|
|
</div> |
|
|
</div> |
|
|
</aside> |
|
|
|
|
|
|
|
|
<div class="flex-1 space-y-6" id="main-content"> |
|
|
|
|
|
<section class="bg-white rounded-lg shadow-md p-6" id="dashboard-section"> |
|
|
<div class="flex flex-col md:flex-row md:items-center md:justify-between"> |
|
|
<div> |
|
|
<h2 class="text-2xl font-bold">Welcome back, <span id="welcome-name">John</span>!</h2> |
|
|
<p class="text-gray-600" id="current-date">Today is Wednesday, June 14, 2023</p> |
|
|
</div> |
|
|
<div class="mt-4 md:mt-0"> |
|
|
<button class="gradient-bg text-white px-4 py-2 rounded-lg hover:opacity-90 transition flex items-center space-x-2" id="new-task-btn"> |
|
|
<i class="fas fa-plus"></i> |
|
|
<span>New Task</span> |
|
|
</button> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="mt-6 grid grid-cols-1 md:grid-cols-3 gap-4"> |
|
|
<div class="bg-indigo-50 p-4 rounded-lg flex items-center space-x-4"> |
|
|
<div class="w-12 h-12 rounded-full bg-indigo-100 flex items-center justify-center"> |
|
|
<i class="fas fa-tasks text-indigo-600"></i> |
|
|
</div> |
|
|
<div> |
|
|
<p class="text-gray-500">Pending Tasks</p> |
|
|
<p class="text-xl font-bold" id="pending-tasks-count">12</p> |
|
|
</div> |
|
|
</div> |
|
|
<div class="bg-green-50 p-4 rounded-lg flex items-center space-x-4"> |
|
|
<div class="w-12 h-12 rounded-full bg-green-100 flex items-center justify-center"> |
|
|
<i class="fas fa-check-circle text-green-600"></i> |
|
|
</div> |
|
|
<div> |
|
|
<p class="text-gray-500">Completed Today</p> |
|
|
<p class="text-xl font-bold" id="completed-today-count">7</p> |
|
|
</div> |
|
|
</div> |
|
|
<div class="bg-purple-50 p-4 rounded-lg flex items-center space-x-4"> |
|
|
<div class="w-12 h-12 rounded-full bg-purple-100 flex items-center justify-center"> |
|
|
<i class="fas fa-fire text-purple-600"></i> |
|
|
</div> |
|
|
<div> |
|
|
<p class="text-gray-500">Current Streak</p> |
|
|
<p class="text-xl font-bold" id="current-streak-count">14 days</p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</section> |
|
|
|
|
|
|
|
|
<section class="bg-white rounded-lg shadow-md p-6" id="goals-section"> |
|
|
<div class="flex justify-between items-center mb-4"> |
|
|
<h2 class="text-xl font-bold">Your Goals Progress</h2> |
|
|
<a href="#" class="text-indigo-600 hover:underline" id="view-all-goals">View All</a> |
|
|
</div> |
|
|
|
|
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-4" id="goals-container"> |
|
|
|
|
|
</div> |
|
|
</section> |
|
|
|
|
|
|
|
|
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6"> |
|
|
|
|
|
<section class="bg-white rounded-lg shadow-md p-6" id="tasks-section"> |
|
|
<div class="flex justify-between items-center mb-4"> |
|
|
<h2 class="text-xl font-bold">Today's Tasks</h2> |
|
|
<a href="#" class="text-indigo-600 hover:underline" id="view-all-tasks">View All</a> |
|
|
</div> |
|
|
|
|
|
<div class="space-y-3 max-h-96 overflow-y-auto custom-scrollbar" id="tasks-container"> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="mt-4"> |
|
|
<button class="w-full flex items-center justify-center space-x-2 p-3 rounded-lg border border-dashed border-gray-300 hover:bg-gray-50 transition" id="add-new-task"> |
|
|
<i class="fas fa-plus text-gray-500"></i> |
|
|
<span class="text-gray-600">Add New Task</span> |
|
|
</button> |
|
|
</div> |
|
|
</section> |
|
|
|
|
|
|
|
|
<div class="space-y-6"> |
|
|
|
|
|
<section class="bg-white rounded-lg shadow-md p-6" id="calendar-section"> |
|
|
<div class="flex justify-between items-center mb-4"> |
|
|
<h2 class="text-xl font-bold" id="calendar-month-year">June 2023</h2> |
|
|
<div class="flex space-x-2"> |
|
|
<button class="p-1 rounded-full hover:bg-gray-100 transition" id="prev-month"> |
|
|
<i class="fas fa-chevron-left"></i> |
|
|
</button> |
|
|
<button class="p-1 rounded-full hover:bg-gray-100 transition" id="next-month"> |
|
|
<i class="fas fa-chevron-right"></i> |
|
|
</button> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="grid grid-cols-7 gap-1 text-center text-sm font-medium text-gray-500 mb-2"> |
|
|
<div>S</div> |
|
|
<div>M</div> |
|
|
<div>T</div> |
|
|
<div>W</div> |
|
|
<div>T</div> |
|
|
<div>F</div> |
|
|
<div>S</div> |
|
|
</div> |
|
|
|
|
|
<div class="grid grid-cols-7 gap-1" id="calendar-days"> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="mt-4 pt-4 border-t"> |
|
|
<h3 class="font-medium mb-2">Today's Events</h3> |
|
|
<div class="space-y-2" id="today-events"> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</section> |
|
|
|
|
|
|
|
|
<section class="bg-white rounded-lg shadow-md p-6" id="habits-section"> |
|
|
<div class="flex justify-between items-center mb-4"> |
|
|
<h2 class="text-xl font-bold">Daily Habits</h2> |
|
|
<a href="#" class="text-indigo-600 hover:underline" id="view-all-habits">View All</a> |
|
|
</div> |
|
|
|
|
|
<div class="space-y-4" id="habits-container"> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="mt-4"> |
|
|
<button class="w-full flex items-center justify-center space-x-2 p-3 rounded-lg border border-dashed border-gray-300 hover:bg-gray-50 transition" id="add-new-habit"> |
|
|
<i class="fas fa-plus text-gray-500"></i> |
|
|
<span class="text-gray-600">Add New Habit</span> |
|
|
</button> |
|
|
</div> |
|
|
</section> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<section class="bg-white rounded-lg shadow-md p-6" id="mood-section"> |
|
|
<div class="flex justify-between items-center mb-4"> |
|
|
<h2 class="text-xl font-bold">Mood & Energy Tracker</h2> |
|
|
<a href="#" class="text-indigo-600 hover:underline" id="view-mood-history">View History</a> |
|
|
</div> |
|
|
|
|
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-6"> |
|
|
|
|
|
<div> |
|
|
<h3 class="font-medium mb-3">How are you feeling today?</h3> |
|
|
<div class="grid grid-cols-5 gap-2"> |
|
|
<button class="mood-emoji flex flex-col items-center p-3 rounded-lg hover:bg-gray-50 transition" data-mood="awful"> |
|
|
<span class="text-3xl">😭</span> |
|
|
<span class="text-xs mt-1">Awful</span> |
|
|
</button> |
|
|
<button class="mood-emoji flex flex-col items-center p-3 rounded-lg hover:bg-gray-50 transition" data-mood="bad"> |
|
|
<span class="text-3xl">😞</span> |
|
|
<span class="text-xs mt-1">Bad</span> |
|
|
</button> |
|
|
<button class="mood-emoji flex flex-col items-center p-3 rounded-lg hover:bg-gray-50 transition" data-mood="okay"> |
|
|
<span class="text-3xl">😐</span> |
|
|
<span class="text-xs mt-1">Okay</span> |
|
|
</button> |
|
|
<button class="mood-emoji flex flex-col items-center p-3 rounded-lg hover:bg-gray-50 transition" data-mood="good"> |
|
|
<span class="text-3xl">😊</span> |
|
|
<span class="text-xs mt-1">Good</span> |
|
|
</button> |
|
|
<button class="mood-emoji flex flex-col items-center p-3 rounded-lg hover:bg-gray-50 transition" data-mood="great"> |
|
|
<span class="text-3xl">😁</span> |
|
|
<span class="text-xs mt-1">Great</span> |
|
|
</button> |
|
|
</div> |
|
|
|
|
|
<div class="mt-4"> |
|
|
<label for="mood-notes" class="block text-sm font-medium text-gray-700 mb-1">Notes</label> |
|
|
<textarea id="mood-notes" rows="2", class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-indigo-500 focus:border-indigo-500" placeholder="Any specific reasons for your mood today?"></textarea> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div> |
|
|
<h3 class="font-medium mb-3">Energy Levels</h3> |
|
|
<div class="space-y-4"> |
|
|
<div> |
|
|
<label class="block text-sm font-medium text-gray-700 mb-1">Morning</label> |
|
|
<div class="flex items-center space-x-2" id="morning-energy"> |
|
|
<button class="w-6 h-6 rounded-full bg-gray-200 hover:bg-gray-300 transition" data-energy="1"></button> |
|
|
<button class="w-6 h-6 rounded-full bg-gray-300 hover:bg-gray-400 transition" data-energy="2"></button> |
|
|
<button class="w-6 h-6 rounded-full bg-yellow-200 hover:bg-yellow-300 transition" data-energy="3"></button> |
|
|
<button class="w-6 h-6 rounded-full bg-yellow-400 hover:bg-yellow-500 transition" data-energy="4"></button> |
|
|
<button class="w-6 h-6 rounded-full bg-green-400 hover:bg-green-500 transition" data-energy="5"></button> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div> |
|
|
<label class="block text-sm font-medium text-gray-700 mb-1">Afternoon</label> |
|
|
<div class="flex items-center space-x-2" id="afternoon-energy"> |
|
|
<button class="w-6 h-6 rounded-full bg-gray-200 hover:bg-gray-300 transition" data-energy="1"></button> |
|
|
<button class="w-6 h-6 rounded-full bg-gray-300 hover:bg-gray-400 transition" data-energy="2"></button> |
|
|
<button class="w-6 h-6 rounded-full bg-yellow-200 hover:bg-yellow-300 transition" data-energy="3"></button> |
|
|
<button class="w-6 h-6 rounded-full bg-yellow-400 hover:bg-yellow-500 transition" data-energy="4"></button> |
|
|
<button class="w-6 h-6 rounded-full bg-green-400 hover:bg-green-500 transition" data-energy="5"></button> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div> |
|
|
<label class="block text-sm font-medium text-gray-700 mb-1">Evening</label> |
|
|
<div class="flex items-center space-x-2" id="evening-energy"> |
|
|
<button class="w-6 h-6 rounded-full bg-gray-200 hover:bg-gray-300 transition" data-energy="1"></button> |
|
|
<button class="w-6 h-6 rounded-full bg-gray-300 hover:bg-gray-400 transition" data-energy="2"></button> |
|
|
<button class="w-6 h-6 rounded-full bg-yellow-200 hover:bg-yellow-300 transition" data-energy="3"></button> |
|
|
<button class="w-6 h-6 rounded-full bg-yellow-400 hover:bg-yellow-500 transition" data-energy="4"></button> |
|
|
<button class="w-6 h-6 rounded-full bg-green-400 hover:bg-green-500 transition" data-energy="5"></button> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="mt-4"> |
|
|
<label for="energy-notes", class="block text-sm font-medium text-gray-700 mb-1">Notes</label> |
|
|
<textarea id="energy-notes" rows="2", class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-indigo-500 focus:border-indigo-500" placeholder="What affected your energy levels today?"></textarea> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="mt-6"> |
|
|
<button class="gradient-bg text-white px-4 py-2 rounded-lg hover:opacity-90 transition" id="save-mood-tracker"> |
|
|
Save Today's Tracking |
|
|
</button> |
|
|
</div> |
|
|
</section> |
|
|
|
|
|
|
|
|
<section class="bg-white rounded-lg shadow-md p-6" id="analytics-section"> |
|
|
<div class="flex justify-between items-center mb-4"> |
|
|
<h2 class="text-xl font-bold">Productivity Insights</h2> |
|
|
<a href="#" class="text-indigo-600 hover:underline">View Details</a> |
|
|
</div> |
|
|
|
|
|
<div class="grid grid-cols-1 md:grid-cols-3 gap-4"> |
|
|
<div class="bg-indigo-50 p-4 rounded-lg"> |
|
|
<div class="flex justify-between items-start"> |
|
|
<div> |
|
|
<p class="text-gray-500">Focus Time</p> |
|
|
<p class="text-2xl font-bold" id="focus-time">3.2 <span class="text-lg">hours</span></p> |
|
|
</div> |
|
|
<div class="w-12 h-12 rounded-full bg-indigo-100 flex items-center justify-center"> |
|
|
<i class="fas fa-clock text-indigo-600"></i> |
|
|
</div> |
|
|
</div> |
|
|
<div class="mt-2"> |
|
|
<div class="h-2 bg-gray-200 rounded-full"> |
|
|
<div class="h-2 bg-indigo-600 rounded-full" style="width: 64%"></div> |
|
|
</div> |
|
|
<p class="text-xs text-gray-500 mt-1">64% of daily goal</p> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="bg-green-50 p-4 rounded-lg"> |
|
|
<div class="flex justify-between items-start"> |
|
|
<div> |
|
|
<p class="text-gray-500">Tasks Completed</p> |
|
|
<p class="text-2xl font-bold" id="tasks-completed">7 <span class="text-lg">tasks</span></p> |
|
|
</div> |
|
|
<div class="w-12 h-12 rounded-full bg-green-100 flex items-center justify-center"> |
|
|
<i class="fas fa-check-circle text-green-600"></i> |
|
|
</div> |
|
|
</div> |
|
|
<div class="mt-2"> |
|
|
<div class="h-2 bg-gray-200 rounded-full"> |
|
|
<div class="h-2 bg-green-600 rounded-full" style="width: 58%"></div> |
|
|
</div> |
|
|
<p class="text-xs text-gray-500 mt-1">58% of daily goal</p> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="bg-purple-50 p-4 rounded-lg"> |
|
|
<div class="flex justify-between items-start"> |
|
|
<div> |
|
|
<p class="text-gray-500">Habit Streak</p> |
|
|
<p class="text-2xl font-bold" id="habit-streak-count">14 <span class="text-lg">days</span></p> |
|
|
</div> |
|
|
<div class="w-12 h-12 rounded-full bg-purple-100 flex items-center justify-center"> |
|
|
<i class="fas fa-fire text-purple-600"></i> |
|
|
</div> |
|
|
</div> |
|
|
<div class="mt-2"> |
|
|
<div class="h-2 bg-gray-200 rounded-full"> |
|
|
<div class="h-2 bg-purple-600 rounded-full" style="width: 47%"></div> |
|
|
</div> |
|
|
<p class="text-xs text-gray-500 mt-1">47% of monthly goal</p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="mt-6"> |
|
|
<h3 class="font-medium mb-2">Weekly Performance</h3> |
|
|
<div class="h-64 bg-gray-50 rounded-lg p-4"> |
|
|
<canvas id="productivityChart"></canvas> |
|
|
</div> |
|
|
</div> |
|
|
</section> |
|
|
</div> |
|
|
</main> |
|
|
|
|
|
|
|
|
<footer class="bg-white border-t py-6"> |
|
|
<div class="container mx-auto px-4"> |
|
|
<div class="flex flex-col md:flex-row justify-between items-center"> |
|
|
<div class="flex items-center space-x-2 mb-4 md:mb-0"> |
|
|
<i class="fas fa-compass text-indigo-600"></i> |
|
|
<span class="font-bold">LifeFlow</span> |
|
|
</div> |
|
|
<div class="flex space-x-6"> |
|
|
<a href="#" class="text-gray-600 hover:text-indigo-600 transition">Privacy</a> |
|
|
<a href="#" class="text-gray-600 hover:text-indigo-600 transition">Terms</a> |
|
|
<a href="#" class="text-gray-600 hover:text-indigo-600 transition">Help</a> |
|
|
<a href="#" class="text-gray-600 hover:text-indigo-600 transition">Contact</a> |
|
|
</div> |
|
|
</div> |
|
|
<div class="mt-6 text-center text-sm text-gray-500"> |
|
|
© 2023 LifeFlow. All rights reserved. |
|
|
</div> |
|
|
</div> |
|
|
</footer> |
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div id="task-modal" class="fixed inset-0 z-50 flex items-center justify-center hidden modal"> |
|
|
<div class="modal-overlay absolute inset-0 bg-gray-900 opacity-50"></div> |
|
|
<div class="bg-white rounded-lg shadow-xl z-50 w-full max-w-md mx-4"> |
|
|
<div class="p-6"> |
|
|
<h3 class="text-lg font-bold mb-4" id="task-modal-title">Add New Task</h3> |
|
|
<form id="task-form"> |
|
|
<input type="hidden" id="task-id"> |
|
|
<div class="mb-4"> |
|
|
<label for="task-title" class="block text-sm font-medium text-gray-700 mb-1">Title</label> |
|
|
<input type="text" id="task-title" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-indigo-500 focus:border-indigo-500" required> |
|
|
</div> |
|
|
<div class="mb-4"> |
|
|
<label for="task-description" class="block text-sm font-medium text-gray-700 mb-1">Description</label> |
|
|
<textarea id="task-description" rows="3", class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-indigo-500 focus:border-indigo-500"></textarea> |
|
|
</div> |
|
|
<div class="grid grid-cols-2 gap-4 mb-4"> |
|
|
<div> |
|
|
<label for="task-date" class="block text-sm font-medium text-gray-700 mb-1">Date</label> |
|
|
<input type="date" id="task-date" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-indigo-500 focus:border-indigo-500" required> |
|
|
</div> |
|
|
<div> |
|
|
<label for="task-time" class="block text-sm font-medium text-gray-700 mb-1">Time</label> |
|
|
<input type="time" id="task-time" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-indigo-500 focus:border-indigo-500"> |
|
|
</div> |
|
|
</div> |
|
|
<div class="mb-4"> |
|
|
<label for="task-category" class="block text-sm font-medium text-gray-700 mb-1">Category</label> |
|
|
<select id="task-category" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-indigo-500 focus:border-indigo-500"> |
|
|
<option value="work">Work</option> |
|
|
<option value="health">Health</option> |
|
|
<option value="personal">Personal</option> |
|
|
<option value="learning">Learning</option> |
|
|
<option value="other">Other</option> |
|
|
</select> |
|
|
</div> |
|
|
<div class="mb-4"> |
|
|
<label for="task-priority" class="block text-sm font-medium text-gray-700 mb-1">Priority</label> |
|
|
<select id="task-priority" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-indigo-500 focus:border-indigo-500"> |
|
|
<option value="low">Low</option> |
|
|
<option value="medium" selected>Medium</option> |
|
|
<option value="high">High</option> |
|
|
</select> |
|
|
</div> |
|
|
<div class="flex justify-end space-x-3"> |
|
|
<button type="button" class="px-4 py-2 border border-gray-300 rounded-lg hover:bg-gray-50 transition" id="cancel-task"> |
|
|
Cancel |
|
|
</button> |
|
|
<button type="submit" class="gradient-bg text-white px-4 py-2 rounded-lg hover:opacity-90 transition"> |
|
|
Save Task |
|
|
</button> |
|
|
</div> |
|
|
</form> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div id="goal-modal" class="fixed inset-0 z-50 flex items-center justify-center hidden modal"> |
|
|
<div class="modal-overlay absolute inset-0 bg-gray-900 opacity-50"></div> |
|
|
<div class="bg-white rounded-lg shadow-xl z-50 w-full max-w-md mx-4"> |
|
|
<div class="p-6"> |
|
|
<h3 class="text-lg font-bold mb-4" id="goal-modal-title">Add New Goal</h3> |
|
|
<form id="goal-form"> |
|
|
<input type="hidden" id="goal-id"> |
|
|
<div class="mb-4"> |
|
|
<label for="goal-title" class="block text-sm font-medium text-gray-700 mb-1">Title</label> |
|
|
<input type="text" id="goal-title" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-indigo-500 focus:border-indigo-500" required> |
|
|
</div> |
|
|
<div class="mb-4"> |
|
|
<label for="goal-description" class="block text-sm font-medium text-gray-700 mb-1">Description</label> |
|
|
<textarea id="goal-description" rows="3", class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-indigo-500 focus:border-indigo-500"></textarea> |
|
|
</div> |
|
|
<div class="grid grid-cols-2 gap-4 mb-4"> |
|
|
<div> |
|
|
<label for="goal-start-date" class="block text-sm font-medium text-gray-700 mb-1">Start Date</label> |
|
|
<input type="date", id="goal-start-date" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-indigo-500 focus:border-indigo-500" required> |
|
|
</div> |
|
|
<div> |
|
|
<label for="goal-end-date" class="block text-sm font-medium text-gray-700 mb-1">End Date</label> |
|
|
<input type="date", id="goal-end-date" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-indigo-500 focus:border-indigo-500" required> |
|
|
</div> |
|
|
</div> |
|
|
<div class="mb-4"> |
|
|
<label for="goal-category" class="block text-sm font-medium text-gray-700 mb-1">Category</label> |
|
|
<select id="goal-category" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-indigo-500 focus:border-indigo-500"> |
|
|
<option value="health">Health</option> |
|
|
<option value="career">Career</option> |
|
|
<option value="finance">Finance</option> |
|
|
<option value="relationships">Relationships</option> |
|
|
<option value="personal-growth">Personal Growth</option> |
|
|
<option value="other">Other</option> |
|
|
</select> |
|
|
</div> |
|
|
<div class="mb-4"> |
|
|
<label for="goal-type" class="block text-sm font-medium text-gray-700 mb-1">Goal Type</ |
|
|
</html> |