CSS transition: saiba como usar transições em um elemento!

O CSS transition está entre as propriedades que surgiram com a nova versão da linguagem de estilo CSS, o CSS3. Na prática, ele permite criar animações sem a necessidade de escrever código JavaScript ou de utilizar recursos externos. Assim, podemos criar inúmeros efeitos de movimento nos elementos e deixar a aplicação web mais interativa e sofisticada.

Apesar de existirem diversas ferramentas online que criam códigos de animação em CSS rapidamente, é importante compreender o que acontece com os elementos durante esse processo. Para demonstrar como esse recurso funciona, preparamos este post que contém os seguintes tópicos:

  • O que é a propriedade transition?
  • Qual é a sua sintaxe?
  • Quais os valores da propriedade transition?
  • Exemplo de uso da propriedade transition
  • Qual a compatibilidade com os navegadores?

Continue com a gente e boa leitura!

O que é a propriedade transition?

A propriedade transition é utilizada para realizar a modificação do estado de um elemento de forma gradativa e de acordo com as características definidas em seus atributos.

Ao posicionarmos o mouse sobre um elemento HTML, por exemplo, acontece o estado hover, no qual podemos criar um código CSS para modificar as propriedades do elemento e apresentar modificações, como mudar a cor do texto ou o tamanho da fonte.

Entretanto, as modificações no estado hover são realizadas instantaneamente. Com a propriedade transition CSS hover podemos fazer com que elas demorem um pouco mais para serem realizadas, o que permite a criação do efeito de animação.

Qual é a sua sintaxe?

A sintaxe da propriedade CSS transition é:

transition: transition-property transition-duration transition-timing-function transition-delay

No qual:

  • transition-property: corresponde ao nome da propriedade que será modificado quando o processo de transição for iniciado;
  • transition-duration: determina o tempo para executar a transição;
  • transition-timing-function: indica o formato da transição entre o estado inicial e o final;
  • transition-delay: representa, em milissegundos, o tempo de espera para iniciar o processo de transição.

A definição do efeito de transição pode ser feita em uma única linha, conforme a sintaxe acima ou informando cada uma das propriedades de forma individual.

Quais os valores da propriedade transition?

A propriedade CSS animation transition contém uma série de propriedades auxiliares que são utilizadas para definir as características da animação. Confira como elas funcionam!

Definindo a qual propriedade a transição será aplicada: transition-property

A propriedade transition-property é utilizada para indicar qual ou quais propriedades serão modificadas durante o processo de transição do elemento. Os valores possíveis são os nomes das propriedades separados por vírgula ou valor “all”, que é o padrão da propriedade e indica que todas terão o efeito de transição.

Definindo a duração da transição: transition-duration

O atributo transition-duration é utilizado para informar o tempo de duração da animação, que pode ser definido em milissegundos ou em segundos. O valor padrão é zero, o que significa que a animação é realizada imediatamente, portanto, sem o efeito de transição gradativa. Por isso, é importante estipular o tempo de duração para ter o comportamento desejado.

Definindo a curva de velocidade do efeito de transição: transition-timing-function

O efeito de transição pode ser aplicado em diversas propriedades CSS. Podemos, por exemplo, deslocar um elemento de um lado para o outro da tela por meio de propriedades de posicionamento ou aumentar o tamanho da fonte com a modificação da propriedade font-size. Nesses casos, a propriedade transition-timing-function representa a curva de velocidade em que a transição é realizada.

É possível, por exemplo, iniciar o deslocamento de forma lenta, acelerar no meio do caminho e terminar o processo devagar novamente. Para isso, o CSS utiliza a Easing Functions, que calcula a velocidade para a transição. Existem algumas predefinidas que podemos utilizar no atributo transition-timing-function, são elas:

  • linear: representa a transição constante do início ao fim;
  • ease: esse é o valor padrão e indica o efeito de transição com o início lento, durante rápido e no final, lento novamente;
  • ease-in: indica a transição lenta apenas no início;
  • ease-out: realiza a transição lenta apenas no final;
  • ease-in-out: realiza a transição com o início e final lentos;
  • cubic-bezier(): é uma função para indicar a curva de velocidade e é definida em quatro pontos, nos quais o primeiro e o último representam o início e o fim da transição.

Definindo quando a transição começa: transition-delay

A propriedade CSS transition-delay representa um tempo de atraso até que a transição se inicie. Seu valor pode ser definido em segundos ou milissegundos.

Exemplo de uso da propriedade transition

Nada melhor que visualizar na prática os efeitos da propriedade transition. No código de exemplo abaixo criamos um container com várias caixas feitas com o elemento HTML

e aplicamos os diferentes estilos de transição indicados no tópico sobre a propriedade transition-timing-function, que indica a curva de velocidade do efeito de transição.

Perceba que na classe .box definimos a propriedade position como relative para que os elementos sigam a orientação do posicionamento. A seguir, indicamos que a posição inicial deve ser a de left igual a zero, ou seja, totalmente posicionados à esquerda.

Já na classe .container:hover .box, indicamos que, ao posicionar o mouse sobre o elemento, a propriedade left terá o valor de 60%. Assim, cada box sofrerá esse deslocamento em relação à posição inicial. A seguir, informamos a propriedade que sofrerá a modificação e o tempo da transição: transition: left 4s.

Por fim, criamos uma classe para cada box com o tipo de transição desejada e utilizamos a propriedade transition-timing-function para indicar cada uma delas. Confira como ficou o código fonte.




    
    
    
    CSS Transition
    



    

CSS Transition

    Transition ease - padrão
    Transition linear
    Transition ease-in
    Transition ease-out
    Transition ease-in-out