|
|
Line 1: |
Line 1: |
| /* CSS placed here will be applied to all skins */ | | /* CSS placed here will be applied to all skins */ |
− |
| |
− | @mixin textGlitch($name, $intensity, $textColor, $background, $highlightColor1, $highlightColor2, $width, $height) {
| |
− |
| |
− | color: $textColor;
| |
− | position: relative;
| |
− | $steps: $intensity;
| |
− |
| |
− | // Ensure the @keyframes are generated at the root level
| |
− | @at-root {
| |
− | // We need two different ones
| |
− | @for $i from 1 through 2 {
| |
− | @keyframes #{$name}-anim-#{$i} {
| |
− | @for $i from 0 through $steps {
| |
− | #{percentage($i*(1/$steps))} {
| |
− | clip: rect(
| |
− | random($height)+px,
| |
− | $width+px,
| |
− | random($height)+px,
| |
− | 0
| |
− | );
| |
− | }
| |
− | }
| |
− | }
| |
− | }
| |
− | }
| |
− | &:before,
| |
− | &:after {
| |
− | content: attr(data-text);
| |
− | position: absolute;
| |
− | top: 0;
| |
− | left: 0;
| |
− | width: 100%;
| |
− | background: $background;
| |
− | clip: rect(0, 0, 0, 0);
| |
− | }
| |
− | &:after {
| |
− | left: 2px;
| |
− | text-shadow: -1px 0 $highlightColor1;
| |
− | animation: #{$name}-anim-1 2s infinite linear alternate-reverse;
| |
− | }
| |
− | &:before {
| |
− | left: -2px;
| |
− | text-shadow: 2px 0 $highlightColor2;
| |
− | animation: #{$name}-anim-2 3s infinite linear alternate-reverse;
| |
− | }
| |
− |
| |
− | }
| |
− |
| |
− |
| |
− | @mixin imgGlitch($name, $intensity, $width, $height, $top, $left) {
| |
− |
| |
− | $steps: $intensity;
| |
− |
| |
− | // Ensure the @keyframes are generated at the root level
| |
− | @at-root {
| |
− | // We need two different ones
| |
− | @for $i from 1 through 2 {
| |
− | @keyframes #{$name}-anim-#{$i} {
| |
− | @for $i from 0 through $steps {
| |
− | #{percentage($i*(1/$steps))} {
| |
− | clip: rect(
| |
− | random($height)+px,
| |
− | $width+px,
| |
− | random($height)+px,
| |
− | 0
| |
− | );
| |
− | }
| |
− | }
| |
− | }
| |
− | }
| |
− | }
| |
− |
| |
− | > img {
| |
− | position: absolute;
| |
− | top: $top+px;
| |
− | left: $left+px;
| |
− | }
| |
− | > img:nth-child(2),
| |
− | > img:nth-child(3){
| |
− | clip: rect(0, 0, 0, 0);
| |
− | }
| |
− | > img:nth-child(2) {
| |
− | left: ($left + 2) + px;
| |
− | animation: #{$name}-anim-1 2s infinite linear alternate-reverse;
| |
− | }
| |
− | > img:nth-child(3) {
| |
− | left: ($left - 2) + px;
| |
− | animation: #{$name}-anim-2 3s infinite linear alternate-reverse;
| |
− | }
| |
− | }
| |
− |
| |
− |
| |
− |
| |
− | @mixin svgGlitch($name, $intensity, $fillColor, $background, $fillHighlight1, $fillHighlight2, $width, $height, $top, $left) {
| |
− |
| |
− | $steps: $intensity;
| |
− |
| |
− | // Ensure the @keyframes are generated at the root level
| |
− | @at-root {
| |
− | // We need two different ones
| |
− | @for $i from 1 through 2 {
| |
− | @keyframes #{$name}-anim-#{$i} {
| |
− | @for $i from 0 through $steps {
| |
− | #{percentage($i*(1/$steps))} {
| |
− | clip: rect(
| |
− | (random($height)-20)+px,
| |
− | $width+px,
| |
− | (random($height)+20)+px,
| |
− | 0
| |
− | );
| |
− | }
| |
− | }
| |
− | }
| |
− | }
| |
− | }
| |
− |
| |
− | svg {
| |
− | position: absolute;
| |
− | top: $top+px;
| |
− | left: $left+px;
| |
− | fill: $fillColor;
| |
− | background: $background;
| |
− | width: $width+px;
| |
− | height: $height+px;
| |
− | }
| |
− | svg:nth-child(2),
| |
− | svg:nth-child(3) {
| |
− | clip: rect(0, 0, 0, 0);
| |
− | }
| |
− | svg:nth-child(2) {
| |
− | fill: $fillHighlight1;
| |
− | left: ($left - 2) + px;
| |
− | animation: #{$name}-anim-1 2s infinite linear alternate-reverse;
| |
− | }
| |
− | svg:nth-child(3) {
| |
− | fill: $fillHighlight2;
| |
− | left: ($left + 2) + px;
| |
− | animation: #{$name}-anim-2 3s infinite linear alternate-reverse;
| |
− | }
| |
− | }
| |