nutritrack / index.html
Xacodavt's picture
Add 1 files
1d99735 verified
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>NutriTrack | Login Profissional</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>
.auth-bg {
background: linear-gradient(135deg, rgba(16, 185, 129, 0.1) 0%, rgba(59, 130, 246, 0.1) 100%);
}
.auth-card {
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05);
transition: all 0.3s ease;
}
.auth-card:hover {
box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
}
.input-field:focus {
box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.2);
}
.social-btn:hover {
transform: translateY(-2px);
}
.modal {
transition: opacity 0.3s ease, visibility 0.3s ease;
}
.modal-content {
transform: translateY(20px);
transition: transform 0.3s ease;
}
.modal.active {
opacity: 1;
visibility: visible;
}
.modal.active .modal-content {
transform: translateY(0);
}
</style>
</head>
<body class="auth-bg min-h-screen flex items-center justify-center p-4">
<div class="w-full max-w-md">
<!-- Logo -->
<div class="text-center mb-8">
<div class="flex items-center justify-center mb-4">
<i class="fas fa-utensils text-4xl text-green-500 mr-3"></i>
<span class="text-3xl font-bold text-gray-800">NutriTrack Pro</span>
</div>
<p class="text-gray-600">Sistema profissional de acompanhamento nutricional</p>
</div>
<!-- Login Card -->
<div class="auth-card bg-white rounded-xl p-8">
<h1 class="text-2xl font-bold text-gray-800 mb-1">Bem-vindo de volta</h1>
<p class="text-gray-500 mb-6">Faça login na sua conta profissional</p>
<form>
<!-- Email Field -->
<div class="mb-5">
<label for="email" class="block text-sm font-medium text-gray-700 mb-1">E-mail profissional</label>
<div class="relative">
<div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none">
<i class="fas fa-envelope text-gray-400"></i>
</div>
<input type="email" id="email" class="input-field w-full pl-10 pr-3 py-3 rounded-lg border border-gray-300 focus:border-green-500 focus:outline-none transition" placeholder="seu@email.com">
</div>
</div>
<!-- Password Field -->
<div class="mb-5">
<div class="flex justify-between items-center mb-1">
<label for="password" class="block text-sm font-medium text-gray-700">Senha</label>
<a href="#" id="forgotPassword" class="text-xs text-green-600 hover:text-green-700">Esqueceu a senha?</a>
</div>
<div class="relative">
<div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none">
<i class="fas fa-lock text-gray-400"></i>
</div>
<input type="password" id="password" class="input-field w-full pl-10 pr-3 py-3 rounded-lg border border-gray-300 focus:border-green-500 focus:outline-none transition" placeholder="••••••••">
<button type="button" class="absolute right-3 top-3 text-gray-400 hover:text-gray-500" id="togglePassword">
<i class="fas fa-eye"></i>
</button>
</div>
</div>
<!-- Remember Me -->
<div class="flex items-center mb-6">
<input type="checkbox" id="remember" class="h-4 w-4 text-green-600 focus:ring-green-500 border-gray-300 rounded">
<label for="remember" class="ml-2 block text-sm text-gray-700">Manter conectado</label>
</div>
<!-- Submit Button -->
<button type="submit" class="w-full bg-green-600 hover:bg-green-700 text-white font-medium py-3 px-4 rounded-lg transition duration-300 flex items-center justify-center">
<span>Entrar</span>
<i class="fas fa-arrow-right ml-2"></i>
</button>
</form>
<!-- Divider -->
<div class="flex items-center my-6">
<div class="flex-1 border-t border-gray-200"></div>
<div class="px-3 text-gray-500 text-sm">OU</div>
<div class="flex-1 border-t border-gray-200"></div>
</div>
<!-- Social Login -->
<div class="grid grid-cols-2 gap-3 mb-6">
<a href="#" class="social-btn bg-blue-50 hover:bg-blue-100 text-blue-600 py-2 px-4 rounded-lg transition flex items-center justify-center">
<i class="fab fa-google text-lg mr-2"></i>
<span class="text-sm">Google</span>
</a>
<a href="#" class="social-btn bg-blue-800 hover:bg-blue-900 text-white py-2 px-4 rounded-lg transition flex items-center justify-center">
<i class="fab fa-microsoft text-lg mr-2"></i>
<span class="text-sm">Microsoft</span>
</a>
</div>
<!-- Sign Up Link -->
<div class="text-center text-sm text-gray-600">
Não tem uma conta? <a href="#" class="text-green-600 hover:text-green-700 font-medium">Cadastre-se</a>
</div>
</div>
<!-- Footer -->
<div class="mt-8 text-center text-xs text-gray-500">
<p>© 2023 NutriTrack Pro. Todos os direitos reservados.</p>
<div class="mt-2">
<a href="#" class="hover:text-gray-700">Termos de uso</a>
<span class="mx-1"></span>
<a href="#" class="hover:text-gray-700">Política de privacidade</a>
</div>
</div>
</div>
<!-- Modal de Recuperação de Senha -->
<div id="passwordModal" class="modal fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center p-4 opacity-0 invisible z-50">
<div class="modal-content bg-white rounded-xl p-6 w-full max-w-md">
<div class="flex justify-between items-center mb-4">
<h3 class="text-xl font-bold text-gray-800">Recuperar senha</h3>
<button id="closeModal" class="text-gray-500 hover:text-gray-700">
<i class="fas fa-times"></i>
</button>
</div>
<p class="text-gray-600 mb-5">Digite seu e-mail cadastrado para receber as instruções de recuperação de senha.</p>
<div class="mb-5">
<label for="recoveryEmail" class="block text-sm font-medium text-gray-700 mb-1">E-mail</label>
<div class="relative">
<div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none">
<i class="fas fa-envelope text-gray-400"></i>
</div>
<input type="email" id="recoveryEmail" class="w-full pl-10 pr-3 py-3 rounded-lg border border-gray-300 focus:border-green-500 focus:outline-none transition" placeholder="seu@email.com">
</div>
</div>
<button id="sendRecovery" class="w-full bg-green-600 hover:bg-green-700 text-white font-medium py-3 px-4 rounded-lg transition duration-300">
Enviar instruções
</button>
</div>
</div>
<script>
// Toggle password visibility
document.getElementById('togglePassword').addEventListener('click', function() {
const passwordInput = document.getElementById('password');
const icon = this.querySelector('i');
if (passwordInput.type === 'password') {
passwordInput.type = 'text';
icon.classList.replace('fa-eye', 'fa-eye-slash');
} else {
passwordInput.type = 'password';
icon.classList.replace('fa-eye-slash', 'fa-eye');
}
});
// Form submission
document.querySelector('form').addEventListener('submit', function(e) {
e.preventDefault();
// Here you would typically handle the login logic
console.log('Login form submitted');
// Redirect to dashboard after successful login
// window.location.href = 'dashboard.html';
});
// Password recovery modal
const forgotPassword = document.getElementById('forgotPassword');
const passwordModal = document.getElementById('passwordModal');
const closeModal = document.getElementById('closeModal');
const sendRecovery = document.getElementById('sendRecovery');
// Show modal when "Forgot password" is clicked
forgotPassword.addEventListener('click', function(e) {
e.preventDefault();
passwordModal.classList.add('active');
});
// Close modal when X is clicked
closeModal.addEventListener('click', function() {
passwordModal.classList.remove('active');
});
// Close modal when clicking outside
passwordModal.addEventListener('click', function(e) {
if (e.target === passwordModal) {
passwordModal.classList.remove('active');
}
});
// Handle recovery email submission
sendRecovery.addEventListener('click', function() {
const email = document.getElementById('recoveryEmail').value;
if (!email) {
alert('Por favor, insira seu e-mail.');
return;
}
// Here you would typically send a recovery email
console.log('Recovery email sent to:', email);
// Show success message
alert('Um e-mail com as instruções de recuperação foi enviado para ' + email);
// Close modal
passwordModal.classList.remove('active');
});
</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=Xacodavt/nutritrack" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>