JavaScript Essentials: Creating Modals & Popup Forms

Popups and modals are essential components of modern web design. They are used for displaying additional information, user interactions, or notifications, without leaving the current page. In this article, we will guide you through creating modals and popup forms from scratch using HTML, CSS, and JavaScript.


To follow this tutorial, you should have a basic understanding of HTML, CSS, and JavaScript.

Step 1: Create the HTML Structure

First, create the basic HTML structure for the modal and popup form. Add a button to trigger the modal and a div element to hold the content.

<!DOCTYPE html>
<html lang="en">
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Modal and Popup Form</title>
  <button id="openModal">Open Modal</button>
  <div id="modal" class="modal">
    <div class="modal-content">
      <span class="close">&times;</span>
      <form id="popupForm">
        <!-- Add your form content here -->

Step 2: Style the Modal and Form with CSS

Next, add some CSS to style the modal and popup form. We will use flexbox to center the content and an overlay to dim the background.

.modal {
  display: none; /* Hidden by default */
  position: fixed; /* Stay in place */
  z-index: 1; /* Sit on top */
  left: 0;
  top: 0;
  width: 100%; /* Full width */
  height: 100%; /* Full height */
  overflow: auto; /* Enable scroll if needed */
  background-color: rgba(0, 0, 0, 0.4); /* Black w/ opacity */

.modal-content {
  background-color: #fefefe;
  margin: 15% auto; /* 15% from the top and centered */
  padding: 20px;
  border: 1px solid #888;
  width: 80%; /* Could be more or less, depending on screen size */

.close {
  color: #aaa;
  float: right;
  font-size: 28px;
  font-weight: bold;

.close:focus {
  color: black;
  text-decoration: none;
  cursor: pointer;

Step 3: Add JavaScript to Control the Modal

Finally, add some JavaScript to open and close the modal when the user clicks on the appropriate elements.

document.addEventListener('DOMContentLoaded', function() {
  const modal = document.getElementById('modal');
  const openModal = document.getElementById('openModal');
  const closeModal = document.getElementsByClassName('close')[0];

  openModal.onclick = function() { = 'block';

  closeModal.onclick = function() { = 'none';

  window.onclick = function(event) {
    if ( === modal) { = 'none';

The code above adds event listeners for the "Open Modal" button, the close button, and any clicks outside the modal. When the user clicks on these elements, the modal will open or close accordingly.


Now you know how to create a modal and popup form from scratch using HTML, CSS, and JavaScript. You can customize the form content and styles to fit the needs of your project. Enhance your web pages with interactive elements and improve the overall user experience.

An AI coworker, not just a copilot

View VelocityAI