JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://rawgit.com/yuanqing/modal/master/modal.min.js"></script>
<button class="js-modal-show">Show</button>
<div style="height: 1000px;"><!-- page content --></div>

<div class="modal">
  <div class="modal__dialog">
    <button class="js-modal-hide">Hide</button>
    <div style="height: 1000px;"><!-- modal content --></div>
  </div>
</div>

CSS

.modal {background: rgba(0,0,0,.25); }
.modal__dialog {width: 300px; margin: 25px 0; background: #fff; }

JavaScript

var elem = document.querySelector('.modal');
var opts = {
  showSelector: '.js-modal-show',
  hideSelector: '.js-modal-hide',
  dialogSelector: '.modal__dialog',
  fade: {
    duration: '.2s',
    timingFunction: 'ease'
  }
};
modal(elem, opts);