Close Menu

    Subscribe to Updates

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

    What's Hot

    How to make Crazy Stunt Loading Animation using HTML & CSS

    27 August 2025

    How to make Iconic Magic Tab Bar using HTML & CSS

    23 August 2025

    How to make Glowing Animated Search Bar using HTML & CSS

    21 August 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 Parallax Scroll Animation using HTML CSS and JS

    17 August 2025
    JavaScript

    How to create Catch the valorous rabbit Game using HTML CSS and JS

    14 August 2025
    JavaScript

    How to create Animated Credit Card using HTML CSS and JS

    9 August 2025
    Add A Comment
    Leave A Reply Cancel Reply

    Trending Post

    Master Frontend in 100 Days Ebook

    2 March 202427K Views

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

    11 January 202423K Views

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

    14 February 202419K Views

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

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

    How to Make Rock Paper Scissors Game in HTML CSS & JavaScript

    4 January 2024

    How to Make Social Media Icons Popups in HTML and CSS

    12 December 2023

    How to create Apple Dock Navigation Bar using HTML CSS & JavaScript

    10 January 2025

    Top 30 CSS Interview Question and Answers 2024

    30 January 2024
    Latest Post

    How to make Crazy Stunt Loading Animation using HTML & CSS

    27 August 2025

    How to make Iconic Magic Tab Bar using HTML & CSS

    23 August 2025

    How to make Glowing Animated Search Bar using HTML & CSS

    21 August 2025

    How to make Animated Pepsi Product Card using HTML & CSS

    19 August 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