<div class="container">
<div class="title">A Sliding Menu Demo</div>
<div class="menu-icon" id="menu-icon">
<i class="fa fa-bars" aria-hidden="true"></i>
</div>
<div class="menu">
<div class="menu-wrap"></div>
<div class="menu-overlay">
<div class="menu-item">
<a data-item="Home">Home</a>
</div>
<div class="menu-item">
<a data-item="About">About</a>
</div>
<div class="menu-item">
<a data-item="Products">Products</a>
</div>
<div class="menu-item">
<a data-item="Contact">Contact</a>
</div>
</div>
</div>
</div>
@import url("https://fonts.googleapis.com/css?family=Poiret+One");
$primary-color: #f6303e;
$menu-text-color: white;
$background-color-hover: black;
* {
padding: 0;
margin: 0;
}
.container {
height: 100vh;
font-family: "Poiret One", sans-serif;
overflow: hidden;
.title {
text-align: center;
margin-top: 20rem;
font-size: 5rem;
color: $primary-color;
@media only screen and (max-width: 700px) {
font-size: 3.5rem;
}
}
}
.menu-icon {
position: fixed;
top: 0;
right: 0;
width: 12rem;
height: 12rem;
color: $primary-color;
transform: skewX(45deg);
-webkit-transform: skewX(45deg);
-ms-transform: skewX(45deg);
-webkit-transform-origin: 0 0;
-ms-transform-origin: 0 0;
transform-origin: 0 0;
z-index: 20;
.fa-bars {
position: absolute;
top: 2rem;
left: 3rem;
font-size: 4rem;
transform: skewX(-45deg);
cursor: pointer;
@media only screen and (max-width: 700px) {
font-size: 3rem;
}
}
&:before {
content: "";
display: block;
position: absolute;
top: 0;
left: 100%;
width: 100%;
height: 100%;
background-color: $background-color-hover;
-webkit-transition: -webkit-transform 0.2s;
-o-transition: transform 0.5s;
transition: transform 0.5s;
}
&:hover:before {
-webkit-transform: translateX(-100%);
-ms-transform: translateX(-100%);
transform: translateX(-100%);
}
}
.menu {
position: fixed;
top: 0;
left: 100%;
width: 100%;
height: 100%;
z-index: 10;
opacity: 0;
-webkit-transition: -webkit-transform 0.5s, opacity 0.4s;
-ms-transition: transform 0.5s, opacity 0.4s;
transition: transform 0.5s, opacity 0.4s;
min-width: 65rem;
&.open {
opacity: 1;
-webkit-transform: translateX(-100%);
-ms-transform: translateX(-100%);
transform: translateX(-100%);
}
.menu-wrap {
position: absolute;
top: 0;
right: 0;
width: 85%;
height: 100%;
color: $primary-color;
transform: skewX(45deg);
-webkit-transform: skewX(45deg);
-ms-transform: skewX(45deg);
-webkit-transform-origin: 0 0;
-ms-transform-origin: 0 0;
transform-origin: 0 0;
background-color: black;
}
.menu-overlay {
position: absolute;
top: 7rem;
right: 5rem;
z-index: 10;
.menu-item {
position: relative;
display: block;
font-size: 3rem;
font-weight: bold;
line-height: 3.5rem;
padding-top: 1rem;
padding-right: 5rem;
color: $primary-color;
cursor: pointer;
@media only screen and (max-width: 700px) {
font-size: 2rem;
}
a {
&:before {
content: attr(data-item);
position: absolute;
top: 0;
left: 0;
max-width: 0;
overflow: hidden;
text-align: right;
-webkit-transition: max-width 0.5s;
-ms-transition: max-width 0.5s;
transition: max-width 0.5s;
padding-top: 1rem;
color: $menu-text-color;
background-color: $background-color-hover;
z-index: 30;
}
&:hover:before {
max-width: 100%;
}
}
}
}
}
View Compiled