WEBLEB
Home
Editor
Login
Pro
English
English
Français
Español
Português
Deutsch
Italiano
हिंदी
HTML Login Form Template with Social Login
34
residm43
Open In Editor
Publish Your Code
Recommended
17 May 2025
modern socıal
11 April 2023
CSS Contact Form
11 March 2025
Advanced HTML Login Form
HTML
Copy
Neumorph Login
Welcome Back
Sign in to your account
Sign In
Or continue with
CSS
Copy
:root { --bg-color: #ecf0f3; --text-main: #555; --text-light: #a0a5a8; --shadow-light: #ffffff; --shadow-dark: #d1d9e6; --primary: #cbced1; --accent: #1da1f2; /* Example accent color for subtle highlights */ } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Poppins', sans-serif; } body { background-color: var(--bg-color); display: flex; justify-content: center; align-items: center; min-height: 100vh; } .container { width: 100%; max-width: 450px; padding: 20px; } .login-card { background-color: var(--bg-color); padding: 60px 40px 40px 40px; border-radius: 40px; text-align: center; box-shadow: 13px 13px 20px var(--shadow-dark), -13px -13px 20px var(--shadow-light); } .logo { width: 80px; height: 80px; border-radius: 50%; margin: 0 auto 20px; display: flex; align-items: center; justify-content: center; font-size: 30px; color: #333; box-shadow: 8px 8px 16px var(--shadow-dark), -8px -8px 16px var(--shadow-light); } .title { font-size: 28px; font-weight: 700; color: var(--text-main); letter-spacing: 0.5px; margin-bottom: 5px; } .subtitle { font-size: 14px; color: var(--text-light); margin-bottom: 40px; } .input-group { position: relative; margin-bottom: 25px; border-radius: 25px; box-shadow: inset 8px 8px 8px var(--shadow-dark), inset -8px -8px 8px var(--shadow-light); display: flex; align-items: center; padding: 10px 20px; background: var(--bg-color); } .input-group .icon { color: var(--text-light); padding-right: 15px; } .input-group input { border: none; outline: none; background: none; font-size: 16px; color: var(--text-main); width: 100%; height: 40px; } .input-group input::placeholder { color: var(--text-light); } .btn-login { width: 100%; height: 60px; border-radius: 30px; font-size: 18px; font-weight: 600; color: #fff; background-color: #1da1f2; /* A bit of color for the primary action */ border: none; outline: none; cursor: pointer; box-shadow: 8px 8px 16px var(--shadow-dark), -8px -8px 16px var(--shadow-light); transition: all 0.3s ease; text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); } .btn-login:hover { background-color: #0d8bd9; } .btn-login:active { box-shadow: inset 4px 4px 8px rgba(0, 0, 0, 0.1), inset -4px -4px 8px rgba(255, 255, 255, 0.1); transform: translateY(2px); } /* Social Login Styles */ .social-login { margin-top: 40px; } .social-login p { font-size: 13px; color: var(--text-light); margin-bottom: 20px; } .social-icons { display: flex; justify-content: center; gap: 20px; } .social-btn { width: 50px; height: 50px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--text-main); font-size: 20px; text-decoration: none; box-shadow: 8px 8px 16px var(--shadow-dark), -8px -8px 16px var(--shadow-light); transition: all 0.3s ease; } .social-btn:hover { color: var(--accent); transform: translateY(-2px); } .social-btn:active { box-shadow: inset 4px 4px 8px var(--shadow-dark), inset -4px -4px 8px var(--shadow-light); transform: translateY(2px); } .footer-text { margin-top: 30px; font-size: 14px; color: var(--text-light); } .footer-text a { color: var(--text-main); text-decoration: none; font-weight: 600; } .footer-text a:hover { text-decoration: underline; } /* Responsive */ @media (max-width: 480px) { .login-card { padding: 40px 20px; } }
JS
Copy
document.addEventListener('DOMContentLoaded', () => { const loginForm = document.querySelector('.login-form'); const loginBtn = document.querySelector('.btn-login'); loginForm.addEventListener('submit', (e) => { e.preventDefault(); // Simulate loading state const originalText = loginBtn.innerText; loginBtn.innerText = 'Signing In...'; loginBtn.style.opacity = '0.7'; setTimeout(() => { loginBtn.innerText = 'Success!'; loginBtn.style.backgroundColor = '#4CAF50'; // Green for success setTimeout(() => { loginBtn.innerText = originalText; loginBtn.style.backgroundColor = '#1da1f2'; // Reset color loginBtn.style.opacity = '1'; alert("Login successful!"); }, 1000); }, 1500); }); // Add satisfying click effects for all neumorphic buttons const buttons = document.querySelectorAll('.social-btn, .btn-login'); buttons.forEach(btn => { btn.addEventListener('touchstart', function () { this.style.transform = 'scale(0.95)'; }); btn.addEventListener('touchend', function () { this.style.transform = 'scale(1)'; }); }); });