-
Embossed login signup UI with electric border animation
HTML
CSS
JavaScript
🔐
Welcome
Login to continue your journey
Email Address
Password
👁
Remember me
Forgot Password?
LOGIN
Don't have an account?
+
G
f
in
✨
Create Account
Start your journey with us
Full Name
Email Address
Password
👁
Confirm Password
CREATE ACCOUNT
Already have an account?
←
G
f
in
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap'); /* RESET */ * { margin: 0; padding: 0; box-sizing: border-box; } body { min-height: 100vh; display: flex; align-items: center; justify-content: center; font-family: "Inter", sans-serif; background: #e7ebf0; overflow: hidden; scale: 0.7; } /* BACKGROUND */ .bg-circle { position: fixed; border-radius: 50%; background: #e7ebf0; box-shadow: 15px 15px 30px rgba(163,177,198,.55), -15px -15px 30px rgba(255,255,255,.9); z-index: -5; animation: floating 6s ease-in-out infinite; } .bg1 { width: 190px; height: 190px; top: 7%; left: 7%; } .bg2 { width: 130px; height: 130px; right: 8%; bottom: 8%; animation-delay: 1.5s; } .bg3 { width: 55px; height: 55px; right: 20%; top: 22%; animation-delay: 3s; } @keyframes floating { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-18px); } } /* AUTH WRAPPER */ .auth-wrapper { width: 400px; max-width: 92%; perspective: 1600px; } /* CARD */ .auth-card { position: relative; width: 100%; min-height: 610px; transform-style: preserve-3d; transition: transform 1s cubic-bezier(.68,-0.55,.27,1.55); } .auth-card.flipped { transform: rotateY(180deg); } /* PANEL */ .form-panel { position: absolute; inset: 0; padding: 40px 38px; border-radius: 35px; background: #e7ebf0; box-shadow: 20px 20px 40px rgba(163,177,198,.65), -20px -20px 40px rgba(255,255,255,.95); backface-visibility: hidden; } .signup-panel { transform: rotateY(180deg); } /* LOGO */ .logo { width: 86px; height: 86px; margin: 0 auto 18px; display: flex; justify-content: center; align-items: center; border-radius: 50%; font-size: 30px; color: #087cff; background: #e7ebf0; box-shadow: 9px 9px 18px rgba(163,177,198,.65), -9px -9px 18px rgba(255,255,255,.95); transition: .4s ease; } .logo:hover { transform: translateY(-5px) rotate(8deg); } /* HEADING */ h1 { text-align: center; font-size: 27px; color: #303943; margin-bottom: 7px; } .subtitle { text-align: center; color: #7c858e; font-size: 13px; margin-bottom: 30px; } /* INPUT GROUP */ .input-group { position: relative; width: 100%; height: 58px; margin-bottom: 19px; } /* ELECTRIC BORDER */ .electric-border { position: absolute; inset: -2px; border-radius: 19px; overflow: hidden; pointer-events: none; opacity: 0; transition: opacity .2s ease; } /* rotating light */ .electric-border::before { content: ""; position: absolute; width: 170%; height: 170%; left: -35%; top: -35%; background: conic-gradient( from 0deg, transparent 0deg, transparent 30deg, #00eaff 45deg, #00aaff 65deg, #006cff 80deg, transparent 105deg, transparent 360deg ); animation: electricRotate 1.1s linear infinite; } /* inner mask */ .electric-border::after { content: ""; position: absolute; inset: 2px; border-radius: 17px; background: #e7ebf0; } .electric-glow { position: absolute; inset: -4px; border-radius: 21px; pointer-events: none; opacity: 0; filter: blur(7px); } .input-group:focus-within .electric-border { opacity: 1; } .input-group:focus-within .electric-glow { opacity: .55; animation: electricRotate 1.1s linear infinite; } @keyframes electricRotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .input-group input { position: absolute; inset: 2px; width: calc(100% - 4px); height: 54px; border: none; outline: none; border-radius: 16px; background: #e7ebf0; color: #303943; font-family: "Inter", sans-serif; font-size: 14px; padding: 0 48px 0 18px; z-index: 20; box-shadow: inset 6px 6px 12px rgba(163,177,198,.55), inset -6px -6px 12px rgba(255,255,255,.95); transition: box-shadow .25s ease; } /* input focus */ .input-group input:focus { box-shadow: inset 3px 3px 7px rgba(163,177,198,.55), inset -3px -3px 7px rgba(255,255,255,.95); } /* LABEL */ .input-group label { position: absolute; left: 18px; top: 20px; z-index: 30; color: #89929c; font-size: 13px; pointer-events: none; transition: all .25s ease; } /* floating label */ .input-group input:focus + label, .input-group input:not(:placeholder-shown) + label { top: -8px; left: 13px; padding: 2px 8px; border-radius: 7px; background: #e7ebf0; color: #0072ff; font-size: 10px; line-height: 14px; white-space: nowrap; } /* PASSWORD ICON */ .password-toggle { position: absolute; right: 14px; top: 15px; width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; border: none; background: transparent; color: #7d8790; cursor: pointer; z-index: 40; font-size: 16px; } .password-toggle:hover { color: #0072ff; transform: scale(1.1); } /* OPTIONS */ .options { display: flex; justify-content: space-between; align-items: center; margin: 5px 3px 24px; color: #7d8790; font-size: 11px; } .checkbox { display: flex; align-items: center; gap: 7px; } .checkbox input { accent-color: #0072ff; } .options a { color: #0072ff; text-decoration: none; } /* MAIN BUTTON */ .main-btn { position: relative; isolation: isolate; width: 100%; height: 55px; border: none; border-radius: 17px; background: #e7ebf0; color: #0072ff; font-family: "Inter", sans-serif; font-size: 14px; font-weight: 700; letter-spacing: .4px; cursor: pointer; overflow: hidden; box-shadow: 8px 8px 16px rgba(163,177,198,.65), -8px -8px 16px rgba(255,255,255,.95); transition: .3s ease; } /* hover background */ .main-btn::before { content: ""; position: absolute; inset: 0; background: linear-gradient( 110deg, #006cff, #00cfff, #006cff ); background-size: 200% 100%; transform: translateY(100%); transition: transform .35s ease; z-index: -1; } .main-btn:hover::before { transform: translateY(0); animation: buttonMove 1.5s linear infinite; } @keyframes buttonMove { from { background-position: 0 50%; } to { background-position: 200% 50%; } } .main-btn:hover { color: #fff; transform: translateY(-3px); box-shadow: 0 10px 25px rgba(0,114,255,.35); } .main-btn:active { transform: scale(.97); } /* SWITCH CIRCLE */ .switch-area { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 27px; font-size: 11px; color: #7d8790; } .switch-circle { width: 49px; height: 49px; border: none; border-radius: 50%; background: #e7ebf0; color: #0072ff; font-size: 22px; cursor: pointer; display: flex; justify-content: center; align-items: center; box-shadow: 7px 7px 14px rgba(163,177,198,.65), -7px -7px 14px rgba(255,255,255,.95); transition: .35s ease; } .switch-circle:hover { color: white; background: #0072ff; transform: rotate(180deg) scale(1.08); box-shadow: 0 8px 25px rgba(0,114,255,.35); } .switch-circle:active { transform: scale(.9); } /* SOCIAL */ .social { display: flex; justify-content: center; gap: 14px; margin-top: 22px; } .social button { width: 40px; height: 40px; border: none; border-radius: 50%; background: #e7ebf0; color: #707a84; cursor: pointer; box-shadow: 5px 5px 10px rgba(163,177,198,.55), -5px -5px 10px rgba(255,255,255,.9); transition: .3s ease; } .social button:hover { background: #0072ff; color: white; transform: translateY(-4px); } /* RESPONSIVE */ @media(max-width:480px) { .auth-wrapper { width: 94%; } .form-panel { padding: 35px 24px; } .auth-card { min-height: 580px; } h1 { font-size: 24px; } .logo { width: 78px; height: 78px; } }
function flipCard() { const card = document.getElementById("authCard"); card.classList.toggle("flipped"); } /* PASSWORD SHOW / HIDE */ function togglePassword(id, button) { const input = document.getElementById(id); if (input.type === "password") { input.type = "text"; button.textContent = "🙈"; } else { input.type = "password"; button.textContent = "👁"; } } /* DEMO SUBMIT */ document .querySelectorAll("form") .forEach(form => { form.addEventListener( "submit", function(e) { e.preventDefault(); const button = this.querySelector(".main-btn"); const oldText = button.textContent; button.textContent = "✓ SUCCESS"; setTimeout(() => { button.textContent = oldText; }, 1800); } ); });
Live Preview