Close Menu

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    What's Hot

    How to create Awesome Cool Loading Animation using HTML CSS and JS

    16 June 2025

    How to create Login and Signup Form using HTML CSS and JS

    9 June 2025

    How to create Impossible light bulb using HTML CSS and JS

    5 June 2025
    Facebook X (Twitter) Instagram YouTube Telegram Threads
    Coding StellaCoding Stella
    • Home
    • Blog
    • HTML & CSS
      • Login Form
    • JavaScript
    • Hire us!
    Coding StellaCoding Stella
    Home - JavaScript - How to make Website with Login & Signup form using HTML CSS & JavaScript
    JavaScript

    How to make Website with Login & Signup form using HTML CSS & JavaScript

    Coding StellaBy Coding Stella12 January 2024Updated:14 January 2024No Comments7 Mins Read
    Share Facebook Twitter Pinterest LinkedIn Tumblr Reddit Email WhatsApp Copy Link

    Hello everyone! Today, let’s embark on a coding journey to create a website featuring a simple Login and Signup form using HTML, CSS, and JavaScript.

    Whether you’re a seasoned coder or just getting started, this tutorial is a great opportunity to enhance your skills and add a functional touch to your web projects.

    We’ll keep it straightforward, using HTML for structure, CSS for styling, and a bit of JavaScript for form interactions. No need for complex setups – just simple and effective coding to bring a practical Login and Signup experience to your website.

    Join me in this coding adventure as we build a user-friendly web interface. Ready to get started? Let’s dive into creating a Website with Login & Signup forms – the HTML, CSS, and JavaScript way!

    HTML :

    The given HTML code represents a website with a login and registration form. It includes a navigation bar with a logo, menu button, and links to different pages. The page also contains a login form and a signup form, each with input fields for email and password. Users can switch between the login and signup forms using the provided links. The code also includes JavaScript code that is linked to the page.

    <!DOCTYPE html>
    <html lang="en" >
    <head>
      <meta charset="UTF-8">
      <title>Website with Login &amp; Registration Form</title>
      <link rel='stylesheet' href='https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@48,400,0,0'><link rel="stylesheet" href="./style.css">
    
    </head>
    <body>
    <!-- partial:index.partial.html -->
    <header>
      <nav class="navbar">
        <span class="hamburger-btn material-symbols-rounded">menu</span>
        <a href="#" class="logo">
          <img src="https://codingstella.com/wp-content/uploads/2024/01/download-1.jpeg" alt="logo">
          <h2>CodingStella</h2>
        </a>
        <ul class="links">
          <span class="close-btn material-symbols-rounded">close</span>
          <li><a href="#">Home</a></li>
          <li><a href="#">Portfolio</a></li>
          <li><a href="#">Courses</a></li>
          <li><a href="#">About us</a></li>
          <li><a href="#">Contact us</a></li>
        </ul>
        <button class="login-btn">LOG IN</button>
      </nav>
    </header>
    
    <div class="blur-bg-overlay"></div>
    <div class="form-popup">
      <span class="close-btn material-symbols-rounded">close</span>
      <div class="form-box login">
        <div class="form-details">
          <h2>Welcome Back</h2>
          <p>Please log in using your personal information to stay connected with us.</p>
        </div>
        <div class="form-content">
          <h2>LOGIN</h2>
          <form action="#">
            <div class="input-field">
              <input type="text" required>
              <label>Email</label>
            </div>
            <div class="input-field">
              <input type="password" required>
              <label>Password</label>
            </div>
            <a href="#" class="forgot-pass-link">Forgot password?</a>
            <button type="submit">Log In</button>
          </form>
          <div class="bottom-link">
            Don't have an account?
            <a href="#" id="signup-link">Signup</a>
          </div>
        </div>
      </div>
      <div class="form-box signup">
        <div class="form-details">
          <h2>Create Account</h2>
          <p>To become a part of our community, please sign up using your personal information.</p>
        </div>
        <div class="form-content">
          <h2>SIGNUP</h2>
          <form action="#">
            <div class="input-field">
              <input type="text" required>
              <label>Enter your email</label>
            </div>
            <div class="input-field">
              <input type="password" required>
              <label>Create password</label>
            </div>
            <div class="policy-text">
              <input type="checkbox" id="policy">
              <label for="policy">
                I agree the
                <a href="#" class="option">Terms & Conditions</a>
              </label>
            </div>
            <button type="submit">Sign Up</button>
          </form>
          <div class="bottom-link">
            Already have an account?
            <a href="#" id="login-link">Login</a>
          </div>
        </div>
      </div>
    </div>
    <!-- partial -->
      <script  src="./script.js"></script>
    
    </body>
    </html>
    

    CSS :

    The provided code is a CSS stylesheet that imports the Google font “Open Sans” and defines styles for various elements of a webpage. It includes styles for the body, header, navbar, form popup, form box, input fields, buttons, and media queries for responsive design. The code sets the background image, font family, colors, padding, margins, and other visual properties of the webpage.

    /* Importing Google font - Open Sans */
    @import url("https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;500;600;700&display=swap");
    
    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
      font-family: "Open Sans", sans-serif;
    }
    
    body {
      height: 100vh;
      width: 100%;
      background: url("https://codingstella.com/wp-content/uploads/2024/01/download-scaled.jpeg")
        center/cover no-repeat;
    }
    
    header {
      position: fixed;
      width: 100%;
      top: 0;
      left: 0;
      z-index: 10;
      padding: 0 10px;
    }
    
    .navbar {
      display: flex;
      padding: 22px 0;
      align-items: center;
      max-width: 1200px;
      margin: 0 auto;
      justify-content: space-between;
    }
    
    .navbar .hamburger-btn {
      display: none;
      color: #fff;
      cursor: pointer;
      font-size: 1.5rem;
    }
    
    .navbar .logo {
      gap: 10px;
      display: flex;
      align-items: center;
      text-decoration: none;
    }
    
    .navbar .logo img {
      width: 40px;
      border-radius: 50%;
    }
    
    .navbar .logo h2 {
      color: #fff;
      font-weight: 600;
      font-size: 1.7rem;
    }
    
    .navbar .links {
      display: flex;
      gap: 35px;
      list-style: none;
      align-items: center;
    }
    
    .navbar .close-btn {
      position: absolute;
      right: 20px;
      top: 20px;
      display: none;
      color: #000;
      cursor: pointer;
    }
    
    .navbar .links a {
      color: #fff;
      font-size: 1.1rem;
      font-weight: 500;
      text-decoration: none;
      transition: 0.1s ease;
    }
    
    .navbar .links a:hover {
      color: #19e8ff;
    }
    
    .navbar .login-btn {
      border: none;
      outline: none;
      background: #fff;
      color: #275360;
      font-size: 1rem;
      font-weight: 600;
      padding: 10px 18px;
      border-radius: 3px;
      cursor: pointer;
      transition: 0.15s ease;
    }
    
    .navbar .login-btn:hover {
      background: #ddd;
    }
    
    .form-popup {
      position: fixed;
      top: 50%;
      left: 50%;
      z-index: 10;
      width: 100%;
      opacity: 0;
      pointer-events: none;
      max-width: 720px;
      background: #fff;
      border: 2px solid #fff;
      transform: translate(-50%, -70%);
    }
    
    .show-popup .form-popup {
      opacity: 1;
      pointer-events: auto;
      transform: translate(-50%, -50%);
      transition: transform 0.3s ease, opacity 0.1s;
    }
    
    .form-popup .close-btn {
      position: absolute;
      top: 12px;
      right: 12px;
      color: #878484;
      cursor: pointer;
    }
    
    .blur-bg-overlay {
      position: fixed;
      top: 0;
      left: 0;
      z-index: 10;
      height: 100%;
      width: 100%;
      opacity: 0;
      pointer-events: none;
      backdrop-filter: blur(5px);
      -webkit-backdrop-filter: blur(5px);
      transition: 0.1s ease;
    }
    
    .show-popup .blur-bg-overlay {
      opacity: 1;
      pointer-events: auto;
    }
    
    .form-popup .form-box {
      display: flex;
    }
    
    .form-box .form-details {
      width: 100%;
      color: #fff;
      max-width: 330px;
      text-align: center;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
    }
    
    .login .form-details {
      padding: 0 40px;
      background: url("https://codingstella.com/wp-content/uploads/2024/01/download-3-scaled.jpeg");
      background-position: center;
      background-size: cover;
    }
    
    .signup .form-details {
      padding: 0 20px;
      background: url("https://codingstella.com/wp-content/uploads/2024/01/download-3-scaled.jpeg");
      background-position: center;
      background-size: cover;
    }
    
    .form-box .form-content {
      width: 100%;
      padding: 35px;
    }
    
    .form-box h2 {
      text-align: center;
      margin-bottom: 29px;
    }
    
    form .input-field {
      position: relative;
      height: 50px;
      width: 100%;
      margin-top: 20px;
    }
    
    .input-field input {
      height: 100%;
      width: 100%;
      background: none;
      outline: none;
      font-size: 0.95rem;
      padding: 0 15px;
      border: 1px solid #717171;
      border-radius: 3px;
    }
    
    .input-field input:focus {
      border: 1px solid #00bcd4;
    }
    
    .input-field label {
      position: absolute;
      top: 50%;
      left: 15px;
      transform: translateY(-50%);
      color: #4a4646;
      pointer-events: none;
      transition: 0.2s ease;
    }
    
    .input-field input:is(:focus, :valid) {
      padding: 16px 15px 0;
    }
    
    .input-field input:is(:focus, :valid) ~ label {
      transform: translateY(-120%);
      color: #00bcd4;
      font-size: 0.75rem;
    }
    
    .form-box a {
      color: #00bcd4;
      text-decoration: none;
    }
    
    .form-box a:hover {
      text-decoration: underline;
    }
    
    form :where(.forgot-pass-link, .policy-text) {
      display: inline-flex;
      margin-top: 13px;
      font-size: 0.95rem;
    }
    
    form button {
      width: 100%;
      color: #fff;
      border: none;
      outline: none;
      padding: 14px 0;
      font-size: 1rem;
      font-weight: 500;
      border-radius: 3px;
      cursor: pointer;
      margin: 25px 0;
      background: #00bcd4;
      transition: 0.2s ease;
    }
    
    form button:hover {
      background: #0097a7;
    }
    
    .form-content .bottom-link {
      text-align: center;
    }
    
    .form-popup .signup,
    .form-popup.show-signup .login {
      display: none;
    }
    
    .form-popup.show-signup .signup {
      display: flex;
    }
    
    .signup .policy-text {
      display: flex;
      margin-top: 14px;
      align-items: center;
    }
    
    .signup .policy-text input {
      width: 14px;
      height: 14px;
      margin-right: 7px;
    }
    
    @media (max-width: 950px) {
      .navbar :is(.hamburger-btn, .close-btn) {
        display: block;
      }
    
      .navbar {
        padding: 15px 0;
      }
    
      .navbar .logo img {
        display: none;
      }
    
      .navbar .logo h2 {
        font-size: 1.4rem;
      }
    
      .navbar .links {
        position: fixed;
        top: 0;
        z-index: 10;
        left: -100%;
        display: block;
        height: 100vh;
        width: 100%;
        padding-top: 60px;
        text-align: center;
        background: #fff;
        transition: 0.2s ease;
      }
    
      .navbar .links.show-menu {
        left: 0;
      }
    
      .navbar .links a {
        display: inline-flex;
        margin: 20px 0;
        font-size: 1.2rem;
        color: #000;
      }
    
      .navbar .links a:hover {
        color: #00bcd4;
      }
    
      .navbar .login-btn {
        font-size: 0.9rem;
        padding: 7px 10px;
      }
    }
    
    @media (max-width: 760px) {
      .form-popup {
        width: 95%;
      }
    
      .form-box .form-details {
        display: none;
      }
    
      .form-box .form-content {
        padding: 30px 20px;
      }
    }

    JavaScript:

    This JavaScript code sets up event listeners for various elements on a webpage. It allows for the functionality of showing and hiding a mobile menu, showing and hiding a login popup, and toggling between the signup and login forms within the popup. The code achieves this by toggling CSS classes and manipulating the DOM based on user interactions.

    const navbarMenu = document.querySelector(".navbar .links");
    const hamburgerBtn = document.querySelector(".hamburger-btn");
    const hideMenuBtn = navbarMenu.querySelector(".close-btn");
    const showPopupBtn = document.querySelector(".login-btn");
    const formPopup = document.querySelector(".form-popup");
    const hidePopupBtn = formPopup.querySelector(".close-btn");
    const signupLoginLink = formPopup.querySelectorAll(".bottom-link a");
    
    // Show mobile menu
    hamburgerBtn.addEventListener("click", () => {
      navbarMenu.classList.toggle("show-menu");
    });
    
    // Hide mobile menu
    hideMenuBtn.addEventListener("click", () => hamburgerBtn.click());
    
    // Show login popup
    showPopupBtn.addEventListener("click", () => {
      document.body.classList.toggle("show-popup");
    });
    
    // Hide login popup
    hidePopupBtn.addEventListener("click", () => showPopupBtn.click());
    
    // Show or hide signup form
    signupLoginLink.forEach((link) => {
      link.addEventListener("click", (e) => {
        e.preventDefault();
        formPopup.classList[link.id === "signup-link" ? "add" : "remove"](
          "show-signup"
        );
      });
    });

    There you have it! We’ve wrapped up our journey, creating a simple and user-friendly website with Login and Signup forms using HTML, CSS, and JavaScript. Whether you’re new to coding or a seasoned pro, I hope this tutorial added a practical touch to your web development skills.

    If you run into any hiccups with your project, worry not. You can easily grab the source code for this project. Just hit the Download button to get started on your coding adventure. Happy coding!

    login form registration form
    Share. Copy Link Twitter Facebook LinkedIn Email WhatsApp
    Previous ArticleHow to make Flex Card Slider on Hover in HTML CSS & JavaScript
    Next Article How to make Old Aesthetic Calculator using HTML & CSS
    Coding Stella
    • Website

    Related Posts

    JavaScript

    How to create Login and Signup Form using HTML CSS and JS

    9 June 2025
    JavaScript

    How to create Impossible light bulb using HTML CSS and JS

    5 June 2025
    JavaScript

    How to create Animated Rubik Cube using HTML CSS and JS

    3 June 2025
    Add A Comment
    Leave A Reply Cancel Reply

    Trending Post

    Master Frontend in 100 Days Ebook

    2 March 202419K Views

    How to make Modern Login Form using HTML & CSS | Glassmorphism

    11 January 202417K Views

    How to make I love you Animation in HTML CSS & JavaScript

    14 February 202415K Views

    How to make Valentine’s Day Card using HTML & CSS

    13 February 202412K Views
    Follow Us
    • Instagram
    • Facebook
    • YouTube
    • Twitter
    ads
    Featured Post

    How to make Playable PIANO using HTML CSS & JavaScript

    7 April 2024

    Top 30 CSS Interview Question and Answers 2024

    30 January 2024

    How to make Movie Poster Cards using HTML & CSS

    11 March 2024

    How to make Animated Toogle Pill using HTML & CSS

    13 June 2024
    Latest Post

    How to create Awesome Cool Loading Animation using HTML CSS and JS

    16 June 2025

    How to create Login and Signup Form using HTML CSS and JS

    9 June 2025

    How to create Impossible light bulb using HTML CSS and JS

    5 June 2025

    How to create Animated Rubik Cube using HTML CSS and JS

    3 June 2025
    Facebook X (Twitter) Instagram YouTube
    • About Us
    • Privacy Policy
    • Return and Refund Policy
    • Terms and Conditions
    • Contact Us
    • Buy me a coffee
    © 2025 Coding Stella. Made with 💙 by @coding.stella

    Type above and press Enter to search. Press Esc to cancel.

    Ad Blocker Enabled!
    Ad Blocker Enabled!
    Looks like you're using an ad blocker. We rely on advertising to help fund our site.
    Okay! I understood