<nav class="navbar">
<a href="#" class="navbar__link">
<span class="navbar__icon">
<span data-feather="home"></span>
</span>
<span class="navbar__label">Home</span>
</a>
<a href="#" class="navbar__link">
<span class="navbar__icon">
<span data-feather="clipboard"></span>
</span>
<span class="navbar__label">Work</span>
</a>
<a href="#" class="navbar__link">
<span class="navbar__icon">
<span data-feather="users"></span>
</span>
<span class="navbar__label">User</span>
</a>
<a href="#" class="navbar__link">
<span class="navbar__icon">
<span data-feather="settings"></span>
</span>
<span class="navbar__label">Settings</span>
</a>
</nav>
@import url("https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;500&display=swap");
$ff: "Roboto Mono", sans-serif;
$hover_color: #e022bb;
body {
width: 100vw;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background: #a770ef;
background: linear-gradient(to right, #fdb99b, #cf8bf3, #a770ef);
}
.navbar {
$bem-block: &;
background: #fff;
padding: 10px 30px;
border-radius: 50px;
transition: 0.3s;
&:hover {
box-shadow: 0 0 40px rgba(0, 0, 0, 0.2);
}
&__link {
display: inline-flex;
align-items: center;
flex-direction: column;
text-align: center;
text-decoration: none;
padding: 10px 30px;
overflow: hidden;
position: relative;
transition: 0.2s ease-in-out;
&:hover #{$bem-block}__icon {
color: $hover_color;
transform: translateY(0) scale(0.9);
&::before {
transform: translate(-50%, -50%);
opacity: 1;
}
}
&:hover #{$bem-block}__label {
transform: translateY(0);
}
}
&__icon {
color: #333;
transform: translateY(15px);
transition: 0.3s cubic-bezier(0.09, 0.79, 0.57, 0.89);
position: relative;
&::before {
content: "";
width: 45px;
height: 45px;
background: rgba($hover_color, 0.15);
position: absolute;
left: 50%;
top: 50%;
z-index: -1;
border-radius: 50%;
transform: translate(-50%, 50%);
opacity: 0;
transition: 0.3s;
}
}
&__label {
display: block;
margin-top: 10px;
font-family: $ff;
color: #e022bb;
position: relative;
bottom: 0;
font-size: 0.9375rem;
transform: translateY(200%);
transition: 0.3s cubic-bezier(0.09, 0.79, 0.57, 0.89);
transition-delay: 0.2s;
}
}
View Compiled
feather.replace();
This Pen doesn't use any external CSS resources.