Exemplos de efeitos de transição suave no CSS que permitem que mudança de cor ou tamanho de um elemento (exemplos) sejam feitas suavemente, melhorando o aspecto da animação desejada.
Utilizando a propriedade “transition” para fazer a transição suave no CSS.
Para aplicar um efeito de transição suave, teremos que utilizar a propriedade “transition” no elemento.
Exemplo:
.t { -webkit-transition: 0.5s; -moz-transition: 0.5s; -o-transition: 0.5s; -ms-transition: 0.5s; transition: 0.5s }
Na minha classe “.t” estou configurando a propriedade transition (já com a compatibilidade com os principais browsers) para que qualquer mudança “efeito” ocorra na duração de 0.5 segundos.
Nesta propriedade é possível passar além do tempo de transição, mais 3 valores:
- transition-duration (utilizado no exemplo acima)
- transition-property
- transition-timing-function
- transition-delay.
Vamos repassar cada uma.
transition-duration
Duração da animação em segundos
Exemplo:
ul { transition-duration: 3s; }
Este parâmetro é obrigatório, sem ele não será feita a suavização, pois por padrão seu valor é 0 (zero).
transition-property
É a propriedade no qual será aplicada a transição suave, por padrão é aplicado em todos. Utilize apenas quando você quiser limitar a apenas uma propriedade o efeito. Não é obrigatório.
Exemplo:
p { transition-property: width; }
transition-timing-function
Esse parâmetro especifica a curva da velocidade no qual a transição irá ocorrer. Se irá começar mais rápido e depois desacelerar para completar o tempo definido na duração, etc.
Exemplo:
label { transition-timing-function: linear; }
Valores possíveis: linear|ease|ease-in|ease-out|ease-in-out|step-start|step-end|steps(int,start|end)|cubic-bezier(n,n,n,n)|initial|inherit;
Por padrão o valor é “linear”, aonde a animação será distribuída uniformemente durante toda duração.
Não é um campo obrigatório.
transition-delay.
Tempo que será esperado até começar a animação, esse tempo não é contabilizado na duração da animação.
Exemplo:
span { transition-delay: 2s; }
Não é obrigatório.
Juntando tudo em uma linha
Além de declarar cada propriedade separadamente, você pode agrupar todas as configurações utilizando apenas a palavra “transition”.
Exemplo:
div { transition: |property| |duration| |timing-function| |delay|; }
Os valores deverão seguir exatamente esta ordem.
Por exemplo, se você não for informar “property” e o “timing-function” o código deverá ficar desta forma.
div { transition: 2s 0.5s; }
Aonde temos 2 segundos para duração e 0.5 segundos de “delay” para começar a transição suave no CSS.

