✨ Transições e Animações (transition, animation)

CSS permite criar efeitos visuais dinâmicos para tornar a experiência do usuário mais agradável e interativa.

1. Transições (`transition`)

Transições permitem que as mudanças de propriedades CSS ocorram suavemente ao longo do tempo, em vez de instantaneamente. Elas são geralmente acionadas por eventos como :hover, :focus, ou por JavaScript.

Propriedades da Transição:

Atalho (Shorthand): transition: [property] [duration] [timing-function] [delay];

.elemento { 
    transition: background-color 0.5s ease, transform 0.5s ease;
}
.elemento:hover {
    background-color: var(--secundaria);
    transform: scale(1.2);
}

Passe o mouse sobre a caixa abaixo para ver a transição:

Passe o mouse

2. Animações (`animation`)

Animações são mais complexas que transições, permitindo criar sequências de estilos que mudam ao longo do tempo, sem a necessidade de um evento para serem acionadas (podem rodar automaticamente).

`@keyframes` Rule:

Define os estágios de uma animação. Você especifica os estilos em diferentes "quadros-chave" (keyframes) usando porcentagens (0% a 100%) ou as palavras-chave from (0%) e to (100%).

@keyframes pulse {
    0% {
        transform: scale(1);
        background-color: var(--primaria);
    }
    50% {
        transform: scale(1.05);
        background-color: var(--secundaria);
    }
    100% {
        transform: scale(1);
        background-color: var(--primaria);
    }
}

Propriedades da Animação:

Atalho (Shorthand): animation: [name] [duration] [timing-function] [delay] [iteration-count] [direction] [fill-mode];

.elemento-animado {
    animation-name: pulse;
    animation-duration: 2s;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    /* Atalho: animation: pulse 2s infinite alternate; */
}

Veja a caixa abaixo animando automaticamente:

Animando!