Author: | teolee |
---|---|
Views Total: | 3,767 views |
Official Page: | Go to website |
Last Update: | June 26, 2014 |
License: | Unknown |
Preview:

Description:
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; } }