JSFiddle - React, Tailwind, and code Playground
by Alicia Sykes
HTML
<section class="glitch-container">
<div title="Hello Friend" class="glitch">Hello Friend</div>
</section>
CSS
@import url('https://fonts.googleapis.com/css?family=Fira+Mono:400');
section.glitch-container {
display: flex;
width: 100%;
background: #060913;
height: 300px;
align-items: center;
justify-content: center;
border-radius: 10px;
color: #fff;
font-size: 96px;
font-family: 'Fira Mono', monospace;
letter-spacing: -7px;
}
div.glitch{
animation: glitch 1s linear infinite;
}
@keyframes glitch{
2%,64%{
transform: translate(2px,0) skew(0deg);
}
4%,60%{
transform: translate(-2px,0) skew(0deg);
}
62%{
transform: translate(0,0) skew(5deg);
}
}
div.glitch:before,
div.glitch:after{
content: attr(title);
position: absolute;
left: 0;
}
div.glitch:before{
animation: glitchTop 1s linear infinite;
clip-path: polygon(0 0, 100% 0, 100% 33%, 0 33%);
-webkit-clip-path: polygon(0 0, 100% 0, 100% 33%, 0 33%);
}
@keyframes glitchTop{
2%,64%{
transform: translate(2px,-2px);
}
4%,60%{
transform: translate(-2px,2px);
}
62%{
transform: translate(13px,-1px) skew(-13deg);
}
}
div.glitch:after{
animation: glitchBotom 1.5s linear infinite;
clip-path: polygon(0 67%, 100% 67%, 100% 100%, 0 100%);
-webkit-clip-path: polygon(0 67%, 100% 67%, 100% 100%, 0 100%);
}
@keyframes glitchBotom{
2%,64%{
transform: translate(-2px,0);
}
4%,60%{
transform: translate(-2px,0);
}
62%{
transform: translate(-22px,5px) skew(21deg);
}
}