CSS Glitch effect

Glitch efekt v čistom css

GL!TCH

EFFECT
index.html
<div class="rdev-glitch-wrapper">
  <h1 class="rdev-glitch" data-text="GL!TCH">GL!TCH</h1>
  <span class="rdev-glitch-sub">EFFECT</span>
</div>
styles.css
.rdev-glitch-wrapper {
  min-height: 300px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.rdev-glitch-sub {
  color: #ff4a54;
  letter-spacing: 1em;
  text-transform: uppercase;
  font-weight: bold;
  font-family: sans-serif;
  font-size: 1.2rem;
}

.rdev-glitch {
  position: relative;
  color: #fff;
  font-size: 4rem;
  letter-spacing: 0.1em;
  font-family: sans-serif;
  text-transform: uppercase;
  animation: rdev-glitch-skew 1s infinite linear alternate-reverse;
}

.rdev-glitch::before,
.rdev-glitch::after {
  content: attr(data-text);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  color: #fff;
  background: transparent;
}

.rdev-glitch::before {
  left: 2px;
  text-shadow: -2px 0 #ff00c1;
  animation: rdev-glitch-anim 2s infinite linear alternate-reverse;
}

.rdev-glitch::after {
  left: -2px;
  text-shadow: -2px 0 #00fff9, 2px 2px #00fff9;
  animation: rdev-glitch-anim2 2s infinite linear alternate-reverse;
}

@keyframes rdev-glitch-anim {
  0% { clip: rect(0, 9999px, 0, 0); }
  10% { clip: rect(10px, 9999px, 30px, 0); }
  20% { clip: rect(50px, 9999px, 80px, 0); }
  30% { clip: rect(30px, 9999px, 60px, 0); }
  40% { clip: rect(0, 9999px, 40px, 0); }
  100% { clip: rect(0, 9999px, 0, 0); }
}

@keyframes rdev-glitch-anim2 {
  0% { clip: rect(20px, 9999px, 60px, 0); }
  10% { clip: rect(40px, 9999px, 70px, 0); }
  20% { clip: rect(10px, 9999px, 30px, 0); }
  30% { clip: rect(60px, 9999px, 90px, 0); }
  40% { clip: rect(30px, 9999px, 50px, 0); }
  100% { clip: rect(0, 9999px, 0, 0); }
}

@keyframes rdev-glitch-skew {
  0% { transform: skew(0deg); }
  20% { transform: skew(5deg); }
  40% { transform: skew(-5deg); }
  60% { transform: skew(3deg); }
  80% { transform: skew(-3deg); }
  100% { transform: skew(0deg); }
}