Fancy CSS3 transitions
Samples demo of various transitions possible with pure CSS3 transitions/animations.
by lasha
HTML
<div class="container">
<input type="checkbox" id="toggle-state">
<div class="inner-left">
<label for="toggle-state" class="btn-close">close</label>
<img src="https://www.placecage.com/gif/370/230" alt="The Cage">
</div>
<div class="inner-right">
<div class="inner-right-content">
<h2>Welcome, friend!</h2>
<div>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed facilisis bibendum justo.</p>
<p>Suspendisse vel orci porta, ultrices justo a, rutrum nunc. Ut sed mi mollis, condimentum nulla et, tincidunt eros.</p>
<p>Sed ante metus, mollis ut mattis et, aliquet ac massa. Proin sit amet tortor diam.</p>
<p>Donec at imperdiet lorem, vitae elementum nisi. Etiam mollis ante id erat eleifend porttitor.</p>
</div>
</div>
</div>
<label for="toggle-state" class="label-main">
<span>➜</span>
<span>BACK</span>
</label>
</div>
SCSS
@import url('https://fonts.googleapis.com/css?family=Sansita');
@import url('https://fonts.googleapis.com/css?family=Arapey|Oswald');
// main bezier curve for page transitions & animations
$bezier: cubic-bezier(1.000, 0.090, 0.325, 1.300);
body {
//font-family: 'Sansita', sans-serif;
font-family: 'Arapey', serif;
-webkit-font-smoothing: antialiased;
}
.container {
overflow: hidden;
position: absolute;
top: 0; left: 0;
width: 100%;
height: 100%;
background: #f7ff00; /* fallback for old browsers */
background: linear-gradient(to left, #f7ff00 , #db36a4); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
}
input { display: none; }
.label-main {
position: absolute; top: 50%; left: 50%;
transform: translateX(-50%) translateY(-50%) rotate(-90deg);
//box-shadow: 0px 3px 18px rgba(0,0,0,0.25);
line-height: 1;
padding: 5px 20px 10px;
font-size: 22px;
background-color: #fff;
border-radius: 20px;
letter-spacing: 1px;
transition: all 1s ease-in-out;
transition-timing-function: $bezier;
cursor: pointer;
width: 100px; height: 21px;
text-align: center;
z-index: 1;
&:hover {
transform: translateX(-50%) translateY(-50%) rotate(-90deg) scale(1.3);
//background-color: rgba(255, 212, 57, 0.75);
//box-shadow: 0px 5px 25px rgba(0, 0, 0, 0.25);
}
span { color: #e57c6b; }
span:first-child {
display: inline-block;
transform: rotate(90deg);
}
span + span { display: none; }
}
input:checked ~ .label-main {
span { display: none;}
span + span { display: inline-block; }
transform: translateX(-50%) translateY(-50%) rotate(-90deg) scale(0.6);
//box-shadow: 0px 2px 8px rgba(0,0,0,0.25);
left: 92%;
transition-duration: 1s;
/* &:hover {
transform: translateX(-50%) translateY(-50%) rotate(-90deg) scale(1.3);
} */
//width: 80%; height: 80%; padding: 0;
//transition-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
//transition-timing-function: cubic-bezier(0.620,...