Carregando...

Card css hover efeito slideUp

Postado: 9 de março de 2023 Tempo de Leitura: 2 Minutos

Card css hover efeito slideUp

Neste tutorial vamos criar um card efeito slideup com HTML e CSS.

Nesta seção, projetaremos uma estrutura simples na tag <ul><li><img>, e a <a> para inserir o link de destino. 

Usaremos as classes (.box-card, .card, .content-card, .titulo, .descricao, .btn ) para dar o formato e estilizar com css.

Essas são as tags e classes que usaremos para criar o nosso Card css hover.

Vamos Adicionar o HTML

    <div class="box-card">
    
        <div class="card">
          
          <div class="content-card">
              <h2 class="titulo">Loop Nerd</h2>
              <p class="descricao">Códigos html e css prontos para agilizar o seu tempo.</p>
              <a href="#" class="btn">Veja mais...</a>
          </div>
        
        </div>
    
    </div>

Vamos Adicionar o CSS

Nesta seção, usaremos algumas propriedades CSS para estilizar o  nosso Card.

.box-card {
  
  display: grid;
  grid-gap: 1rem;
  padding: 1rem;
  max-width: 300px;
  margin: 0 auto;
  font-family: 'open_sansregular';

}


.card {

      position: relative;
      display: flex;
      align-items: flex-end;
      overflow: hidden;
      padding: 1rem;
      width: 100%;
      text-align: center;
      color: whitesmoke;
      background-color: whitesmoke;
      box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1), 0 2px 2px rgba(0, 0, 0, 0.1), 0 4px 4px rgba(0, 0, 0, 0.1), 0 8px 8px rgba(0, 0, 0, 0.1), 0 16px 16px rgba(0, 0, 0, 0.1);

}

@media (min-width: 600px) {

  .card { height: 350px; }

}

.card:before {

  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 110%;
  background-size: cover;
  background-position: 0 0;
  transition: transform calc(700ms * 1.5) cubic-bezier(0.19, 1, 0.22, 1);
  pointer-events: none;

}

.card:after {

  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 200%;
  pointer-events: none;
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.009) 11.7%, rgba(0, 0, 0, 0.034) 22.1%, rgba(0, 0, 0, 0.072) 31.2%, rgba(0, 0, 0, 0.123) 39.4%, rgba(0, 0, 0, 0.182) 46.6%, rgba(0, 0, 0, 0.249) 53.1%, rgba(0, 0, 0, 0.32) 58.9%, rgba(0, 0, 0, 0.394) 64.3%, rgba(0, 0, 0, 0.468) 69.3%, rgba(0, 0, 0, 0.54) 74.1%, rgba(0, 0, 0, 0.607) 78.8%, rgba(0, 0, 0, 0.668) 83.6%, rgba(0, 0, 0, 0.721) 88.7%, rgba(0, 0, 0, 0.762) 94.1%, rgba(0, 0, 0, 0.79) 100%);
  transform: translateY(-50%);
  transition: transform calc(700ms * 2) cubic-bezier(0.19, 1, 0.22, 1);

}

.card:before {
  background-image: url('../uploads/foto.jpg');
}

.content-card {

  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  padding: 1rem;
  transition: transform calc(700ms * 1.5) cubic-bezier(0.19, 1, 0.22, 1);
  z-index: 1;

}

.content-card > * + * {
  margin-top: 1rem;
}

.titulo {
  font-size: 1.5em;
  font-weight: bold;
  line-height: 1.2;
}

.descricao {

  font-family: 'open_sansregular';
  font-size: 1em;
  font-style: italic;
  line-height: 1.35;

}

.btn {

    cursor: pointer;
    margin-top: 1.6em;
    padding: 0.8em 1.3em;
    font-size: 0.8em;
    font-weight: bold;
    text-transform: uppercase;
    color: #fff;
    background-color: #067efe;
    border: none;
    border-radius: 6px;
    letter-spacing: 0.10em;
    text-decoration: none;
    transition: 0.5s!important;

}

.btn:hover { background-color: #fff; color:#067efe }


@media (hover: hover) and (min-width: 600px) {
  
  .card:after { transform: translateY(0); }

  .content-card { transform: translateY(calc(100% - 4.5rem)); }

  .content-card > *:not(.titulo) {
    opacity: 0;
    transform: translateY(1rem);
    transition: transform 700ms cubic-bezier(0.19, 1, 0.22, 1), opacity 700ms cubic-bezier(0.19, 1, 0.22, 1);
  }

  .card:hover,
  .card:focus-within {
    align-items: center;
  }
  
  .card:hover:before,
  .card:focus-within:before {
    transform: translateY(-4%);
  }
  
  .card:hover:after,
  .card:focus-within:after {
    transform: translateY(-50%);
  }
  
  .card:hover .content-card,
  .card:focus-within .content-card {
    transform: translateY(0);
  }
  
  .card:hover .content-card > *:not(.titulo),
  .card:focus-within .content-card > *:not(.titulo) {
    opacity: 1;
    transform: translateY(0);
    transition-delay: calc(700ms / 8);
  }

   .card:focus-within:before, .card:focus-within:after,
   .card:focus-within .content-card,
   .card:focus-within .content-card > *:not(.titulo) {
    transition-duration: 0s;
  }
}

Combinando as Duas seções acima Html e Css temos o seguinte Resultado!

Veja o Resultado baixo!

Baixar Código Veja Funcionando

Publicado por: Loop Nerd

535 Visualizações

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Artigos Relacionados