
A CSS3 based tabs widget designed by teolee that allows to reveal the tabbed content with a 3D transform & transition effect when you mouse hover.
How to use it:
Include the necessary Prefix-free CSS library in the head section of the web page. Prefix-free lets you use only unprefixed CSS properties e.g. transform and transition everywhere.
<script src="prefixfree.min.js"></script>
Create a tabs interface using Html unordered list as follows.
<body class="ready">
<ul class="tabs">
<li>
<div class="fold">
<h3> Title 1 </h3>
<p> Description 1 </p>
</div>
<a href="#" class="more">More</a> </li>
<li>
<div class="fold">
<h3> Title 2 </h3>
<p> Description 2 </p>
</div>
<a href="#" class="more">More</a> </li>
<li>
<div class="fold">
<h3> Title 3 </h3>
<p> Description 3 </p>
</div>
<a href="#" class="more">More</a> </li>
</ul>The required CSS3 rules.
.tabs {
display: block;
list-style: none;
margin: 0 auto;
padding: 0;
width: 800px;
}
.tabs * { transition: all 350ms cubic-bezier(.7, .5, .3, 1); }
.tabs li {
border-right: 1px solid #FFF;
counter-increment: tab;
display: inline;
perspective: 350px;
float: left;
height: 90px;
opacity: 0;
overflow: hidden;
padding-top: 100px;
position: relative;
transform-origin: 50% 0;
transform: translateY(400px);
transition: all 600ms cubic-bezier(.3, .7, .1, 1);
width: 33%;
vertical-align: top;
}
/* Initial transition */
.tabs li:nth-child(2) { transition-delay: 150ms; }
.tabs li:nth-child(3) { transition-delay: 300ms; }
.ready .tabs li {
opacity: 1;
transform: translateY(0);
}
.tabs li .fold {
backface-visibility: hidden;
transform-style: preserve-3d;
}
/* Tab heading */
.tabs li h3 {
backface-visibility: hidden;
background: #444;
color: #FFF;
font-size: 13px;
line-height: 50px;
margin: 0;
height: 50px;
text-transform: uppercase;
}
.tabs li h3:before {
background-repeat: no-repeat;
background-position: 50% 50%;
background-origin: content-box;
background-size: contain;
border: 2px solid rgba(255, 255, 255, .2);
border-radius: 100%;
color: rgba(255, 255, 255, .6);
content: counter(tab);
display: block;
float: left;
font-size: 12px;
font-weight: 400;
height: 24px;
line-height: 25px;
margin: 10px 10px 0 10px;
text-align: center;
width: 24px;
}
/* Revealed copy */
li .fold p {
backface-visibility: hidden;
background: #222;
color: #222;
font-size: 12px;
line-height: 140%;
height: 55px;
margin: -1px 0 0;
padding: 5px 15px 15px;
transform: rotateX(-60deg);
transform-origin: 50% 0;
}
/* Call to action */
.tabs li .more {
backface-visibility: hidden;
background: #EAEAEA;
bottom: 0;
border-bottom: 1px solid rgba(0, 0, 0, .1);
box-shadow: inset 0 4px 2px -3px rgba(0, 0, 0, .3);
color: #3A3F41;
font-size: 11px;
font-weight: bold;
height: 40px;
left: 0;
line-height: 43px;
text-decoration: none;
text-transform: uppercase;
position: absolute;
padding: 0 15px;
width: 100%;
}
.tabs li:before,
.tabs li:after {
background: #444;
backface-visibility: hidden;
content: '';
display: block;
width: 2px;
height: 6px;
position: absolute;
transform-origin: 50% 50%;
z-index: 2;
}
.tabs li:before {
bottom: 19px;
right: 20px;
transform: rotate(-45deg);
}
.tabs li:after {
bottom: 15px;
right: 20px;
transform: rotate(45deg);
}
/* Tab hover */
.tabs li:hover .fold { transform: translateY(-75px); }
.tabs li:hover h3 { background: #222; }
.tabs li:hover .more { color: #111; }
li:hover .fold p {
transform: rotateX(0deg);
background: #222;
color: #BBB;
outline: 1px solid transparent;
}
li:hover:before,
li:hover:after { background: #111; }
@media only screen and (max-width:800px) {
.tabs { width: 600px; }
.tabs li { width: 49%; }
.tabs li:nth-child(3) { display: none; }
}






