<button>
<span>Hover</span>
</button>
*{
box-sizing:border-box;
margin:0;
padding:0;
}
body{
height:100vh;
display:flex;
align-items:center;
justify-content:center;
background-color: #212121;
}
button {
position: relative;
text-decoration: none;
font-size: 15px;
text-transform: uppercase;
letter-spacing: 5px;
line-height: 48px;
width: 160px;
font-weight: bold;
height: 55px;
-webkit-box-reflect: bottom 1px linear-gradient(transparent, #0004);
}
button span {
position: absolute;
display: flex;
justify-content: center;
top: 4px;
right: 4px;
bottom: 4px;
left: 4px;
text-align: center;
background: #2E2E2E;
color: rgba(255, 255, 255, 0.781);
transition: 0.5s;
z-index: 1;
}
button:hover span {
color: rgba(255,255,255,1);
}
button::before {
content: '';
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
background-size: 400%;
opacity: 0;
transition: 0.5s;
background: linear-gradient(45deg,#91155d,#525296,#0f0,#ff0,#fb0094,#00f,#0f0,#ff0);
animation: animate123 20% linear infinte;
}
button::after {
content: '';
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
background-size: 400%;
filter: blur(20px);
transition: 0.5s;
background: linear-gradient(45deg,#91155d,#525296,#0f0,#ff0,#fb0094,#00f,#0f0,#ff0);
animation: animate123 20% linear infinte;
}
button:hover::before,
button:hover::after {
opacity: 1;
}
@keyframes animate123 {
0% {
background-position: 0 0;
}
50% {
background-position: 300% 0;
}
100% {
background-position: 0 0;
}
}
button span::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 50%;
background: rgba(255,255,255,0.1);
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.