CSS transform: rotate, scale, translate e skew

Playground de CSS transform

CSS transform: rotate, scale, translate, skew e flip 3D | We.Inc

Arraste os controles de rotate, scale, translate e skew e copie o CSS e as classes Tailwind. Explica a ordem das transformações, transform-origin, flip de card em 3D e animação suave.

Mova, gire, redimensione ou incline um elemento com a propriedade transform: transform: translate(20px, 0) rotate(15deg) scale(1.1) skewX(5deg). As funções são aplicadas da direita para a esquerda, então a ordem muda o resultado. As transformações nunca deslocam o layout ao redor, e animá-las é barato porque o navegador pode passar o trabalho para o compositor.

As quatro funções de transformação 2D

Use os controles deslizantes para montar uma transformação e veja um card reagir, depois alterne entre a propriedade transform única e as propriedades separadas translate, rotate e scale. Mais abaixo estão a demonstração de origem, um flip 3D que reage ao hover, receitas de transição e uma explicação de por que as transformações continuam suaves enquanto top e left travam.

Perguntas frequentes

Por que a ordem das funções de transformação importa?

Cada função muda o sistema de coordenadas das que foram escritas antes dela, então na prática a lista é aplicada da direita para a esquerda. translate(100px) rotate(45deg) gira a caixa e depois a desliza em linha reta para a direita, enquanto rotate(45deg) translate(100px) a desliza ao longo do eixo diagonal, já girado.

Qual é a diferença entre transform: rotate() e a propriedade rotate?

As propriedades rotate, scale e translate são versões independentes das mesmas funções. Elas podem ser definidas e animadas separadamente, então um scale no hover não apaga uma rotação definida em outro lugar. O navegador aplica primeiro translate, depois rotate, depois scale e, por fim, o que estiver em transform.

O transform afeta o layout ou outros elementos?

Não. O elemento mantém a sua caixa original no layout e os vizinhos não se movem. Só a imagem pintada muda. Um elemento transformado cria um novo contexto de empilhamento e passa a ser o bloco de contenção dos descendentes com posição fixa, o que pode surpreender você em modais.

Como espelho um elemento na horizontal?

Use transform: scaleX(-1) ou a propriedade scale com scale: -1 1. Isso espelha o elemento em torno da sua origem, que por padrão é o centro. Para um flip 3D que mostre o verso, gire em torno do eixo Y dentro de um pai com perspective.

Por que o meu texto transformado fica borrado?

Deslocamentos fracionários e alguns valores de scale colocam os glifos entre pixels, o que os suaviza, principalmente durante uma animação. Arredondar os valores de translate para pixels inteiros e escalar até o tamanho final, em vez de aumentar a partir de um tamanho menor, geralmente deixa o resultado mais nítido.

Lendo uma lista de transformações

Por que as transformações animam com suavidade

3D em um parágrafo

Todas as funções de transformação

Funções de transformação 2D e 3D com os utilitários Tailwind

Ordem das operações

As mesmas duas funções em outra ordem colocam a caixa em outro lugar. As duas caixas azuis começam no mesmo ponto.

translate e depois rotate, versus rotate e depois translate

Na primeira caixa o deslocamento acontece ao longo do eixo X da tela. Na segunda, o deslocamento segue o eixo girado, então a caixa termina mais abaixo.

As propriedades individuais não se sobrescrevem

A regra de hover só mexe em scale, então o rotate definido na regra base continua valendo. Com o atalho transform, você teria que repetir rotate(-3deg) dentro de :hover.

A mesma rotação, três origens

A origem é o ponto que fica fixo. center é o padrão; top left faz a caixa girar como uma porta presa por uma dobradiça no canto.

Flip de card em 3D

Passe o mouse ou dê foco para virar (só CSS)

perspective no wrapper dá profundidade, preserve-3d mantém as duas faces no mesmo espaço 3D e backface-visibility esconde a face que estiver virada para trás. Quem prefere movimento reduzido vê uma troca instantânea.

Combinando transformações com transições

Efeito de elevação no hover para cards e botões

Só transform e box-shadow mudam, e o movimento é desligado para quem pede menos movimento.

A mesma ideia em Tailwind

motion-safe: aplica o movimento de hover só quando o leitor não pediu movimento reduzido.

O que é barato de animar

Trabalho de renderização disparado quando uma propriedade muda (comportamento típico dos navegadores)

(sem transformação)

Playground de transformações

Estilo de saída

atalho transform

propriedades individuais

Redefinir

Card

Contorno tracejado: onde o card fica no layout. Ponto escuro: o transform-origin.

Copiar CSS

Classes Tailwind

Copiar classes

Comece grátis · Sem cartão de crédito

Relacionados: Guias

Produto

Para quem é

Recursos

Recursos

Empresa

Mapa do site