JSFiddle - React, Tailwind, and code Playground

HTML

<div class="effeckt-modal-wrap md-effect-8" id="effeckt-modal-wrap" style="display: block;"> <!-- for centering transform -->
      <div class="effeckt-modal" id="effeckt-modal">
        <h3>Modal Dialog</h3>
        <div class="effeckt-modal-content">
          <p>This is a modal window.</p>
          <button class="effeckt-modal-close">Close me!</button>
        </div>
      </div>
    </div>
    <div class="effeckt-overlay" id="effeckt-overlay"></div> 
    <!-- overlay coming after is important for ~ selector -->
    <div class="effeckt-overlay no-transitions" id="effeckt-overlay"></div>
<p>
    <button class="modal2-button" data-modal-type="modal-8">3D Flip (horizontal)</button>
</p>

CSS

.effeckt-modal-wrap {
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    position: fixed;
    top: 50%;
    left: 50%;
    width: 50%;
    min-width: 320px;
    max-width: 630px;
    z-index: 2000;
    display: none;
}
.effeckt-modal {
    visibility: hidden;
    -webkit-backface-visibility: hidden;
    -ms-backface-visibility: hidden;
    -o-backface-visibility: hidden;
    backface-visibility: hidden;
    background: white;
}
.effeckt-show {
    visibility: visible;
}

.effeckt-show .effeckt-modal {
    visibility: visible;
}

.effeckt-overlay.effeckt-show {
    opacity: 1;
    visibility: visible;
}
.effeckt-overlay {
    position: fixed;
    width: 100%;
    height: 100%;
    visibility: hidden;
    top: 0;
    left: 0;
    opacity: 0;
    -webkit-transition: 500ms;
    -o-transition: 500ms;
    transition: 500ms;
    z-index: 1000;
    background: rgba(0, 0, 0, 0.5);
    
	-webkit-transform: translateZ(-1000px);
}
.effeckt-modal h3 {
    padding: 1rem;
    color: white;
    background: #444;
}
.effeckt-modal-content {
    padding: 1rem;
}
/* Effect 8: 3D flip horizontal */
 .md-effect-8 {
    -webkit-perspective: 1300px;
    -ms-perspective: 1300px;
    -o-perspective: 1300px;
    perspective: 1300px;
    -webkit-transform-style: preserve-3d;
    -ms-transform-style: preserve-3d;
    -o-transform-style: preserve-3d;
    transform-style: preserve-3d;
}
.md-effect-8 .effeckt-modal {
    -webkit-transform: rotateY(-70deg);
    -ms-transform: rotateY(-70deg);
    -o-transform: rotateY(-70deg);
    transform: rotateY(-70deg);
    -webkit-transition: all 500ms;
    -o-transition: all 500ms;
    transition: all 500ms;
    opacity: 0;
}
.effeckt-show.md-effect-8 .effeckt-modal {
    -webkit-transform: rotateY(0deg);
    -ms-transform: rotateY(0deg);
    -o-transform: rotateY(0deg);
    transform: rotateY(0deg);
    opacity: 1;
}

JavaScript

$('button').on('click', function () {
    $("#effeckt-modal-wrap").show();
    
    window.setTimeout(function() {
        $("#effeckt-modal-wrap").addClass('md-effect-8');
        $("#effeckt-modal-wrap").addClass("effeckt-show");
        $('#effeckt-overlay').addClass("effeckt-show");

        $(".effeckt-modal-close, .effeckt-overlay").on("click", function () {
            $("#effeckt-modal-wrap").fadeOut();
            $('#effeckt-modal-wrap').removeClass("effeckt-show");
            //$("#effeckt-modal-wrap").removeClass('md-effect-8');
            $('#effeckt-overlay').removeClass("effeckt-show");
        });
    }, 10);
});