"Pure CSS Glitch Experiment (Twitch Intro WIP)"
Bootstrap 4.1.1 Snippet by csshint

<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> <script src="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <!------ Include the above in your HEAD tag ----------> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width" /> <title>Glitch</title> <link href='https://fonts.googleapis.com/css?family=Oswald' rel='stylesheet' type='text/css'> <link rel="stylesheet" href="style.css" /> </head> <body> <div class="glitch" data-text="CYBERCOUNTESS">CYBERCOUNTESS</div> <div class="glow">CYBERCOUNTESS</div> <p class="subtitle">Engineer﹒Gamer﹒Shenaniganizer</p> <div class="scanlines"></div> <div class="ftr">Design by <a href="http://www.csshint.com/" target="_blank">www.csshint.com</a></div> </body> </html>
body { background: black; font-family: "Oswald", sans-serif; font-style: italic; } .glitch { color: rgb(223, 191, 191); position: relative; font-size: 10rem; margin: 70px 200px; animation: glitch 5s 5s infinite; } .glitch::before { content: attr(data-text); position: absolute; left: -2px; text-shadow: -5px 0 magenta; background: black; overflow: hidden; top: 0; animation: noise-1 3s linear infinite alternate-reverse, glitch 5s 5.05s infinite; } .glitch::after { content: attr(data-text); position: absolute; left: 2px; text-shadow: -5px 0 lightgreen; background: black; overflow: hidden; top: 0; animation: noise-2 3s linear infinite alternate-reverse, glitch 5s 5s infinite; } @keyframes glitch { 1%{ transform: rotateX(10deg) skewX(90deg); } 2%{ transform: rotateX(0deg) skewX(0deg); } } @keyframes noise-1 { $steps: 30; @for $i from 1 through $steps { #{percentage($i*(1/$steps))} { $top: random(100); $bottom: random(101 - $top); clip-path: inset(#{$top}px 0 #{$bottom}px 0); } } } @keyframes noise-2 { $steps: 30; @for $i from 0 through $steps { #{percentage($i*(1/$steps))} { $top: random(100); $bottom: random(101 - $top); clip-path: inset(#{$top}px 0 #{$bottom}px 0); } } } .scanlines { overflow: hidden; mix-blend-mode: difference; } .scanlines::before { content: ""; position: absolute; width: 100%; height: 100%; top: 0; left: 0; background: repeating-linear-gradient( to bottom, transparent 0%, rgba(255, 255, 255, 0.05) .5%, transparent 1% ); animation: fudge 7s ease-in-out alternate infinite; } @keyframes fudge { from { transform: translate(0px, 0px); } to { transform: translate(0px, 2%); } } .glow { @extend .glitch; text-shadow: 0 0 1000px rgb(223, 191, 191); color: transparent; margin-top: -300px; } .subtitle { font-family: Arial, Helvetica, sans-serif; font-weight: 100; color: rgba(165, 141, 141, .4); text-transform: uppercase; letter-spacing: 1em; text-align: center; margin-top: -50px; animation: glitch-2 5s 5.02s infinite; } .ftr{ text-align: center; margin-top: 20px; position:absolute; bottom:20px; } .ftr a{ color: #fff; } @keyframes glitch-2 { 1%{ transform: rotateX(10deg) skewX(70deg); } 2%{ transform: rotateX(0deg) skewX(0deg); } }

Related: See More


Questions / Comments: