JSFiddle - React, Tailwind, and code Playground

by Ali Khaled

HTML

<div id="pt-main" class="pt-perspective">
                        <div class="pt-page pt-page-1"><h1><span>A collection of</span><strong>Page</strong> Transitions</h1>
                    <div class="pt-triggers">
<button id="iterateEffects" class="pt-touch-button">Show next page transition</button>                      
</div>
                    </div>
                        <div class="pt-page pt-page-2"><h1><span>A collection of</span><strong>Page</strong> Transitions</h1></div>
                </div>

CSS

/* move from / to  */
.pt-page-moveFromBottom {
        -webkit-animation: moveFromBottom .6s ease both;
        -moz-animation: moveFromBottom .6s ease both;
        animation: moveFromBottom .6s ease both;
}
/* fade */
.pt-page-fade {
        -webkit-animation: fade .7s ease both;
        -moz-animation: fade .7s ease both;
        animation: fade .7s ease both;
}

/* move from / to  */
@-webkit-keyframes moveFromBottom {
        from { -webkit-transform: translateY(100%); }
}
@-moz-keyframes moveFromBottom {
        from { -moz-transform: translateY(100%); }
}
@keyframes moveFromBottom {
        from { transform: translateY(100%); }
}

/* fade */

@-webkit-keyframes fade {
        to { opacity: 0.3; }
}
@-moz-keyframes fade {
        to { opacity: 0.3; }
}
@keyframes fade {
        to { opacity: 0.3; }
}

*, *:after, *:before { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
body, html { font-size: 100%; padding: 0; margin: 0;}

/* Clearfix hack by Nicolas Gallagher: http://nicolasgallagher.com/micro-clearfix-hack/ */
.clearfix:before, .clearfix:after { content: " "; display: table; }
.clearfix:after { clear: both; }

body {
        font-family: 'Lato', Calibri, Arial, sans-serif;
        color: #fff;
        background: #333;
        overflow: hidden;
}
html, body { height: 100%; }
.pt-perspective {
        position: relative;
        width: 100%;
        height: 100%;
        -webkit-perspective: 1200px;
        -moz-perspective: 1200px;
        perspective: 1200px;
}

.pt-page {
        width: 100%;
        height: 100%;
        position: absolute;
        top: 0;
        left: 0;
        visibility: hidden;
        overflow: hidden;
        -webkit-backface-visibility: hidden;
        -moz-backface-visibility: hidden;
        backface-visibility: hidden;
        -webkit-transform: translate3d(0, 0, 0);
        -moz-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
       ...

JavaScript

/* Modernizr 2.6.2 (Custom Build) | MIT & BSD
 * Build: http://modernizr.com/download/#-cssanimations-csstransitions-touch-shiv-cssclasses-prefixed-teststyles-testprop-testallprops-prefixes-domprefixes-load
 */
;window.Modernizr=function(a,b,c){function z(a){j.cssText=a}function A(a,b){return z(m.join(a+";")+(b||""))}function B(a,b){return typeof a===b}function C(a,b){return!!~(""+a).indexOf(b)}function D(a,b){for(var d in a){var e=a[d];if(!C(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function E(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:B(f,"function")?f.bind(d||b):f}return!1}function F(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+o.join(d+" ")+d).split(" ");return B(b,"string")||B(b,"undefined")?D(e,b):(e=(a+" "+p.join(d+" ")+d).split(" "),E(e,b,c))}var d="2.6.2",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n="Webkit Moz O ms",o=n.split(" "),p=n.toLowerCase().split(" "),q={},r={},s={},t=[],u=t.slice,v,w=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["&#173;",'<style id="s',h,'">',a,"</style>"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},x={}.hasOwnProperty,y;!B(x,"undefined")&&!B(x.call,"undefined")?y=function(a,b){return x.call(a,b)}:y=function(a,b){return b in a&&B(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=u.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new...