<nav>
  <ul>
    <li>
      <div class="home-icon">
        <div class="roof">
          <div class="roof-edge"></div>
        </div>
        <div class="front"></div>
      </div>
    </li>
    <li>
      <div class="about-icon">
        <div class="head">
          <div class="eyes"></div>
          <div class="beard"></div>
        </div>
      </div>
    </li>
    <li>
      <div class="work-icon">
        <div class="paper"></div>
        <div class="lines"></div>
        <div class="lines"></div>
        <div class="lines"></div>
      </div>
    </li>
    <li>
      <div class="mail-icon">
        <div class="mail-base">
          <div class="mail-top"></div>
        </div>
      </div>
    </li>
  </ul>
</nav>

<section>
  <h1>3d rotating navigation</h1>
  <h2>+ CSS Icons</h2>
</section>
*,*:before,*:after {
	box-sizing: border-box;
}

:after {
	content: "";
}

section {
  position: relative;
  left: 100px;
}

h1 { 
  margin:80px 0 10px 0;
  font-size: 52px;
  font-family: 'Montserrat', sans-serif;
  text-transform: uppercase;
  text-shadow: 1px 1px 0px #DC143C,
	2px 2px 0px #DC143C,
	3px 3px 0px #DC143C,
	4px 4px 0px #DC143C;
}

h2 {
  font-size: 24px;
}

body {
  padding: 100px 0;
	background: lightblue;
  color: white;
  max-width:640px;
	font-family: 'Montserrat', sans-serif;
	font-size: 14px;
  line-height:1.4;
  font-smoothing: anti-aliased;
}

nav {
  float: left;
	position: relative;
	top: 0;
  left: 0;
	background: transparent;
}

nav ul {
	text-align: center;
}

nav ul li {
	position: relative;
  width: 70px;
  cursor: pointer;
	background: crimson;
	text-transform: uppercase;
	transition:all .4s ease-out;
}

nav ul li:after {
	position: absolute;
	background: white;
	color: crimson;
	top:0;
	left: 70px;
	width: 70px; height: 100%;
  opacity:.5;
  transform: perspective(400px) rotateY(90deg);
	transform-origin: 0 100%;
	transition:all .4s ease-out;
}

nav ul li:nth-child(1):after { 
	content: "Home";
	line-height: 88px;
}
nav ul li:nth-child(2):after { 
	content: "About";
	line-height: 88px;
}
nav ul li:nth-child(3):after { 
	content: "Work";
	line-height: 85px;
}
nav ul li:nth-child(4):after { 
	content: "Say hi";
	line-height: 70px;
}

nav ul li:hover {
	transform: translateX(-70px);
}

nav ul li:hover:after {
  opacity: 1;
	transform: perspective(400px) rotateY(0deg) scale(1) ;
}


nav ul li > div {
	display: inline-block;
	padding: 25px 0;
	background: transparent;
}

nav ul li div { position: relative; }

.roof {
	width: 0;
	height: 0;
	top:2px;
	border-style: solid;
	border-width: 0 21px 15px 21px;
	border-color: transparent transparent #ffffff transparent;
}

.roof-edge {
	position: absolute;
	z-index: 20;
	left: -17px;
	top: 3px;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0 17px 12px 17px;
	border-color: transparent transparent crimson transparent;
}
/*white triangle over red triangle*/
.roof-edge:after {
	position: absolute;
	left: -14.5px;
	top: 3px;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0 14.5px 10px 14.5px;
	border-color: transparent transparent white transparent;
}

.front {
	position: relative;
	top: 3px;
	width: 28.5px;
	height: 20px;
	margin: 0 auto;
	background: white;
}
/*door*/
.front:after {
	position: absolute;
	background: crimson;
	width: 11px;
	height: 13px;
	bottom: 0;
	left:9px;
}

/*/// About me ////*/

.head {
	width: 32px;
	height: 35px;
	background: white;
	border-radius:8px;
}
/*mouth*/
.head:after {
	width: 4px;
	height: 10px;
	background: white;
	position: absolute;
	border-radius:4px 0 0 4px;
	top:21px;
	left: 14px;
	transform:rotate(270deg);
}

.eyes {
	width: 8px;
	height: 5px;
	border-radius: 50%;
	position: absolute;
	top: 10px;
	left: 5px;
	background: crimson;
}
/*right eye*/
.eyes:after {
	width: 8px;
	height: 5px;
	border-radius: 50%;
	position: absolute;
	top: 0;
	left: 14px;
	background: crimson;
}

.beard {
	width: 32px;
	height: 17px;
	background: crimson;
	border:2px solid white;
	position: absolute;
	bottom: 0;
	left: 0;
	border-radius:0 0 8px 8px;
}
/*nose*/
.beard:after {
	position: absolute;
	top:-2px;
	left: 11px;
	background: white;
	width:6px;
	height: 4px;
	border-left:1px solid crimson;
	border-right:1px solid crimson;
}

/*//work//*/

.paper {
	position: relative;
	height:32px;
	width: 29px;
	background: white;
	border:2px solid white;
}

/*window*/
.paper:after {
	position: absolute;
	top:1px;
	left: 0;
	width: 25px;
	height: 29px;
	background: white;
	border-top:4px solid crimson;
}

.lines {
	position: absolute;
	top: 36px;
	left: 5px;
	width: 11px;
	box-shadow: 0 0 0 1px crimson;
}

.lines:after {
	position: absolute;
	top: 4px;
	left: 3px;
	width: 14px;
	box-shadow: 0 0 0 1px crimson;
}

.lines:nth-child(2) {
	position: absolute;
	top: 44px;
	left: 8px;
	width: 11px;
}

.lines:nth-child(2):after {
	position: absolute;
	top: 4px;
	left: -3px;
	width: 11px;
}

.lines:nth-child(3) {
	position: absolute;
	top: 52px;
	left: 8px;
	width: 14px;
}

.lines:nth-child(3):after {
	display: none;
}

/*//mail //*/

.mail-base {
	position: relative;
	width: 32px;
	height: 18px;
	background: white;
}

.mail-top {
	position: absolute;
	z-index: 20;
	left: 0;
	top: 0;
	width: 0;
	height: 0;
	transform: rotate(180deg);
	border-style: solid;
	border-width: 0 16px 11px 16px;
	border-color: transparent transparent crimson transparent;
}

.mail-top:after {
	position: absolute;
	z-index: 20;
	left: -16px;
	top: 3px;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0 16px 9px 16px;
	border-color: transparent transparent white transparent;
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.