JSFiddle - React, Tailwind, and code Playground
by James Hooper
HTML
<div class="container">
<div class="element-card">
<div class="front-facing">
<h1 class="abr">Cu</h1>
<p class="title">Copper</p>
<span class="atomic-number">29</span>
<span class="atomic-mass">63.54</span>
</div>
<div class="back-facing">
<p>Copper is a chemical element with symbol Cu (from Latin: cuprum) and atomic number 29. It is a soft, malleable, and ductile metal with very high thermal and electrical conductivity.</p>
<p><a class="btn" href="https://en.wikipedia.org/wiki/Copper" target="_blank">More info</a></p>
</div>
</div>
<div class="element-card">
<div class="front-facing">
<h1 class="abr">Ag</h1>
<p class="title">Silver</p>
<span class="atomic-number">47</span>
<span class="atomic-mass">107.86</span>
</div>
<div class="back-facing">
<p>Silver is the metallic element with the atomic number 47. Its symbol is Ag, from the Latin argentum, derived from the Greek ὰργὀς, and ultimately from a Proto-Indo-European language root reconstructed as *h2erǵ-, "grey" or "shining".</p>
<p><a class="btn" href="https://en.wikipedia.org/wiki/Silver" target="_blank">More info</a></p>
</div>
</div>
<div class="element-card">
<div class="front-facing">
<h1 class="abr">Au</h1>
<p class="title">Gold</p>
<span class="atomic-number">79</span>
<span class="atomic-mass">196.97</span>
</div>
<div class="back-facing">
<p>Gold is a chemical element with symbol Au and atomic number 79. In its purest form, it is a bright, slightly reddish yellow, dense, soft, malleable, and ductile metal. Chemically, gold is a transition metal and a group 11 element.</p>
<p><a class="btn" href="https://en.wikipedia.org/wiki/Gold" target="_blank">More info</a></p>
</div>
</div>
<div class="element-card">
<div class="front-facing">
<h1 class="abr">Rg</h1>
<p class="title">Roentgenium</p>
<span class="atomic-number">111</span>
<span class="atomic-mass">282</span>
</div>
<div...
CSS
$maxWidth : 960px;
$cardWidth : 100px;
$cardHeight : 130px;
$colorMain : #3498db;
$colorMainDarker : #2980b9;
$colorSecundary : #9b59b6;
$colorSecundaryDarker : #9b59b6;
html, body {
position: relative;
height: 100%;
margin: 0;
padding: 0;
}
body {
background-color: #eeeeee;
font-family: 'helvetica', sans-serif;
font-size: 16px;
transform: translate3d(0,0,0);
background: linear-gradient(135deg, $colorMainDarker 0%,$colorSecundaryDarker 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=1 );
}
.container {
position: relative;
width: 100%;
max-width: $maxWidth;
min-height: 100%;
margin: 0px auto;
padding: 20px;
box-sizing: border-box;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
align-items: center;
}
.element-card {
position: relative;
width: $cardWidth;
height: $cardHeight;
transform-style: preserve-3d;
transform: rotatey(0deg) translatex(0px) translatey(0px);
transition: all 0.6s cubic-bezier(0.680, -0.550, 0.265, 1.550);
box-shadow: 4px 4px 20px rgba(0,0,0,0.4);
margin: 5px;
cursor: pointer;
&:hover {
transform: rotatey(45deg) translatex(0px) translatey(0px);
}
&.open {
width: 2*$cardWidth;
height: 2*$cardHeight;
transform: rotatey(-180deg) translatex(0px) translatey(0px);
}
.front-facing {
transform: rotateY( 0deg ) translateZ( 2px );
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
background-color: #ecf0f1;
border: 2px white solid;
border-radius: 5px;
.abr {
width: 100%;
position: absolute;
top: 50%;
left: 0;
font-size: 42px;
margin: -35px 0 0 0;
text-align: center;
color: $colorMain;
}
.title {
width: 100%;
position: absolute;
top: 50%;
left: 0;
text-transform: uppercase;
font-size: 12px;
margin: 15px 0 0 0;
text-align: center;
color: $colorMain;
}
.atomic-number {
position: absolute;
top: 10px;
left:...
JavaScript
$(document).ready(function(){
$('.element-card').on('click', function(){
if ( $(this).hasClass('open') ) {
$(this).removeClass('open');
} else {
$('.element-card').removeClass('open');
$(this).addClass('open');
}
});
});