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>&#x279C;</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,...