JSFiddle - React, Tailwind, and code Playground

by Vikram Deshmukh

HTML

<button onclick="document.getElementById('id01').style.display='block'" style="width:auto;">Login</button>

CSS

/* Full-width input fields */
#id01 input[type=text], #id01 input[type=password], #id01 select, #id01 textarea {
    width: 100%;
    padding: 12px 20px;
    margin: 8px 0;
    display: inline-block;
    border: 1px solid #ccc;
    box-sizing: border-box;
}

/* Set a style for all buttons */
#id01 button {
    padding: 14px 20px;
    margin: 8px 0;
    border: 1px solid #efefef;
    cursor: pointer;
    width: 100%;
}

#id01 button:hover {
    opacity: 0.8;
}

/* Extra styles for the cancel button */
#id01 .cancelbtn {
    width: auto;
    padding: 10px 18px;
}

/* Center the image and position the close button */
#id01 .imgcontainer {
    text-align: center;
    margin: 24px 0 12px 0;
    position: relative;
}

#id01 img.avatar {
    width: 40%;
    border-radius: 50%;
}

#id01 .container {
    padding: 16px;
}

#id01 span.psw {
    float: right;
    padding-top: 16px;
}

/* The Modal (background) */
#id01 .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: rgb(0,0,0); /* Fallback color */
    background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
    padding-top: 60px;
}

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

/* The Close Button (x) */
#id01 .close {
    position: absolute;
    right: 25px;
    top: 0;
    color: #000;
    font-size: 35px;
    font-weight: bold;
}

#id01 .close:hover,
#id01 .close:focus {
    color: red;
    cursor: pointer;
}

/* Add Zoom Animation */
#id01 .animate {
    -webkit-animation: animatezoom 0.6s;
    animation: animatezoom 0.6s
}

@-webkit-keyframes animatezoom {
   ...

JavaScript

// Get the modal
var modal = document.getElementById('id01');

// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
    if (event.target == modal) {
        modal.style.display = "none";
    }
}