Levitar ou Flutuar com CSS (Efeito hover) - Reino Kawaii

segunda-feira, 9 de abril de 2018

Levitar ou Flutuar com CSS (Efeito hover)

Não é só os mágicos que fazem as coisas levitarem, a gente também pode fazer isso com CSS...
Encontrei uma série de efeitos hover (aqueles que aparecem quando o mouse está sobre um elemento, tipo um menu, um link, botão, imagem...) criados por Ian Lunn. E dentre eles, o que mais curti foi o que faz com que o item flutue ao passar o mouse, com direito a sombra por baixo para ficar mais realista. Por exemplo, pause o cursor sobre meu chibi (by Chanrio) abaixo:


Visualize a página de exemplo com todos os efeitos hover que se pode fazer usando Css. Na imagem acima, usei 2 deles, o efeito de transição 2D chamado Bob, que faz "levitar", e o "float shadow" que faz aparecer a sombra.
Para aplicar esse efeito a alguma coisa, você pode ver o código css nesse link ou fazer download dos códigos no github do autor (aqui ou link direto) e abrir o arquivo com nome hover.css (dentro da pasta css).
Aí você adiciona os trechos do código referente ao que deseja aplicar, no caso o Bob e Float Shadow, antes de /b:skin no html do seu template ou entre <style> e </style>:
/* Bob */
@-webkit-keyframes hvr-bob {
  0% {
    -webkit-transform: translateY(-8px);
    transform: translateY(-8px);
  }
  50% {
    -webkit-transform: translateY(-4px);
    transform: translateY(-4px);
  }
  100% {
    -webkit-transform: translateY(-8px);
    transform: translateY(-8px);
  }
}
@keyframes hvr-bob {
  0% {
    -webkit-transform: translateY(-8px);
    transform: translateY(-8px);
  }
  50% {
    -webkit-transform: translateY(-4px);
    transform: translateY(-4px);
  }
  100% {
    -webkit-transform: translateY(-8px);
    transform: translateY(-8px);
  }
}
@-webkit-keyframes hvr-bob-float {
  100% {
    -webkit-transform: translateY(-8px);
    transform: translateY(-8px);
  }
}
@keyframes hvr-bob-float {
  100% {
    -webkit-transform: translateY(-8px);
    transform: translateY(-8px);
  }
}
.hvr-bob {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
}
.hvr-bob:hover, .hvr-bob:focus, .hvr-bob:active {
  -webkit-animation-name: hvr-bob-float, hvr-bob;
  animation-name: hvr-bob-float, hvr-bob;
  -webkit-animation-duration: .3s, 1.5s;
  animation-duration: .3s, 1.5s;
  -webkit-animation-delay: 0s, .3s;
  animation-delay: 0s, .3s;
  -webkit-animation-timing-function: ease-out, ease-in-out;
  animation-timing-function: ease-out, ease-in-out;
  -webkit-animation-iteration-count: 1, infinite;
  animation-iteration-count: 1, infinite;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-direction: normal, alternate;
  animation-direction: normal, alternate;
}
/* Float Shadow */
.hvr-float-shadow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
}
.hvr-float-shadow:before {
  pointer-events: none;
  position: absolute;
  z-index: -1;
  content: '';
  top: 100%;
  left: 5%;
  height: 10px;
  width: 90%;
  opacity: 0;
  background: -webkit-radial-gradient(center, ellipse, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 80%);
  background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 80%);
  /* W3C */
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform, opacity;
  transition-property: transform, opacity;
}
.hvr-float-shadow:hover, .hvr-float-shadow:focus, .hvr-float-shadow:active {
  -webkit-transform: translateY(-5px);
  transform: translateY(-5px);
  /* move the element up by 5px */
}
.hvr-float-shadow:hover:before, .hvr-float-shadow:focus:before, .hvr-float-shadow:active:before {
  opacity: 1;
  -webkit-transform: translateY(5px);
  transform: translateY(5px);
  /* move the element down by 5px (it will stay in place because it's attached to the element that also moves up 5px) */
}
Agora, se quiser usar em um botão, menu, ou outra coisa nesse estilo com link, faça assim:

Kawaii
<center><a href="#" class="hvr-bob hvr-float-shadow hvr-trim">Link</a></center>
Se for com imagem:
<center><div class="hvr-bob hvr-float-shadow"> <img src='LINK-DA-IMAGEM'/></div></center>
O mesmo vale para os demais efeitos. Copie o código referente ao que quiser usar ou cole tudo o que houver no hover.css antes de /b:skin e depois, onde quiser que apareça, basta acrescentar em class="hvr-nomedoefeito".

Imagem de abertura do post: Freepik.com

Nenhum comentário:

Postar um comentário

Muito obrigada por seu comentário e por sua presença! Ambos são super importantes para mim.

Apenas peço que:
- Comente a vontade, dê sua opinião, faça críticas, esclareça suas dúvidas e dê suas sugestões sobre o assunto referente às postagens;
- Use um vocabulário livre para todas as idades;
- Não ofenda ninguém em hipótese alguma.

Os comentários são moderados e não são permitidos comentários de pessoas que não se identifiquem. Algumas dúvidas podem ser previamente esclarecidas na F.A.Q, assim como créditos e outras coisas.

Por favor, entrem em contato por meio das redes sociais também para dúvidas, sugestões, pedidos ou outros:
Facebook - Twitter - Google+ - Deviantart