react-morph-menu
Version:
A customizable and interactive navigation menu for React applications.
125 lines (124 loc) • 2.42 kB
CSS
.morph-menu-container {
width: 95%;
margin: 100px auto;
}
.list {
display: flex;
justify-content: space-around;
align-items: center;
list-style-type: none;
margin: 0 auto;
padding: 40px 12px;
border-radius: 12px;
position: relative;
background-color: #01193e;
}
.li-list {
width: 70px;
height: 70px;
z-index: 3;
transition: all 0.5s;
}
.list .li-list a {
position: relative;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
text-decoration: none;
width: 100%;
}
.icon {
font-size: 26px;
transition: all 1s;
z-index: 2;
color: #fff;
font-weight: bolder;
}
.text {
position: absolute;
transform: translateY(70px);
transition: all 1s;
opacity: 0;
font-size: 1.5rem;
font-weight: 800;
opacity: 1;
color: #fff;
}
.circle-indicator {
position: absolute;
background-color: #01193e;
width: 70px;
height: 70px;
border-radius: 100%;
top: -50px;
left: -48px;
transition: all 1s;
border-width: 8px;
border-color: bisque;
border-style: solid;
display: flex;
justify-content: center;
align-items: center;
}
.rectangle-indicator {
position: absolute;
background-color: #01193e;
width: 100px;
height: 70px;
top: -50px;
left: -59px;
border-width: 8px;
border-color: bisque;
border-style: solid;
transition: all 1s;
display: flex;
justify-content: center;
align-items: center;
}
.triangle-indicator {
position: absolute;
background-color: #01193e;
width: 75px;
height: 75px;
top: -60px;
left: -40px;
transition: all 1s;
display: flex;
justify-content: center;
align-items: center;
clip-path: polygon(50% 0, 0 100%, 100% 100%);
}
.rectangle-indicator-in-item {
position: absolute;
background-color: #01193e;
width: 120px;
height: 75px;
top: 18px;
left: -60px;
transition: all 1s;
display: flex;
justify-content: center;
align-items: center;
}
.circle-indicator-in-item {
position: absolute;
background-color: #01193e;
border-radius: 100%;
width: 110px;
height: 110px;
top: 3px;
left: -55px;
transition: all 1s;
display: flex;
justify-content: center;
align-items: center;
}
.active {
transform: translateY(-55px);
transition: all 0.5s;
}
.active-text {
opacity: 1;
}