JSFiddle - React, Tailwind, and code Playground
by annndrewww
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
</body>
</html>
CSS
.modal-overlay {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: rgba(0, 0, 0, 0.5);
}
.modal-window {
width: 450px;
border-radius: 5px;
background: #fff;
margin: 100px auto;
height: 200px;
}
.modal-header {
padding: 5px 10px;
display: flex;
justify-content: space-between;
}
.modal-title {
font-size: 1.5rem;
}
.modal-close {
cursor: pointer;
}
.modal-body {
padding: 10px;
}
.modal-body_desc {
margin: 0 0 5px;
}
.modal-footer {
padding: 5px 10px;
}
.modal-footer_btn {
border: 1px solid #eee;
border-radius: 5px;
background-color: #fff;
padding: 5px 15px;
margin-top: 15px;
margin-bottom: 5px;
}
.modal-footer_btn:hover {
cursor: pointer;
background-color: #e6e6e6;
}
JavaScript
function _createModal(options) {
const modal = document.createElement('div')
modal.classList.add('vmodal');
modal.insertAdjacentHTML('afterbegin',
<div class="modal-overlay">
<div class="modal-window">
<div class="modal-header">
<span class="modal-title">Modal title</span>
<span class="modal-close">×</span>
</div>
<div class="modal-body">
<p class="modal-body_desc">Lorem ipsum dolor sit amet.</p>
<p class="modal-body_desc">Lorem ipsum dolor sit amet.</p>
</div>
<div class="modal-footer">
<button class="modal-footer_btn">Good</button>
<button class="modal-footer_btn">Cancel</button>
</div>
</div>
</div>
)
return modal
}
$.modal = function(options) {
const $modal = _createModal(options)
return {
open() {},
close() {},
destroy() {}
}
}