website-developer-in-meerut
website-designer-in-meerut
freelance-webite-developer

Need an Eye-caching Website - Contact Me Today !

toggle-between-login-and-registration-in-same-page

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

  • 114
  • 16-Jan-2023
  • Codepen

  • Details

    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");
        });
    

Preview
whatsapp

Sagar Kumar
Typically replies within an hour

Atechseva
Hi there 👋

How can I help you?
×
Chat