<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Premium Login</title>
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<div class="form-box">
<div class="toggle-buttons">
<button id="loginBtn" class="active">Sign In</button>
<button id="registerBtn">Sign Up</button>
</div>
<div class="social-login">
<button class="social google">
<span>????</span> Continue with Google
</button>
<button class="social github">
<span>⚫</span> Continue with GitHub
</button>
</div>
<div class="divider">OR</div>
<form id="authForm">
<div class="input-group">
<span>????</span>
<input type="email" placeholder="Email Address" required>
</div>
<div class="input-group">
<span>????</span>
<input type="password" placeholder="Password" required>
</div>
<div class="extra-field hidden">
<div class="input-group">
<span>????</span>
<input type="text" placeholder="Full Name">
</div>
</div>
<button type="submit" class="submit-btn">Login</button>
</form>
</div>
</div>
<script src="script.js"></script>
</body>
</html>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Poppins', sans-serif;
height: 100vh;
background: linear-gradient(135deg, #667eea, #764ba2);
display: flex;
justify-content: center;
align-items: center;
}
.container {
width: 100%;
max-width: 420px;
}
.form-box {
background: rgba(255,255,255,0.1);
backdrop-filter: blur(20px);
border-radius: 20px;
padding: 40px;
color: #fff;
box-shadow: 0 15px 40px rgba(0,0,0,0.3);
animation: fadeIn 0.8s ease;
}
.toggle-buttons {
display: flex;
justify-content: space-between;
margin-bottom: 25px;
}
.toggle-buttons button {
flex: 1;
padding: 10px;
border: none;
background: transparent;
color: #fff;
font-weight: 600;
cursor: pointer;
border-bottom: 2px solid transparent;
transition: 0.3s;
}
.toggle-buttons button.active {
border-color: #fff;
}
.social-login {
display: flex;
flex-direction: column;
gap: 10px;
}
.social {
padding: 12px;
border-radius: 10px;
border: none;
cursor: pointer;
font-weight: 500;
transition: 0.3s;
}
.google {
background: #fff;
color: #333;
}
.github {
background: #000;
color: #fff;
}
.social:hover {
transform: translateY(-3px);
}
.divider {
text-align: center;
margin: 20px 0;
font-size: 14px;
opacity: 0.8;
}
.input-group {
display: flex;
align-items: center;
background: rgba(255,255,255,0.15);
border-radius: 10px;
padding: 10px;
margin-bottom: 15px;
}
.input-group span {
margin-right: 10px;
}
.input-group input {
background: transparent;
border: none;
outline: none;
color: #fff;
width: 100%;
}
.submit-btn {
width: 100%;
padding: 12px;
border-radius: 10px;
border: none;
font-weight: 600;
background: #fff;
color: #333;
cursor: pointer;
transition: 0.3s;
}
.submit-btn:hover {
background: #f0f0f0;
}
.hidden {
display: none;
}
@keyframes fadeIn {
from {opacity: 0; transform: translateY(20px);}
to {opacity: 1; transform: translateY(0);}
}
const loginBtn = document.getElementById("loginBtn");
const registerBtn = document.getElementById("registerBtn");
const extraField = document.querySelector(".extra-field");
const submitBtn = document.querySelector(".submit-btn");
loginBtn.addEventListener("click", () => {
loginBtn.classList.add("active");
registerBtn.classList.remove("active");
extraField.classList.add("hidden");
submitBtn.textContent = "Login";
});
registerBtn.addEventListener("click", () => {
registerBtn.classList.add("active");
loginBtn.classList.remove("active");
extraField.classList.remove("hidden");
submitBtn.textContent = "Create Account";
});