Pular para o conteúdo principal

Efeito GLITCH no título com CSS

Efeito GLITCH no título com CSS

Colocar um efeito no titulo pode fazer muita diferença quando a intenção é chamar a atenção, vou mostrar como criar um efeito de GLITCH usando o CSS de forma simples.

Para criar um efeito com CSS é necessário uma Class na tag HTML que deseja animar e um keyframes que será responsável pela sequência de ações na animação.

Efeito GLITCH no título com CSS

O que é um efeito GLITCH?

O glitch é um efeito que simula essas distorções e interferências, o termo vem do inglês que, traduzido, significa “falha”.


TEXTO GLITCH

 

Criando o HTML para o efeito GLITCH

No HTML vamos criar uma class para aplicar o efeito CSS e um atributo chamado data-text que vai auxiliar na criação do efeito.

Para isso funcionar o nome que está dentro da Tag deverá ser o mesmo dentro do atributo.

Copie o HTML abaixo.

<h2 style="color: #fff" class="glitch" data-text="GLITCH.">GLITCH</h2>

Observe que a cor do titulo está como branco então o fundo deve ser escuro e de preferência em um fundo de cor sólida.

 

Criando o css para o efeito GLITCH

Para iniciar crie o estilo do seu título e formatações.

Copie o código abaixo.

.glitch {

  font-size: 100px;

  position: relative;

  width: 100%;

  margin: 0 auto;

}

 

Para criar o efeito de GLITCH será necessário criar duas class que vão aplicar um efeito antes e depois, “glitch:after” e “glitch:before”.

Cada class vai controlar o efeito no titulo, um vai aplicar no lado direito da letra e o outro no lado esquerdo da letra.

Copie o código abaixo.

.glitch:after {

  content: attr(data-text);

  position: absolute;

  left: 2px;

  text-shadow: -2px 0 red;

  top: 0;

  color: white;

  /*usar a cor de fundo solido*/

  background: black;

  overflow: hidden;

  clip: rect(0, 900px, 0, 0);

  animation: glitch1 2s infinite linear alternate-reverse;

}

 

.glitch:before {

  content: attr(data-text);

  position: absolute;

  left: -2px;

  text-shadow: 1px 0 blue;

  top: 0;

  color: white;

   /*usar a cor de fundo solido*/

  background: black;

  overflow: hidden;

  clip: rect(0, 900px, 0, 0);

  animation: glitch2 3s infinite linear alternate-reverse;

}

 

Observe que tem um aviso sobre a cor de fundo, é recomendado que use no efeito a mesma cor sólida que está no fundo do site.

Caso o seu fundo seja uma imagem então remova o “background: black;” mas ao remover o efeito não será tão bom.

No final da class existe um comando que chama a animação do keyframes que é o “animation:”, dentro desse keyframes é onde a animação será executada.

Copie abaixo os dois códigos.

@keyframes glitch1 {

  0% {

    clip: rect(59px, 9999px, 84px, 0);

  }

  5% {

    clip: rect(46px, 9999px, 36px, 0);

  }

  10% {

    clip: rect(72px, 9999px, 84px, 0);

  }

  15% {

    clip: rect(58px, 9999px, 43px, 0);

  }

  20% {

    clip: rect(34px, 9999px, 62px, 0);

  }

  25% {

    clip: rect(63px, 9999px, 84px, 0);

  }

  30% {

    clip: rect(59px, 9999px, 73px, 0);

  }

  35% {

    clip: rect(15px, 9999px, 44px, 0);

  }

  40% {

    clip: rect(7px, 9999px, 81px, 0);

  }

  45% {

    clip: rect(63px, 9999px, 35px, 0);

  }

  50% {

    clip: rect(61px, 9999px, 98px, 0);

  }

  55% {

    clip: rect(8px, 9999px, 41px, 0);

  }

  60% {

    clip: rect(29px, 9999px, 32px, 0);

  }

  65% {

    clip: rect(7px, 9999px, 55px, 0);

  }

  70% {

    clip: rect(36px, 9999px, 60px, 0);

  }

  75% {

    clip: rect(75px, 9999px, 83px, 0);

  }

  80% {

    clip: rect(100px, 9999px, 16px, 0);

  }

  85% {

    clip: rect(47px, 9999px, 22px, 0);

  }

  90% {

    clip: rect(8px, 9999px, 45px, 0);

  }

  95% {

    clip: rect(0, 900px, 0, 0);

  }

  100% {

    clip: rect(0, 900px, 0, 0);

  }

}

 

@keyframes glitch2 {

  0% {

    clip: rect(7px, 9999px, 60px, 0);

  }

  5% {

    clip: rect(3px, 9999px, 30px, 0);

  }

  10% {

    clip: rect(75px, 9999px, 95px, 0);

  }

  15% {

    clip: rect(30px, 9999px, 70px, 0);

  }

  20% {

    clip: rect(58px, 9999px, 27px, 0);

  }

  25% {

    clip: rect(67px, 9999px, 80px, 0);

  }

  30% {

    clip: rect(36px, 9999px, 12px, 0);

  }

  35% {

    clip: rect(98px, 9999px, 81px, 0);

  }

  40% {

    clip: rect(99px, 9999px, 91px, 0);

  }

  45% {

    clip: rect(88px, 9999px, 24px, 0);

  }

  50% {

    clip: rect(62px, 9999px, 57px, 0);

  }

  55% {

    clip: rect(17px, 9999px, 82px, 0);

  }

  60% {

    clip: rect(17px, 9999px, 29px, 0);

  }

  65% {

    clip: rect(80px, 9999px, 62px, 0);

  }

  70% {

    clip: rect(35px, 9999px, 40px, 0);

  }

  75% {

    clip: rect(43px, 9999px, 85px, 0);

  }

  80% {

    clip: rect(55px, 9999px, 95px, 0);

  }

  85% {

    clip: rect(67px, 9999px, 58px, 0);

  }

  90% {

    clip: rect(8px, 9999px, 45px, 0);

  }

  95% {

    clip: rect(0, 900px, 0, 0);

  }

  100% {

    clip: rect(0, 900px, 0, 0);

  }

}

 

Juntando tudo isso será possível criar o efeito de GLITCH e lembre que na tag HMTL o nome da tag deve ser o mesmo no atributo.


TEXTO GLITCH




Não pare por aqui! Se você está criando um site e quer ganhar produtividade confira o construtor de páginas do DIVI.

https://www.youtube.com/channel/UCB79Blzrs9n4MhfLZ8W3RCQ


Comentários

Postagens mais visitadas deste blog

Formatar o número do telefone no campo input com JavaScript

Colocar estilo no input range.

Remover e Inserir um atributo na Tag HTML usando JavaScript