Hover effect
by sazakharov
HTML
<nav class="menu">
<ul class="menu__list">
<li class="menu__list-item">
<a href="#" class="menu__list-item-link">
<span class="menu__list-item-name">Наведи</span>
</a>
</li>
<li class="menu__list-item">
<a href="#" class="menu__list-item-link">
<span class="menu__list-item-name">Наведи</span>
</a>
</li>
<li class="menu__list-item">
<a href="#" class="menu__list-item-link">
<span class="menu__list-item-name">Наведи</span>
</a>
</li>
<li class="menu__list-item">
<a href="#" class="menu__list-item-link">
<span class="menu__list-item-name">Наведи</span>
</a>
</li>
<li class="menu__list-item">
<a href="#" class="menu__list-item-link">
<span class="menu__list-item-name">Наведи</span>
</a>
</li>
<li class="menu__list-item">
<a href="#" class="menu__list-item-link">
<span class="menu__list-item-name">Наведи</span>
</a>
</li>
</ul>
</nav>
CSS
*,
:before,
:after {
box-sizing: border-box;
}
body {
background-color: #000;
font-family: monospace;
}
.menu {
max-width: 180px;
}
.menu__list {
list-style: none;
margin: 0;
padding: 0;
}
.menu__list-item {
transition: transform .15s;
}
.menu__list-item:active {
transform: scale(.925);
}
.menu__list-item-link {
display: block;
text-decoration: none;
color: #0556f4;
text-transform: uppercase;
line-height: 1;
position: relative;
padding: 10px 15px;
-webkit-tap-highlight-color: transparent;
transition: color .2s;
}
.menu__list-item-link:before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
display: block;
background-color: #fff;
transform: skew(-70deg, -20deg) scale(.5);
transition: opacity .2s, transform .2s cubic-bezier(1, 0, 0, 1), background-color .2s ease-in;
}
.menu__list-item-link:hover {
color: #fff;
}
.menu__list-item-link:hover:before {
opacity: 1;
background-color: #0556f4;
transform: none;
transition: opacity .2s, transform .3s cubic-bezier(1, 0, 0, 1), background-color .45s ease-in;
}
.menu__list-item-name {
position: relative;
z-index: 1;
}