html
<button>
Click me
</button>
css
button {
--bg: #e74c3c;
--text-color: #fff;
position: relative;
width: 150px;
border: none;
background: var(--bg);
color: var(--text-color);
padding: 1em;
font-weight: bold;
text-transform: uppercase;
transition: 0.2s;
border-radius: 5px;
opacity: 0.8;
letter-spacing: 1px;
box-shadow: #c0392b 0px 7px 2px, #000 0px 8px 5px;
}
button:hover {
opacity: 1;
}
button:active {
top: 4px;
box-shadow: #c0392b 0px 3px 2px,#000 0px 3px 5px;
}
html
<button>
<span>PLAY NOW</span>
</button>
css
button {
border: none;
position: relative;
width: 200px;
height: 73px;
padding: 0;
z-index: 2;
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='868' width='2500' viewBox='0 0 726 252.17'%3E%3Cpath d='M483.92 0S481.38 24.71 466 40.11c-11.74 11.74-24.09 12.66-40.26 15.07-9.42 1.41-29.7 3.77-34.81-.79-2.37-2.11-3-21-3.22-27.62-.21-6.92-1.36-16.52-2.82-18-.75 3.06-2.49 11.53-3.09 13.61S378.49 34.3 378 36a85.13 85.13 0 0 0-30.09 0c-.46-1.67-3.17-11.48-3.77-13.56s-2.34-10.55-3.09-13.61c-1.45 1.45-2.61 11.05-2.82 18-.21 6.67-.84 25.51-3.22 27.62-5.11 4.56-25.38 2.2-34.8.79-16.16-2.47-28.51-3.39-40.21-15.13C244.57 24.71 242 0 242 0H0s69.52 22.74 97.52 68.59c16.56 27.11 14.14 58.49 9.92 74.73C170 140 221.46 140 273 158.57c69.23 24.93 83.2 76.19 90 93.6 6.77-17.41 20.75-68.67 90-93.6 51.54-18.56 103-18.59 165.56-15.25-4.21-16.24-6.63-47.62 9.93-74.73C656.43 22.74 726 0 726 0z'/%3E%3C/svg%3E") no-repeat 50% 50%;
mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='868' width='2500' viewBox='0 0 726 252.17'%3E%3Cpath d='M483.92 0S481.38 24.71 466 40.11c-11.74 11.74-24.09 12.66-40.26 15.07-9.42 1.41-29.7 3.77-34.81-.79-2.37-2.11-3-21-3.22-27.62-.21-6.92-1.36-16.52-2.82-18-.75 3.06-2.49 11.53-3.09 13.61S378.49 34.3 378 36a85.13 85.13 0 0 0-30.09 0c-.46-1.67-3.17-11.48-3.77-13.56s-2.34-10.55-3.09-13.61c-1.45 1.45-2.61 11.05-2.82 18-.21 6.67-.84 25.51-3.22 27.62-5.11 4.56-25.38 2.2-34.8.79-16.16-2.47-28.51-3.39-40.21-15.13C244.57 24.71 242 0 242 0H0s69.52 22.74 97.52 68.59c16.56 27.11 14.14 58.49 9.92 74.73C170 140 221.46 140 273 158.57c69.23 24.93 83.2 76.19 90 93.6 6.77-17.41 20.75-68.67 90-93.6 51.54-18.56 103-18.59 165.56-15.25-4.21-16.24-6.63-47.62 9.93-74.73C656.43 22.74 726 0 726 0z'/%3E%3C/svg%3E") no-repeat 50% 50%;
-webkit-mask-size: 100%;
cursor: pointer;
background-color: transparent;
transform: translateY(8px)
}
button:after {
content: '';
position: absolute;
left: 0;
right: 0;
bottom: 0;
box-shadow: 0px 0 0 0 white;
transition: all 2s ease;
}
button:hover:after {
box-shadow: 0px -13px 56px 12px #ffffffa6;
}
button span {
position: absolute;
width: 100%;
font-size: 15px;
font-weight: 100;
left: 50%;
top: 39%;
letter-spacing: 3px;
text-align: center;
transform: translate(-50%,-50%);
color: black;
transition: all 2s ease;
}
button:hover span {
color: white;
}
button:before {
content: '';
position: absolute;
width: 0;
height: 100%;
background-color: black;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
transition: all 1s ease;
}
button:hover:before {
width: 100%;
}
html
<button class="button">
<svg viewBox="0 0 448 512" class="svgIcon"><path d="M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z"></path></svg>
</button>
css
.button {
width: 50px;
height: 50px;
border-radius: 50%;
background-color: rgb(20, 20, 20);
border: none;
font-weight: 600;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.164);
cursor: pointer;
transition-duration: .3s;
overflow: hidden;
position: relative;
}
.svgIcon {
width: 12px;
transition-duration: .3s;
}
.svgIcon path {
fill: white;
}
.button:hover {
width: 140px;
border-radius: 50px;
transition-duration: .3s;
background-color: rgb(255, 69, 69);
align-items: center;
}
.button:hover .svgIcon {
width: 50px;
transition-duration: .3s;
transform: translateY(60%);
}
.button::before {
position: absolute;
top: -20px;
content: "Delete";
color: white;
transition-duration: .3s;
font-size: 2px;
}
.button:hover::before {
font-size: 13px;
opacity: 1;
transform: translateY(30px);
transition-duration: .3s;
}