Por que o rotateX() é Importante?
Transformações 3D no CSS não são mais só para demonstrações bonitas — são essenciais para criar experiências imersivas. A função rotateX() rotaciona um elemento no eixo horizontal, inclinando-o para frente ou para trás no espaço 3D. Combinada com perspective, adiciona profundidade que designs planos não conseguem.
O que você vai aprender:
- Sintaxe e unidades de ângulo (
deg,grad,rad,turn) - Configuração de
perspectiveetransform-style - Criação de flip card, spinner 3D e accordion
- Uso de
transform-originpara controlar o eixo de rotação
Este guia é baseado na especificação do rotateX().

Conceitos Essenciais: Sintaxe e Configuração
Sintaxe
rotateX( <angulo> )
Unidades de Ângulo
| Unidade | Exemplo | Equivalente |
|---|---|---|
deg | 45deg | 45° |
grad | 200grad | 180° |
rad | 1.57rad | ~90° |
turn | 0.5turn | 180° |
Direção: Ângulo positivo inclina o topo para longe de você; negativo inclina para perto.
Habilitando o Espaço 3D
rotateX() precisa de perspective no elemento pai para parecer natural. Sem ela, o elemento fica distorcido.
.pai {
perspective: 1000px; /* Profundidade de campo */
}
.filho {
transform-style: preserve-3d; /* Mantém filhos no espaço 3D */
}
Exemplo 1: Flip Card
Crie um card que revela o conteúdo do verso ao passar o mouse.
/* Contêiner pai */
.flip-card {
perspective: 1000px;
}
/* Wrapper interno – o elemento que rotaciona */
.flip-card-inner {
transform-style: preserve-3d;
transition: transform 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
/* Ambas as faces escondidas do verso */
.flip-card-front,
.flip-card-back {
position: absolute;
backface-visibility: hidden;
}
/* Pré-rotaciona a face traseira */
.flip-card-back {
transform: rotateX(180deg);
}
/* Vira o card no hover */
.flip-card:hover .flip-card-inner {
transform: rotateX(180deg);
}
Exemplo 2: Spinner 3D
Combine rotateX() e rotateY() para um efeito de rotação 3D.
.spinner-wrapper {
perspective: 1000px;
}
.spinner {
width: 80px;
height: 80px;
animation: spin-3d 2s ease-in-out infinite;
}
@keyframes spin-3d {
0% { transform: rotateX(0deg) rotateY(0deg); }
25% { transform: rotateX(180deg) rotateY(90deg); }
50% { transform: rotateX(180deg) rotateY(180deg); }
75% { transform: rotateX(360deg) rotateY(270deg); }
100% { transform: rotateX(360deg) rotateY(360deg); }
}
Exemplo 3: Accordion 3D
Adicione um efeito de "abertura" aos painéis do accordion.
.accordion-item {
perspective: 1000px;
}
.accordion-content {
transform-origin: top;
transform: rotateX(-90deg); /* Escondido, inclinado para longe */
overflow: hidden;
transition: transform 0.4s ease, opacity 0.3s ease, max-height 0.4s ease;
}
.accordion-item.open .accordion-content {
transform: rotateX(0deg); /* Cai para a vista */
opacity: 1;
max-height: 500px;
}

Limitações e Cuidados
- Performance: Transformações 3D pesadas podem causar repaints. Use
will-change: transformcom moderação. - Acessibilidade: Animações podem desencadear distúrbios vestibulares. Respeite
prefers-reduced-motion. - Suporte de navegadores:
rotateX()é amplamente suportado, mas navegadores antigos (IE) podem precisar de fallbacks.
Próximos Passos
- Experimente
rotateY()erotateZ()para animações multi-eixo. - Confira este guia sobre mundos 3D interativos para casos de uso avançados.
- Combine com
transform-originpara efeitos únicos como portas abrindo ou painéis dobrando.

Conclusão
rotateX() é uma função CSS versátil que traz profundidade às interfaces web. Comece com um flip card simples, depois explore spinners e accordions. Lembre-se: sempre defina perspective e respeite as preferências de movimento do usuário.
Pontos principais:
- Use
perspectivenos elementos pai. transform-style: preserve-3dmantém os filhos no espaço 3D.backface-visibility: hiddenesconde o verso dos elementos.transform-originaltera o pivô da rotação.
Para um mergulho mais profundo em padrões modernos de JavaScript, veja nosso tutorial de Destructuring Assignment.