Na grade CSS, as propriedades grid-template-columns e grid-template-rows permitem definir nomes de linhas e acompanhar o dimensionamento de colunas e linhas da grade, respectivamente. Com a interpolação dessas propriedades, os layouts de grade podem fazer uma transição suave entre os estados, em vez de se ajustar no meio de uma animação ou transição.
Browser Support
Interpolação de valores em CSS
No CSS, é possível fazer a transição suave de propriedades de um valor para outro usando a propriedade transition.
#target {
opacity: 0.5;
transition: opacity ease-in-out 0.25s;
}
#target:hover {
opacity: 1;
}
O mecanismo de renderização detecta automaticamente o tipo do valor da propriedade de destino e usa essas informações para fazer uma transição suave para o novo valor.
Exemplo:
- Transição de
opacityde0para1? Essa é uma interpolação numérica. - Transição de
background-colordewhiteparablack? Esmaecer entre as cores de origem e de destino. - Está fazendo a transição para o
width? Interpolar numericamente, convertendo unidades ao longo do caminho, se necessário.
O mesmo se aplica às animações CSS, em que o navegador faz a interpolação de valores entre frames-chave.
Animar grid-template-columns e grid-template-rows
Os layouts de grade também podem fazer uma transição suave entre os estados, em vez de se ajustar no meio de uma animação ou transição.
Na demonstração a seguir, uma grade mostra vários avatares. Para economizar espaço, os avatares são dispostos uns sobre os outros, limitando a largura de cada coluna usando grid-template-columns. Ao passar o cursor, cada coluna ganha mais espaço.
.avatars {
display: grid;
gap: 0.35em;
grid-auto-flow: column;
grid-template-columns: repeat(4, 2em);
transition: all ease-in-out 0.25s;
}
.avatars:hover {
grid-template-columns: repeat(4, 4em);
}
Com a propriedade transition, a grade interpola suavemente entre os valores.
O efeito também se aplica a animações que mudam os valores de grid-template-columns ou grid-template-rows.