JSFiddle - React, Tailwind, and code Playground

by derekaug

HTML

<div class="entry">
    <div class="card">
        <div class="entry-preview">
            FRONT PHOTO
        </div>
        <div class="entry-detail">
            BACK DETAILS
        </div>
    </div>
</div>

CSS

.entry {
    -webkit-perspective: 800px;
    -moz-perspective: 800px;
    -ms-perspective: 800px;
    -o-perspective: 800px;
    perspective: 800px;
}

.card {
    position: relative;
    height: 299px;
    width: 250px;
    -webkit-transform-style: preserve-3d;
    -moz-transform-style: preserve-3d;
    -ms-transform-style: preserve-3d;
    -o-transform-style: preserve-3d;
    transform-style: preserve-3d;
    -webkit-transition: -webkit-transform 500ms ease-in-out;
    -moz-transition: -moz-transform 500ms ease-in-out;
    -ms-transition: -ms-transform 500ms ease-in-out;
    -o-transition: -o-transform 500ms ease-in-out;
    transition: transform 500ms ease-in-out;
}

.card > div {
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    border: 1px solid #000000;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -ms-backface-visibility: hidden;
    -o-backface-visibility: hidden;
    backface-visibility: hidden;
}

.card .entry-preview{
    -webkit-transform: rotateY(0deg);
    -moz-transform: rotateY(0deg);
    -ms-transform: rotateY(0deg);
    -o-transform: rotateY(0deg);
    transform: rotateY(0deg);
}


.card .entry-detail{
    -webkit-transform: rotateY(180deg);
    -moz-transform: rotateY(180deg);
    -ms-transform: rotateY(180deg);
    -o-transform: rotateY(180deg);
    transform: rotateY(180deg);
}

.card{
    -webkit-transform: rotateY(0deg);
    -moz-transform: rotateY(0deg);
    -ms-transform: rotateY(0deg);
    -o-transform: rotateY(0deg);
    transform: rotateY(0deg);
}

.show-details .card{
    -webkit-transform: rotateY(180deg);
    -moz-transform: rotateY(180deg);
    -ms-transform: rotateY(180deg);
    -o-transform: rotateY(180deg);
    transform: rotateY(180deg);
}

JavaScript

$('.entry').toggle(function(){
    $(this).addClass('show-details');
}, function(){
    $(this).removeClass('show-details');
});