Home Code Snippets Design a Responsive Sliding Login & Registration Form using HTML, CSS & JAVASCRIPT

Design a Responsive Sliding Login & Registration Form using HTML, CSS & JAVASCRIPT

Mar 11, 2021
Toggle between Login and Registration in Same Page
Live Preview

index.html

<!DOCTYPE html>
<html lang="en">

    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <!-- ===== Iconscout CSS ===== -->
        <link rel="stylesheet" href="https://unicons.iconscout.com/release/v4.0.0/css/line.css">

        <!-- ===== CSS ===== -->
        <link rel="stylesheet" href="style.css">

        <title>Login & Registration Form</title>
    </head>

    <body>

        <div class="container">
            <div class="forms">
                <div class="form login">
                    <span class="title">Login</span>

                    <form action="#">
                        <div class="input-field">
                            <input type="text" placeholder="Enter your email" required>
                            <i class="uil uil-envelope icon"></i>
                        </div>
                        <div class="input-field">
                            <input type="password" class="password" placeholder="Enter your password" required>
                            <i class="uil uil-lock icon"></i>
                            <i class="uil uil-eye-slash showHidePw"></i>
                        </div>

                        <div class="checkbox-text">
                            <div class="checkbox-content">
                                <input type="checkbox" id="logCheck">
                                <label for="logCheck" class="text">Remember me</label>
                            </div>

                            <a href="#" class="text">Forgot password?</a>
                        </div>

                        <div class="input-field button">
                            <input type="button" value="Login">
                        </div>
                    </form>

                    <div class="login-signup">
                        <span class="text">Not a member?
                            <a href="#" class="text signup-link">Signup Now</a>
                        </span>
                    </div>
                </div>

                <!-- Registration Form -->
                <div class="form signup">
                    <span class="title">Registration</span>

                    <form action="#">
                        <div class="input-field">
                            <input type="text" placeholder="Enter your name" required>
                            <i class="uil uil-user"></i>
                        </div>
                        <div class="input-field">
                            <input type="text" placeholder="Enter your email" required>
                            <i class="uil uil-envelope icon"></i>
                        </div>
                        <div class="input-field">
                            <input type="password" class="password" placeholder="Create a password" required>
                            <i class="uil uil-lock icon"></i>
                        </div>
                        <div class="input-field">
                            <input type="password" class="password" placeholder="Confirm a password" required>
                            <i class="uil uil-lock icon"></i>
                            <i class="uil uil-eye-slash showHidePw"></i>
                        </div>

                        <div class="checkbox-text">
                            <div class="checkbox-content">
                                <input type="checkbox" id="termCon">
                                <label for="termCon" class="text">I accepted all terms and conditions</label>
                            </div>
                        </div>

                        <div class="input-field button">
                            <input type="button" value="Signup">
                        </div>
                    </form>

                    <div class="login-signup">
                        <span class="text">Already a member?
                            <a href="#" class="text login-link">Login Now</a>
                        </span>
                    </div>
                </div>
            </div>
        </div>

        <script src="script.js"></script>

    </body>

</html>

style.css

 @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');* {margin: 0;padding: 0;box-sizing: border-box;font-family: 'Poppins', sans-serif;}body {height: 100vh;display: flex;align-items: center;justify-content: center;background-color: #4070f4;}.container {position: relative;max-width: 430px;width: 100%;background: #fff;border-radius: 10px;box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);overflow: hidden;margin: 0 20px;}.container .forms {display: flex;align-items: center;height: 440px;width: 200%;transition: height 0.2s ease;}.container .form {width: 50%;padding: 30px;background-color: #fff;transition: margin-left 0.18s ease;}.container.active .login {margin-left: -50%;opacity: 0;transition: margin-left 0.18s ease, opacity 0.15s ease;}.container .signup {opacity: 0;transition: opacity 0.09s ease;}.container.active .signup {opacity: 1;transition: opacity 0.2s ease;}.container.active .forms {height: 600px;}.container .form .title {position: relative;font-size: 27px;font-weight: 600;}.form .title::before {content: '';position: absolute;left: 0;bottom: 0;height: 3px;width: 30px;background-color: #4070f4;border-radius: 25px;}.form .input-field {position: relative;height: 50px;width: 100%;margin-top: 30px;}.input-field input {position: absolute;height: 100%;width: 100%;padding: 0 35px;border: none;outline: none;font-size: 16px;border-bottom: 2px solid #ccc;border-top: 2px solid transparent;transition: all 0.2s ease;}.input-field input:is(:focus, :valid) {border-bottom-color: #4070f4;}.input-field i {position: absolute;top: 50%;transform: translateY(-50%);color: #999;font-size: 23px;transition: all 0.2s ease;}.input-field input:is(:focus, :valid)~i {color: #4070f4;}.input-field i.icon {left: 0;}.input-field i.showHidePw {right: 0;cursor: pointer;padding: 10px;}.form .checkbox-text {display: flex;align-items: center;justify-content: space-between;margin-top: 20px;}.checkbox-text .checkbox-content {display: flex;align-items: center;}.checkbox-content input {margin-right: 10px;accent-color: #4070f4;}.form .text {color: #333;font-size: 14px;}.form a.text {color: #4070f4;text-decoration: none;}.form a:hover {text-decoration: underline;}.form .button {margin-top: 35px;}.form .button input {border: none;color: #fff;font-size: 16px;font-weight: 500;letter-spacing: 1px;border-radius: 6px;background-color: #4070f4;cursor: pointer;transition: all 0.3s ease;}.button input:hover {background-color: #265df2;}.form .login-signup {margin-top: 30px;text-align: center;}

script.js

const container = document.querySelector(".container"),
      pwShowHide = document.querySelectorAll(".showHidePw"),
      pwFields = document.querySelectorAll(".password"),
      signUp = document.querySelector(".signup-link"),
      login = document.querySelector(".login-link");

    //   js code to show/hide password and change icon
    pwShowHide.forEach(eyeIcon =>{
        eyeIcon.addEventListener("click", ()=>{
            pwFields.forEach(pwField =>{
                if(pwField.type ==="password"){
                    pwField.type = "text";

                    pwShowHide.forEach(icon =>{
                        icon.classList.replace("uil-eye-slash", "uil-eye");
                    })
                }else{
                    pwField.type = "password";

                    pwShowHide.forEach(icon =>{
                        icon.classList.replace("uil-eye", "uil-eye-slash");
                    })
                }
            }) 
        })
    })

    // js code to appear signup and login form
    signUp.addEventListener("click", ( )=>{
        container.classList.add("active");
    });
    login.addEventListener("click", ( )=>{
        container.classList.remove("active");
    });
Share this snippet: