|
<!DOCTYPE html> |
|
<html lang="en"> |
|
<head> |
|
<meta charset="UTF-8"> |
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
<title>Animated Login Form</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> |
|
@keyframes float { |
|
0%, 100% { |
|
transform: translateY(0); |
|
} |
|
50% { |
|
transform: translateY(-20px); |
|
} |
|
} |
|
|
|
@keyframes fadeIn { |
|
from { |
|
opacity: 0; |
|
transform: translateY(20px); |
|
} |
|
to { |
|
opacity: 1; |
|
transform: translateY(0); |
|
} |
|
} |
|
|
|
@keyframes matrix { |
|
0% { |
|
transform: translateY(0); |
|
} |
|
100% { |
|
transform: translateY(-100%); |
|
} |
|
} |
|
|
|
.matrix-bg { |
|
position: absolute; |
|
top: 0; |
|
left: 0; |
|
width: 100%; |
|
height: 100%; |
|
overflow: hidden; |
|
z-index: -1; |
|
background-color: #000; |
|
} |
|
|
|
.matrix-column { |
|
position: relative; |
|
display: inline-block; |
|
width: 1.2ch; |
|
color: #0f0; |
|
font-family: monospace; |
|
font-size: 16px; |
|
text-shadow: 0 0 5px #0f0; |
|
animation: matrix 5s linear infinite; |
|
animation-delay: calc(var(--delay) * 0.1s); |
|
} |
|
|
|
.form-container { |
|
perspective: 1000px; |
|
} |
|
|
|
.form-card { |
|
transition: transform 0.6s, box-shadow 0.3s; |
|
transform-style: preserve-3d; |
|
} |
|
|
|
.form-card:hover { |
|
transform: translateY(-5px); |
|
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3); |
|
} |
|
|
|
.float-animation { |
|
animation: float 6s ease-in-out infinite; |
|
} |
|
|
|
.fade-in { |
|
animation: fadeIn 0.8s ease-out forwards; |
|
} |
|
|
|
.delay-1 { |
|
animation-delay: 0.2s; |
|
} |
|
|
|
.delay-2 { |
|
animation-delay: 0.4s; |
|
} |
|
|
|
.delay-3 { |
|
animation-delay: 0.6s; |
|
} |
|
|
|
.glow-text { |
|
text-shadow: 0 0 10px rgba(74, 222, 128, 0.7); |
|
} |
|
|
|
.glow-input:focus { |
|
box-shadow: 0 0 0 2px rgba(74, 222, 128, 0.5); |
|
} |
|
|
|
.toggle-form { |
|
position: relative; |
|
overflow: hidden; |
|
} |
|
|
|
.toggle-form::after { |
|
content: ''; |
|
position: absolute; |
|
bottom: 0; |
|
left: 0; |
|
width: 100%; |
|
height: 3px; |
|
background: linear-gradient(90deg, #4ade80, #3b82f6); |
|
transform: scaleX(0); |
|
transform-origin: left; |
|
transition: transform 0.3s ease; |
|
} |
|
|
|
.toggle-form.active::after { |
|
transform: scaleX(1); |
|
} |
|
</style> |
|
</head> |
|
<body class="bg-gray-900 text-white min-h-screen flex items-center justify-center p-4 overflow-hidden"> |
|
|
|
<div class="matrix-bg" id="matrixBg"></div> |
|
|
|
<div class="container mx-auto max-w-6xl"> |
|
<div class="flex flex-col lg:flex-row items-center justify-center gap-8"> |
|
|
|
<div class="form-container w-full lg:w-1/2 fade-in"> |
|
<div class="form-card bg-gray-800 bg-opacity-70 backdrop-blur-md rounded-xl p-8 shadow-2xl border border-gray-700 float-animation"> |
|
<div class="flex justify-between items-center mb-8"> |
|
<h2 class="text-3xl font-bold glow-text">Welcome Back</h2> |
|
<div class="flex space-x-1 bg-gray-700 rounded-full p-1"> |
|
<button class="toggle-form px-4 py-2 rounded-full active" id="loginTab">Sign In</button> |
|
<button class="toggle-form px-4 py-2 rounded-full" id="signupTab">Sign Up</button> |
|
</div> |
|
</div> |
|
|
|
<form id="loginForm" class="space-y-6"> |
|
<div class="space-y-2 fade-in delay-1"> |
|
<label class="block text-sm font-medium text-gray-300">Email</label> |
|
<input type="email" class="w-full px-4 py-3 bg-gray-700 border border-gray-600 rounded-lg focus:outline-none glow-input transition-all" placeholder="[email protected]" required> |
|
</div> |
|
|
|
<div class="space-y-2 fade-in delay-2"> |
|
<label class="block text-sm font-medium text-gray-300">Password</label> |
|
<input type="password" class="w-full px-4 py-3 bg-gray-700 border border-gray-600 rounded-lg focus:outline-none glow-input transition-all" placeholder="β’β’β’β’β’β’β’β’" required> |
|
</div> |
|
|
|
<div class="flex items-center justify-between fade-in delay-3"> |
|
<div class="flex items-center"> |
|
<input type="checkbox" id="remember" class="w-4 h-4 text-green-500 bg-gray-700 border-gray-600 rounded focus:ring-green-500"> |
|
<label for="remember" class="ml-2 text-sm text-gray-300">Remember me</label> |
|
</div> |
|
<a href="#" class="text-sm text-green-400 hover:text-green-300 transition">Forgot password?</a> |
|
</div> |
|
|
|
<button type="submit" class="w-full py-3 px-4 bg-gradient-to-r from-green-500 to-blue-500 text-white font-medium rounded-lg hover:from-green-600 hover:to-blue-600 transition-all transform hover:scale-105 fade-in delay-3"> |
|
Sign In |
|
</button> |
|
|
|
<div class="text-center text-gray-400 fade-in delay-3"> |
|
<p>Or continue with</p> |
|
</div> |
|
|
|
<div class="flex justify-center space-x-4 fade-in delay-3"> |
|
<button type="button" class="p-2 bg-gray-700 rounded-full hover:bg-gray-600 transition"> |
|
<i class="fab fa-google text-red-400"></i> |
|
</button> |
|
<button type="button" class="p-2 bg-gray-700 rounded-full hover:bg-gray-600 transition"> |
|
<i class="fab fa-facebook-f text-blue-400"></i> |
|
</button> |
|
<button type="button" class="p-2 bg-gray-700 rounded-full hover:bg-gray-600 transition"> |
|
<i class="fab fa-twitter text-blue-300"></i> |
|
</button> |
|
</div> |
|
</form> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="form-container w-full lg:w-1/2 fade-in delay-1"> |
|
<div class="form-card bg-gray-800 bg-opacity-70 backdrop-blur-md rounded-xl p-8 shadow-2xl border border-gray-700 float-animation" style="animation-delay: 0.5s;"> |
|
<div class="mb-8"> |
|
<h2 class="text-3xl font-bold glow-text">Create Account</h2> |
|
<p class="text-gray-400">Join our community today</p> |
|
</div> |
|
|
|
<form id="signupForm" class="space-y-6"> |
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 fade-in delay-1"> |
|
<div class="space-y-2"> |
|
<label class="block text-sm font-medium text-gray-300">First Name</label> |
|
<input type="text" class="w-full px-4 py-3 bg-gray-700 border border-gray-600 rounded-lg focus:outline-none glow-input transition-all" placeholder="John" required> |
|
</div> |
|
<div class="space-y-2"> |
|
<label class="block text-sm font-medium text-gray-300">Last Name</label> |
|
<input type="text" class="w-full px-4 py-3 bg-gray-700 border border-gray-600 rounded-lg focus:outline-none glow-input transition-all" placeholder="Doe" required> |
|
</div> |
|
</div> |
|
|
|
<div class="space-y-2 fade-in delay-2"> |
|
<label class="block text-sm font-medium text-gray-300">Email</label> |
|
<input type="email" class="w-full px-4 py-3 bg-gray-700 border border-gray-600 rounded-lg focus:outline-none glow-input transition-all" placeholder="[email protected]" required> |
|
</div> |
|
|
|
<div class="space-y-2 fade-in delay-3"> |
|
<label class="block text-sm font-medium text-gray-300">Password</label> |
|
<input type="password" class="w-full px-4 py-3 bg-gray-700 border border-gray-600 rounded-lg focus:outline-none glow-input transition-all" placeholder="β’β’β’β’β’β’β’β’" required> |
|
</div> |
|
|
|
<div class="space-y-2 fade-in delay-3"> |
|
<label class="block text-sm font-medium text-gray-300">Confirm Password</label> |
|
<input type="password" class="w-full px-4 py-3 bg-gray-700 border border-gray-600 rounded-lg focus:outline-none glow-input transition-all" placeholder="β’β’β’β’β’β’β’β’" required> |
|
</div> |
|
|
|
<div class="flex items-center fade-in delay-3"> |
|
<input type="checkbox" id="terms" class="w-4 h-4 text-green-500 bg-gray-700 border-gray-600 rounded focus:ring-green-500" required> |
|
<label for="terms" class="ml-2 text-sm text-gray-300"> |
|
I agree to the <a href="#" class="text-green-400 hover:text-green-300 transition">Terms</a> and <a href="#" class="text-green-400 hover:text-green-300 transition">Privacy Policy</a> |
|
</label> |
|
</div> |
|
|
|
<button type="submit" class="w-full py-3 px-4 bg-gradient-to-r from-blue-500 to-purple-500 text-white font-medium rounded-lg hover:from-blue-600 hover:to-purple-600 transition-all transform hover:scale-105 fade-in delay-3"> |
|
Sign Up |
|
</button> |
|
</form> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
<script> |
|
|
|
document.addEventListener('DOMContentLoaded', function() { |
|
const matrixBg = document.getElementById('matrixBg'); |
|
const chars = "01γ’γ€γ¦γ¨γͺγ«γγ―γ±γ³γ΅γ·γΉγ»γ½γΏγγγγγγγγγγγγγγγγγ γ‘γ’γ€γ¦γ¨γ©γͺγ«γ¬γγ―γ²γ³"; |
|
|
|
const fontSize = 16; |
|
const columns = Math.floor(window.innerWidth / (fontSize * 1.2)); |
|
|
|
for (let i = 0; i < columns; i++) { |
|
const column = document.createElement('div'); |
|
column.className = 'matrix-column'; |
|
column.style.left = i * (fontSize * 1.2) + 'px'; |
|
column.style.animationDuration = (5 + Math.random() * 10) + 's'; |
|
column.style.setProperty('--delay', i); |
|
|
|
|
|
const rows = Math.floor(window.innerHeight / fontSize) + 1; |
|
for (let j = 0; j < rows; j++) { |
|
const char = document.createElement('div'); |
|
char.textContent = chars.charAt(Math.floor(Math.random() * chars.length)); |
|
char.style.opacity = Math.random(); |
|
column.appendChild(char); |
|
} |
|
|
|
matrixBg.appendChild(column); |
|
|
|
|
|
setInterval(() => { |
|
const firstChar = column.firstChild; |
|
const newChar = document.createElement('div'); |
|
newChar.textContent = chars.charAt(Math.floor(Math.random() * chars.length)); |
|
newChar.style.opacity = Math.random(); |
|
|
|
column.removeChild(firstChar); |
|
column.appendChild(newChar); |
|
}, 100 + Math.random() * 200); |
|
} |
|
|
|
|
|
const loginTab = document.getElementById('loginTab'); |
|
const signupTab = document.getElementById('signupTab'); |
|
const loginForm = document.getElementById('loginForm'); |
|
const signupForm = document.getElementById('signupForm'); |
|
|
|
loginTab.addEventListener('click', function(e) { |
|
e.preventDefault(); |
|
loginTab.classList.add('active'); |
|
signupTab.classList.remove('active'); |
|
loginForm.style.display = 'block'; |
|
signupForm.style.display = 'none'; |
|
}); |
|
|
|
signupTab.addEventListener('click', function(e) { |
|
e.preventDefault(); |
|
signupTab.classList.add('active'); |
|
loginTab.classList.remove('active'); |
|
signupForm.style.display = 'block'; |
|
loginForm.style.display = 'none'; |
|
}); |
|
|
|
|
|
loginForm.addEventListener('submit', function(e) { |
|
e.preventDefault(); |
|
alert('Login functionality would go here!'); |
|
}); |
|
|
|
signupForm.addEventListener('submit', function(e) { |
|
e.preventDefault(); |
|
alert('Sign up functionality would go here!'); |
|
}); |
|
}); |
|
</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=x1101/mass" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> |
|
</html> |