<div class="btn">AVAILABLE NOW</div>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: sans-serif;
}
body {
display: flex;
justify-content: center;
align-items: center;
font-family: sans-serif;
height: 100vh;
background-color: yellow;
}
.btn,
.btn::after {
position: relative;
cursor: pointer;
width: 380px;
height: 80px;
line-height: 80px;
text-align: center;
font-size: 28px;
color: white;
background: linear-gradient(45deg, transparent 5%, #ff013c 5%);
box-shadow: 6px 0 0 #00e6f6;
}
.btn::after {
--slice-0: inset(50% 50% 50% 50%);
--slice-1: inset(80% -6px 0 0);
--slice-2: inset(50% -6px 20% 0);
--slice-3: inset(10% -6px 85% 0);
--slice-4: inset(50% -6px 40% 0);
--slice-5: inset(80% -6px 4% 0);
content: "AVAILABLE NOW";
position: absolute;
top: 0;
left: 0;
background: linear-gradient(
45deg,
transparent 3%,
#00e6f6 3%,
#00e6f6 5%,
#ff013c 5%
);
text-shadow: -3px -3px 0px #f8f005, 3px 3px 0px #00e6f6;
clip-path: var(--slice-0);
}
.btn:hover::after {
animation: glitch 1s;
animation-timing-function: steps(1);
}
@keyframes glitch {
0% {
clip-path: var(--slice-0);
transform: translate(-20px, -10px);
}
10% {
clip-path: var(--slice-3);
transform: translate(30px, 10px);
}
20% {
clip-path: var(--slice-1);
transform: translate(-30px, -10px);
}
30% {
clip-path: var(--slice-4);
transform: translate(10px, 10px);
}
40% {
clip-path: var(--slice-2);
transform: translate(-10px, -10px);
}
50% {
clip-path: var(--slice-5);
transform: translate(20px, -10px);
}
60% {
clip-path: var(--slice-2);
transform: translate(-20px, 10px);
}
70% {
clip-path: var(--slice-4);
transform: translate(-10px, -10px);
}
80% {
clip-path: var(--slice-3);
transform: translate(-20px, 10px);
}
90% {
clip-path: var(--slice-5);
transform: translate(-20px, -10px);
}
100% {
clip-path: var(--slice-0);
transform: translate(-20px, 10px);
}
}
.btn:hover {
animation: glitchBtn 1s;
animation-timing-function: steps(1);
}
@keyframes glitchBtn {
0% {
transform: translate(-20px, -10px);
}
10% {
transform: translate(20px, 10px);
}
20% {
transform: translate(-20px, -10px);
}
30% {
transform: translate(10px, 10px);
}
40% {
transform: translate(-10px, -10px);
}
50% {
transform: translate(20px, -10px);
}
60% {
transform: translate(-20px, 10px);
}
70% {
transform: translate(-10px, -10px);
}
80% {
transform: translate(-20px, 10px);
}
90% {
transform: translate(-20px, -10px);
}
100% {
transform: translate(-20px, 10px);
}
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.