<div class="navigation">
<input type="checkbox" class="navigation__checkbox" id="navi-toggle">
<label for="navi-toggle" class="navigation__button">
<span class="navigation__icon"> </span>
</label>
<div class="navigation__background"> </div>
<nav class="navigation__nav">
<ul class="navigation__list">
<li class="navigation__item"><a href="#" class="navigation__link"><span>01</span>About Us</a></li>
<li class="navigation__item"><a href="#" class="navigation__link"><span>02</span>Your benfits</a></li>
<li class="navigation__item"><a href="#" class="navigation__link"><span>03</span>Popular tours</a></li>
<li class="navigation__item"><a href="#" class="navigation__link"><span>04</span>Stories</a></li>
<li class="navigation__item"><a href="#" class="navigation__link"><span>05</span>Book now</a></li>
</ul>
</nav>
</div>
$color-white: #fff;
$color-black: #000;
$color-primary: #90CAF9;
$color-primary-light: #03A9F4;
$color-primary-dark: #03A9F4;
$color-grey-dark-2: #E0E0E0;
$color-grey-dark-3: #B0BEC5;
@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700);
*,
*::after,
*::before {
margin: 0;
padding: 0;
box-sizing: inherit;
}
html {
height: 100%;
}
body {
background: $color-grey-dark-2;
font-family: 'Open Sans', sans-serif;
font-weight: 400;
font-size: 18px;
line-height: 24px;
color: $color-black;
overflow-x: hidden;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
display: flex;
height: 100%;
align-items: center;
justify-content: center;
}
.navigation {
&__checkbox {
display: none;
}
&__button {
background-color: $color-white;
height: 7rem;
width: 7rem;
position: fixed;
top: 6rem;
right: 6rem;
border-radius: 50%;
z-index: 2000;
box-shadow: 0 1rem 3rem rgba($color-black, .1);
text-align: center;
cursor: pointer;
}
&__background {
height: 6rem;
width: 6rem;
border-radius: 50%;
position: fixed;
top: 6.5rem;
right: 6.5rem;
background-image: radial-gradient($color-primary-light, $color-primary-dark);
z-index: 1000;
transition: transform .8s cubic-bezier(0.86, 0, 0.07, 1);
}
&__nav {
height: 100vh;
position: fixed;
top: 0;
left: 0;
z-index: 1500;
visibility: hidden;
opacity: 0;
width: 0;
transition: all .8s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}
&__list {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
list-style: none;
text-align: center;
width: 100%;
}
&__item {
margin: 1rem;
}
&__link {
&:link,
&:visited {
display: inline-block;
font-size: 3rem;
font-weight: 300;
padding: 1rem 2rem;
color: $color-white;
text-decoration: none;
text-transform: uppercase;
background-image: linear-gradient(120deg, transparent 0%, transparent 50%, $color-white 50%);
background-size: 220%;
transition: all .4s;
span {
margin-right: 1.5rem;
display: inline-block;
}
}
&:hover,
&:active {
background-position: 100%;
color: $color-primary;
transform: translateX(1rem);
}
}
//FUNCTIONALITY
&__checkbox:checked ~ &__background {
transform: scale(80);
}
&__checkbox:checked ~ &__nav {
opacity: 1;
width: 100%;
visibility: visible
}
//ICON
&__icon {
position: relative;
margin-top: 3.5rem;
&,
&::before,
&::after {
width: 3rem;
height: 2px;
background-color: $color-grey-dark-3;
display: inline-block;
}
&::before,
&::after {
content: "";
position: absolute;
left: 0;
transition: all .2s;
}
&::before { top: -.8rem; }
&::after { top: .8rem; }
}
&__button:hover &__icon::before {
top: -1rem;
}
&__button:hover &__icon::after {
top: 1rem;
}
&__checkbox:checked + &__button &__icon {
background-color: transparent;
}
&__checkbox:checked + &__button &__icon::before {
top: 0;
transform: rotate(135deg);
}
&__checkbox:checked + &__button &__icon::after {
top: 0;
transform: rotate(-135deg);
}
}
View Compiled
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.