Files
calories-tracker/index.html
T

237 lines
10 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Daily Calorie Tracker</title>
<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="auth.css">
<link rel="stylesheet" href="settings.css">
</head>
<body>
<!-- Authentication Header -->
<header class="auth-header">
<div class="auth-container">
<div class="logo">
<h2>🍎 Food Tracker</h2>
</div>
<!-- Authentication Forms -->
<div id="auth-section" class="auth-section">
<!-- Login Form -->
<div id="login-form" class="auth-form">
<h3>Login</h3>
<form id="loginForm">
<div class="form-group">
<input type="email" id="loginEmail" placeholder="Email" required>
</div>
<div class="form-group">
<input type="password" id="loginPassword" placeholder="Password" required>
</div>
<button type="submit" class="auth-btn">Login</button>
<p class="auth-switch">
Don't have an account?
<a href="#" id="showRegister">Register here</a>
</p>
</form>
</div>
<!-- Register Form -->
<div id="register-form" class="auth-form hidden">
<h3>Register</h3>
<form id="registerForm">
<div class="form-group">
<input type="text" id="registerName" placeholder="Name" required>
</div>
<div class="form-group">
<input type="email" id="registerEmail" placeholder="Email" required>
</div>
<div class="form-group">
<input type="password" id="registerPassword" placeholder="Password" required minlength="8">
</div>
<button type="submit" class="auth-btn">Register</button>
<p class="auth-switch">
Already have an account?
<a href="#" id="showLogin">Login here</a>
</p>
</form>
</div>
</div>
<!-- User Info (shown when logged in) -->
<div id="user-info" class="user-info hidden">
<div class="user-details">
<span id="userName">Welcome, User!</span>
<button id="settingsBtn" class="logout-btn">Settings</button>
<button id="logoutBtn" class="logout-btn">Logout</button>
</div>
</div>
</div>
</header>
<!-- Loading Overlay -->
<div id="loading-overlay" class="loading-overlay hidden">
<div class="loading-spinner"></div>
<p>Loading...</p>
</div>
<!-- Main App Content -->
<main id="app-content" class="hidden">
<div class="container">
<div class="date-display" id="currentDate"></div>
<div class="calories-banner">
<div class="calories-number" id="caloriesCounter">0</div>
<div class="calories-text">Calories Today</div>
</div>
<div class="nutrition-summary" id="nutritionSummary">
<div class="nutrition-item">
<div class="nutrition-label">Protein (g)</div>
<div class="nutrition-value" id="proteinValue">0</div>
<div class="nutrition-label hidden" id="proteinGoalText">of 190</div>
</div>
<div class="nutrition-item">
<div class="nutrition-label">Fat (g)</div>
<div class="nutrition-value" id="fatValue">0</div>
<div class="nutrition-label hidden" id="fatGoalText">of 190</div>
</div>
<div class="nutrition-item">
<div class="nutrition-label">Carbs (g)</div>
<div class="nutrition-value" id="carboValue">0</div>
<div class="nutrition-label hidden" id="carboGoalText">of 190</div>
</div>
<div class="nutrition-item">
<div class="nutrition-label">Fiber (g)</div>
<div class="nutrition-value" id="fiberValue">0</div>
<div class="nutrition-label hidden" id="fiberGoalText">of 190</div>
</div>
</div>
<!-- Food Search Input -->
<div class="add-food-section">
<h2 class="add-food-title">Add Food</h2>
<div class="add-food-form">
<div class="form-group">
<label for="foodSelect">Food Item</label>
<div class="food-search-container">
<input
type="text"
class="food-search-input"
id="foodSearchInput"
placeholder="Search food (e.g., apple, chicken breast, rice...)"
autocomplete="off"
>
<div class="search-loading" id="searchLoading"></div>
<!-- Search Results Overlay -->
<div class="search-results" id="searchResults">
<!-- Results will be populated here -->
</div>
</div>
</div>
<div class="form-group">
<label for="gramAmount">Amount (grams)</label>
<input type="number" id="gramAmount" min="1" step="1" value="100">
</div>
<button class="add-btn" id="add-food-btn">Add Food</button>
</div>
<div class="display-none" id="food-preview">
<div class="nutrition-summary">
<div class="nutrition-item">
<div class="nutrition-value" id="calorieValuePreview">0</div>
<div class="nutrition-label">Calories</div>
</div>
<div class="nutrition-item">
<div class="nutrition-value" id="proteinValuePreview">0</div>
<div class="nutrition-label">Protein (g)</div>
</div>
<div class="nutrition-item">
<div class="nutrition-value" id="fatValuePreview">0</div>
<div class="nutrition-label">Fat (g)</div>
</div>
<div class="nutrition-item">
<div class="nutrition-value" id="carboValuePreview">0</div>
<div class="nutrition-label">Carbs (g)</div>
</div>
<div class="nutrition-item">
<div class="nutrition-value" id="fiberValuePreview">0</div>
<div class="nutrition-label">Fiber (g)</div>
</div>
</div>
</div>
</div>
<div class="food-table-section">
<div class="table-title">Food Log</div>
<div class="table-wrapper">
<table class="food-table">
<thead>
<tr>
<th class="hidden-column">ID</th>
<th>Time</th>
<th>Food</th>
<th>Grams</th>
<th>Calories</th>
<th>Protein (g)</th>
<th>Fat (g)</th>
<th>Carbs (g)</th>
<th>Fiber (g)</th>
<th>Action</th>
</tr>
</thead>
<tbody id="foodTableBody">
<!-- Food entries will be added here -->
</tbody>
</table>
</div>
</div>
<div class="calendar-section">
<div class="calendar-header">
<button class="calendar-nav" id="previous-month-btn"></button>
<div class="calendar-title" id="calendarTitle">Month Year</div>
<button class="calendar-nav" id="next-month-btn"></button>
</div>
<div class="calendar-grid" id="calendarGrid">
<!-- Calendar will be generated here -->
</div>
</div>
</div>
</main>
<!-- Settings -->
<section id="settings-content" class="hidden">
<div class="container">
<h1>⚙️ Settings</h1>
<div class="date-display">Define your macros goal</div>
<form id="settingsForm" class="settings-form">
<div class="form-group">
<label for="proteinGoal">Protein goal</label>
<input type="number" id="proteinGoal" placeholder="Proteins in grams" required>
</div>
<div class="form-group">
<label for="proteinGoal">Fat goal</label>
<input type="number" id="fatGoal" placeholder="Fat in grams" required>
</div>
<div class="form-group">
<label for="proteinGoal">Carbs goal</label>
<input type="number" id="carboGoal" placeholder="Carbo in grams" required>
</div>
<div class="form-group">
<label for="proteinGoal">Fiber goal</label>
<input type="number" id="fiberGoal" placeholder="Fiber in grams" required>
</div>
<button type="submit" class="settings-btn">Save</button>
</form>
</div>
</section>
<script type="module" src="src/index.ts"></script>
</body>
</html>