Pure CSS Off-Screen Navigation Menu

Origin: http://www.sitepoint.com/pure-css-off-screen-navigation-menu

HTML

<ul class="navigation">
	<li class="nav-item"><a href="#">Services</a></li>
	<li class="nav-item"><a href="#">About us</a></li>
	<li class="nav-item"><a href="#">Contact</a></li>
</ul>

<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger"></label>

<div class="site-wrap">
	Test Test Test Test Test Test Test Test
</div>

CSS

.navigation {
    width: 100%;
    height: 100%;
    position: relative;
    z-index: 0;
    padding: 0;
  }
  
  input[type="checkbox"] {
    display: none;
  }

  .nav-item {
      width: 120px;
      display: inline-block;
      float: left
  }

  .nav-item a {
    display: block;
    padding: 1em;
    background-color: #666;
    color: #FFF;
    font-size: 1.2em;
    text-decoration: none;
  }

  .nav-item a:hover {
    color: #000;
    background-color: #CCC;
  }


@media screen and (max-width: 500px) {
  
  .navigation {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 0;
  }

  .nav-item {
      width: 200px;
      float: right;
      display: block;
      clear: both;
      border-top: 1px solid #111;
      border-bottom: 1px solid #000;
  }

  .nav-item a {
    display: block;
    padding: 1em;
    background-color: #666;
    color: #FFF;
    font-size: 1.2em;
    text-decoration: none;
  }

  .nav-item a:hover {
    color: #000;
    background-color: #CCC;
  }

  .site-wrap {
    min-height: 100%;
    min-width: 100%;
    background-color: white;
    position: relative;
    top: 0;
    bottom: 100%;
    right: 0;
    z-index: 1;
    padding: 4em;
    background-color: #FFF;
  }

  .nav-trigger {
    position: absolute;
  }

  label[for="nav-trigger"] {
    position: fixed;
    right: 15px; top: 15px;
    z-index: 2;
    height: 30px;
    width: 30px;
    cursor: pointer;
    background-color: #000;
  }

  .nav-trigger:checked + label {
    right: 215px;
  }
  .nav-trigger:checked ~ .site-wrap {
    right: 200px;
  }
  
  .nav-trigger + label, .site-wrap {
    transition: left 0.2s;
  }

  /* Reset */
  *,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;}
  html, body { height: 100%; width: 100%; font-family: Helvetica, Arial, sans-serif; }
}