JSFiddle - React, Tailwind, and code Playground
by alois de gouvello
HTML
<section id="menu">
<input class="go" type="checkbox"></input>
<div class="circle">
<p>+</p>
</div>
<nav>
<ul>
<li><a href="#">home</a>
</li>
<li><a href="#">about</a>
</li>
<li><a href="#">project</a>
</li>
</ul>
</nav>
</section>
CSS
* {
margin: 0;
padding: 0;
cursor: default;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
body {
background: #bada55;
overflow: hidden;
perspective: 1000px;
}
input[type="checkbox"] {
border: 0;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
cursor: pointer;
outline: none;
z-index: 2;
}
input[type="checkbox"]:checked {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
.go, .go + .circle {
position: absolute;
height: 50px;
width: 50px;
z-index: 1;
top: 3px;
right: 3px;
}
.go + .circle {
border-radius: 50%;
border: 3px solid white;
}
.go:hover + .circle {
background: white;
}
.go:hover + .circle p {
color: #bada55;
}
/*-webkit-font-smoothing: antialiased;*/
.go + .circle p {
font-weight: normal;
text-align: center;
font-size: 4em;
line-height: 45px;
color: white;
-webkit-transition: -webkit-transform 0.8s;
-moz-transition: -moz-transform 0.8s;
-o-transition: -o-transform 0.8s;
transition: transform 0.8s;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
-webkit-transform: translateZ(0px);
-moz-transform: translateZ(0px);
-o-transform: translateZ(0px);
transform: translateZ(0px);
}
.go:checked + .circle p {
-webkit-transform: rotate(135deg) translateZ(0px);
-moz-transform: rotate(135deg) translateZ(0px);
-o-transform: rotate(135deg) translateZ(0px);
transform: rotate(135deg) translateZ(0px);
}
nav {
position: relative;
display: block;
background: #7555da;
top: 0;
transition: all 1s;
}
nav ul {
list-style: none;
overflow: hidden;
display: inline-block;
min-height: 100%;
font-size: 0;
}
nav ul li {
display: inline-block;
border-right: 1px dashed rgba(255, 255, 255,...