53 lines
1.1 KiB
SCSS
53 lines
1.1 KiB
SCSS
|
// Lucas Bebber's Glitch Effect
|
||
|
// Tutorial and CSS from CSS Tricks
|
||
|
// https://css-tricks.com/glitch-effect-text-images-svg/
|
||
|
|
||
|
.error {
|
||
|
color: $gray-800;
|
||
|
font-size: 7rem;
|
||
|
position: relative;
|
||
|
line-height: 1;
|
||
|
width: 12.5rem;
|
||
|
}
|
||
|
@keyframes noise-anim {
|
||
|
$steps: 20;
|
||
|
@for $i from 0 through $steps {
|
||
|
#{percentage($i*(1/$steps))} {
|
||
|
clip: rect(random(100)+px,9999px,random(100)+px,0);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
.error:after {
|
||
|
content: attr(data-text);
|
||
|
position: absolute;
|
||
|
left: 2px;
|
||
|
text-shadow: -1px 0 $red;
|
||
|
top: 0;
|
||
|
color: $gray-800;
|
||
|
background: $gray-100;
|
||
|
overflow: hidden;
|
||
|
clip: rect(0,900px,0,0);
|
||
|
animation: noise-anim 2s infinite linear alternate-reverse;
|
||
|
}
|
||
|
|
||
|
@keyframes noise-anim-2 {
|
||
|
$steps: 20;
|
||
|
@for $i from 0 through $steps {
|
||
|
#{percentage($i*(1/$steps))} {
|
||
|
clip: rect(random(100)+px,9999px,random(100)+px,0);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
.error:before {
|
||
|
content: attr(data-text);
|
||
|
position: absolute;
|
||
|
left: -2px;
|
||
|
text-shadow: 1px 0 $blue;
|
||
|
top: 0;
|
||
|
color: $gray-800;
|
||
|
background: $gray-100;
|
||
|
overflow: hidden;
|
||
|
clip: rect(0,900px,0,0);
|
||
|
animation: noise-anim-2 3s infinite linear alternate-reverse;
|
||
|
}
|