HTML
<div class="navigation">
<div class="menuToggle"></div>
<div class="menu">
<ul>
<li style="--i:0.1s;"><a href="#"><ion-icon name="camera-outline"></ion-icon></a></li>
<li style="--i:0.1s;"><a href="#"><ion-icon name="settings-outline"></ion-icon></a></li>
<li style="--i:0.1s;"><a href="#"><ion-icon name="trash-outline"></ion-icon></a></li>
</ul>
</div>
</div>
<script type="module" src="https://unpkg.com/ionicons@5.5.2/dist/ionicons/ionicons.esm.js"></script>
<script nomodule src="https://unpkg.com/ionicons@5.5.2/dist/ionicons/ionicons.js"></script>CSS
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800;900&display=swap');
*
{
margin:0;
padding:0;
box-sizing:border-box;
font-family:'Poppins',sans-serif;
}
body
{
display:flex;
justify-content:center;
align-items:center;
min-height:100vh;
background:linear-gradient(45deg,#ff216d,#2196f3);
}
.navigation
{
position:relative;
display:flex;
justify-content:center;
align-items:center;
}
.menuToggle
{
position:relative;
width:70px;
height:70px;
background:#fff;
border-radius:70px;
cursor:pointer;
display:flex;
justify-content:center;
align-items:center;
box-shadow:0 15px 25px rgba(0,0,0,0.15);
}
.menuToggle::before
{
content:'+';
position:absolute;
font-size:3em;
font-weight:200;
color:#ff216d;
transition:1.5s;
}
.menuToggle.active::before
{
transform:rotate(225deg);
}
.menu
{
position:absolute;
width:30px;
height:30px;
background:#fff;
border-radius:70px;
z-index:-1;
transition:transform 0.5s,width 0.5s,height 0.5s;
transition-delay:1s,0.5s,0.5s;
}
.menuToggle.active ~ .menu
{
width:240px;
height:70px;
z-index:1;
transform:translateY(-100px);
transition-delay:0s,0.5s,0.5s;
box-shadow:0 15px 25px rgba(0,0,0,0.1);
}
.menu::before
{
content:'';
position:absolute;
width:16px;
height:16px;
background:#fff;
left:calc(50% - 8px);
bottom:4px;
transform:rotate(45deg);
border-radius:2px;
transition:0.5s;
}
.menuToggle.active ~ .menu::before
{
transition-delay:0.5s;
bottom:-6px;
}
.menu ul
{
position:relative;
display:flex;
justify-content:center;
align-items:center;
height:80px;
gap:40px
}
.menu ul li
{
list-style:none;
cursor:pointer;
opacity:0;
visibility:hidden;
transition:0.25s;
transform:translateY(-30px);
transition:0.25s;
transition-delay:calc(0s + var(--i));
}
.menuToggle.active ~ .menu ul li
{
opacity:1;
visibility:visible;
transform:translateY(0px);
transition-delay:calc(0.75s + var(--i));
}
.menu ul li a
{
display:block;
font-size:2em;
text-decoration:none;
color:#555;
}
.menu ul li:hover a
{
color:#ff216d;
}
JS
let menuToggle = document.querySelector('.menuToggle');
menuToggle.onclick = function(){
menuToggle.classList.toggle('active')
}
/*
All the credist: https://www.youtube.com/watch?v=BsE6k7siWKE
*/
Deja tu comentario