Glassmorphism Social Media Share Button | Html CSS

HTML
<div class="menu">
    <li style="--i:1;--clr:#ff0000;">
        <a href="#"><ion-icon name="logo-youtube"></ion-icon></a>
    </li>
    <li style="--i:2;--clr:#1877f2;">
        <a href="#"><ion-icon name="logo-facebook"></ion-icon></a>
    </li>
    <li style="--i:3;--clr:#ea4c89;">
        <a href="#"><ion-icon name="logo-dribbble"></ion-icon></a>
    </li>
    <li style="--i:4;--clr:#25d366;">
        <a href="#"><ion-icon name="logo-whatsapp"></ion-icon></a>
    </li>
    <div class="toggle">
        <ion-icon name="share-social"></ion-icon>
        <ion-icon name="close-outline"></ion-icon>
    </div>
</div>

<script type="module" src="https://unpkg.com/ionicons@7.1.0/dist/ionicons/ionicons.esm.js"></script>
<script nomodule src="https://unpkg.com/ionicons@7.1.0/dist/ionicons/ionicons.js"></script>
CSS
*
{
    margin:0;
    padding:0;
    box-sizing:border-box;
}
body
{
    display:flex;
    justify-content:center;
    align-items:center;
    min-height:100vh;
    background:#412d72;
}
.menu
{
    position:relative;
    width:220px;
    height:220px;
    display:flex;
    justify-content:center;
    align-items:center;
}
.menu .toggle
{
    position:relative;
    width:100px;
    height:100px;
    border:1px solid rgba(255,255,255,0.1);
    border-radius:50%;
    box-shadow:0 25px 15px rgba(0,0,0,0.25),0 25px 20px rgba(0,0,0,0.1);
    backdrop-filter:blur(10px);
    display:flex;
    justify-content:center;
    align-items:center;
    cursor:pointer;
    font-size:3em;
    color:#fff;
    z-index:10000;
}
.menu .toggle ion-icon
{
    position:absolute;
    opacity:0;
    transition:0.5s;
}
.menu .toggle ion-icon:nth-child(1)
{
    opacity:1;
    transform:rotate(360deg);
}
.menu.active .toggle ion-icon:nth-child(1)
{
    opacity:0;
    transform:rotate(0deg);
}
.menu.active .toggle ion-icon:nth-child(2)
{
    opacity:1;
    transform:rotate(360deg);
}
.menu li 
{
    position:absolute;
    left:0;
    list-style:none;
    transform-origin:110px;
    transition:0.5s;
    transition-delay:calc(0.05s * var(--i));
    transform:rotate(calc(360deg / 4 * var(--i)));
    scale:0;
    z-index:1;
    border-radius:50%;
    overflow:hidden;
}
.menu li::before
{
    content:'';
    position:absolute;
    top:0;
    left:-30px;
    width:20px;
    height:100%;
    background:#fff;
    z-index:10;
    transform:skewX(325deg) translateX(0);
    box-shadow:-5px 0 0 #fff5;
    transition:0.5s;
}
.menu li:hover::before
{
    transform:skewX(325deg) translateX(180px);
    box-shadow:-50px 0 0 #fff5;
}
.menu.active li
{
    scale:1;
}
.menu li a
{
    position:relative;
    display:flex;
    justify-content:center;
    align-items:center;
    width:80px;
    height:80px;
    background:var(--clr);
    color:#fff;
    font-size:2.25em;
    border-radius:50%;
    transform:rotate(calc(360deg / -4 * var(--i)));
    box-shadow:0 3px 4px rgba(0,0,0,0.15);
}
JS
let toggle = document.querySelector('.toggle');
let menu = document.querySelector('.menu');
toggle.onclick = function(){
    menu.classList.toggle('active');
}

/* All the credits to: https://www.youtube.com/watch?v=yskTFmEAHEc */

Autor: Compositu

Publicado: 07/10/2023

Compartir Elemento Web

Donar a Compositu
Otras formas de ayudar
  • Compártelo en tus redes sociales.
  • Recomienda los elementos.
  • Regístrate Aquí
  • Deja tu comentario agradeciendo el aporte.

Descarga el código completo del Elemento Web y archivos necesarios (imágenes, librerias, plugins, frameword, etc)

Deja tu comentario