Utilitários de transição
Ative transições CSS com transition-*, escolhendo quais propriedades serão animadas com transition-colors, transition-transform e transition-all.
Utilitários de transição é uma aula grátis de Tailwind CSS Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Tailwind CSS Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Tailwind CSS Academy inclui 4 aulas no total.
Por que as transições CSS são importantes
As transições CSS tornam as mudanças de estado suaves e intencionais, em vez de abruptas. Quando um botão muda de cor de fundo ao passar o cursor, uma barra lateral desliza para dentro ou um campo de entrada recebe um anel de foco, as transições comunicam aos usuários que algo aconteceu e direcionam sua atenção. Os utilitários de transição do Tailwind permitem adicionar essas animações com uma única classe — sem CSS personalizado para os casos de uso mais comuns.
O utilitário transition
O utilitário básico transition habilita transições CSS para as propriedades mais comumente animadas: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform e filter. Adicionar apenas transition a um botão geralmente é suficiente para animar suavemente as mudanças de cor ao passar o cursor.
<!-- Simple hover transition on a button -->
<button class="bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded-lg transition">
Hover Me
</button>
<!-- The transition class enables smooth color changes -->
<!-- Without it, the color snaps instantly on hover -->
<!-- With it, the background color animates over 150ms (Tailwind default) -->Propriedades de transição específicas
Use utilitários de transição direcionados para animar apenas propriedades específicas. Isso é mais eficiente do que transition-all, porque o navegador não precisa recalcular todas as propriedades que podem ser animadas a cada quadro. O Tailwind oferece transition-colors, transition-opacity, transition-shadow, transition-transform e transition-all para diferentes necessidades.
<!-- Only animate colors -->
<button class="bg-blue-600 hover:bg-blue-700 text-white transition-colors">
Color Transition
</button>
<!-- Only animate transform (GPU accelerated) -->
<div class="hover:scale-105 transition-transform cursor-pointer">
Scale on hover
</div>
<!-- Only animate opacity -->
<div class="opacity-100 hover:opacity-75 transition-opacity">
Fade on hover
</div>
<!-- Animate shadow (depth change) -->
<div class="shadow hover:shadow-lg transition-shadow rounded-xl p-4">
Shadow depth change
</div>transition-all versus propriedades específicas
transition-all faz a transição simultânea de todas as propriedades CSS que podem ser animadas. Embora seja conveniente, pode causar comportamentos inesperados — por exemplo, propriedades de layout como height ou width podem ser animadas quando o senhor queria apenas mudanças de cor. Ele também é menos eficiente porque o navegador acompanha todas as propriedades. Sempre que possível, use utilitários de transição específicos; use transition-all somente quando realmente precisar que várias propriedades não relacionadas sejam animadas em conjunto.
<!-- transition-all: animates EVERYTHING that changes -->
<div class="bg-gray-100 hover:bg-blue-50 hover:scale-102 transition-all">
All properties animate (colors, transforms, borders...)
</div>
<!-- More precise: only animate what you intend -->
<div class="bg-gray-100 hover:bg-blue-50 hover:scale-102 transition-colors transition-transform">
Only colors and transforms animate
</div>Combinando transições com variantes de estado
Os utilitários de transição funcionam habilitando a propriedade CSS transition. Variantes de estado como hover:, focus: e group-hover: fornecem os estados anterior e posterior entre os quais a transição é animada. Coloque sempre a classe transition no elemento base (não dentro da variante), para que ela se aplique nas duas direções — a transição é executada tanto ao entrar quanto ao sair do estado.
<!-- Transition enables smooth enter AND exit -->
<a class="text-gray-600 hover:text-blue-600 transition-colors duration-200"
href="#">
Animated link — hover to see color change both ways
</a>
<!-- Card with multiple transitions -->
<div class="bg-white hover:bg-blue-50
shadow-sm hover:shadow-md
border border-gray-200 hover:border-blue-200
transition-all duration-200 rounded-xl p-6 cursor-pointer">
Interactive card
</div>Animando opacidade e visibilidade
Para fazer elementos aparecerem e desaparecerem gradualmente, é necessário fazer a transição de opacity em conjunto com o gerenciamento de visibility ou display. As transições CSS não podem animar de ou para display: none; portanto, use opacity com pointer-events-none para efeitos simples de aparecimento gradual. Para elementos que precisam realmente desaparecer (sendo removidos da ordem de tabulação), combine transições de opacidade com a alternância de classes em JavaScript.
<!-- Fade an element using opacity + pointer-events -->
<div id="tooltip"
class="opacity-0 pointer-events-none
group-hover:opacity-100 group-hover:pointer-events-auto
transition-opacity duration-200
bg-gray-900 text-white text-xs px-2 py-1 rounded">
Tooltip content
</div>
<!-- JavaScript fade with class toggle -->
<!-- Remove: classList.add('opacity-0', 'pointer-events-none') -->
<!-- Show: classList.remove('opacity-0', 'pointer-events-none') -->Transições de transformação
As transições de transformação são especialmente suaves porque são executadas na GPU, em vez de provocarem recálculos do layout. Todos os utilitários scale-*, rotate-*, translate-* e skew-* do Tailwind são animados adequadamente com transition-transform. Efeitos de escala em cartões e botões, efeitos de rotação em ícones e efeitos de deslizamento em painéis usam essa abordagem para obter o melhor desempenho.
<!-- Subtle scale effect on card hover -->
<div class="hover:scale-105 transition-transform duration-200 cursor-pointer bg-white rounded-xl p-6 shadow">
Card that scales up on hover
</div>
<!-- Rotating icon -->
<button class="group p-2">
<svg class="w-5 h-5 group-hover:rotate-180 transition-transform duration-300">
<!-- chevron icon -->
</svg>
</button>
<!-- Slide from left with translateX -->
<div class="-translate-x-full open:translate-x-0 transition-transform duration-300">
Sidebar panel
</div>Acessibilidade com redução de movimento
Alguns usuários sentem enjoo ou têm convulsões causadas por animações e configuram o próprio OS para Reduce Motion. O Tailwind oferece as variantes motion-reduce: e motion-safe:, que são ativadas com base na consulta de mídia prefers-reduced-motion do usuário. Use motion-safe: para aplicar animações somente quando o usuário não tiver solicitado a redução de movimento, tornando suas transições acessíveis por padrão.
<!-- Only animate when user is OK with motion -->
<button class="bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded-lg
motion-safe:transition-colors motion-safe:duration-200">
Accessible Button
</button>
<!-- Remove transitions entirely for reduced-motion users -->
<div class="hover:scale-105 motion-reduce:transform-none
motion-safe:transition-transform motion-safe:duration-200">
Accessible card hover
</div>Transição em estados de foco
As transições de foco são especialmente importantes para a navegação pelo teclado. Quando o usuário chega a um campo de entrada ou botão usando a tecla Tab, o anel de foco deve aparecer suavemente, em vez de surgir instantaneamente. Aplique transition a todos os elementos interativos para que a transição do anel de foco tenha o mesmo acabamento da transição ao passar o cursor. Inclua focus:ring-* e focus:ring-offset-* com uma transição para obter a melhor experiência com o teclado.
<input
type="text"
class="
w-full px-4 py-2 rounded-lg
border border-gray-300
text-gray-900 placeholder:text-gray-400
ring-0
focus:ring-2 focus:ring-blue-500 focus:border-transparent focus:outline-none
transition duration-150
"
placeholder="Smooth focus ring transition"
/>Várias propriedades de transição
O senhor pode combinar vários utilitários de transição específicos em um único elemento para animar apenas um conjunto preciso de propriedades. O Tailwind compõe esses utilitários usando a abreviação CSS transition-property. Empilhar transition-colors e transition-shadow no mesmo elemento faz com que tanto as cores quanto as sombras sejam animadas, enquanto outras propriedades, como transformações, permanecem instantâneas.
<!-- Animate colors AND shadows, but not transforms -->
<div class="
bg-white hover:bg-gray-50
shadow hover:shadow-md
scale-100 hover:scale-105
transition-colors transition-shadow
duration-200 rounded-xl p-6
">
Colors and shadows animate smoothly;
scale change happens instantly (no transition-transform)
</div>Transição na prática: exemplo completo
Aqui está um link de navegação realista com todas as transições aprimoradas: o fundo aparece gradualmente ao passar o cursor, a cor do texto muda simultaneamente, o sublinhado cresce da esquerda para a direita usando uma transformação de escala e os estados de foco correspondem exatamente ao estilo ao passar o cursor. Cada interação parece intencional e suave, sem uma única linha de CSS personalizado.
<a
href="/features"
class="
relative inline-block
text-gray-600 hover:text-blue-600
font-medium text-sm
pb-0.5
transition-colors duration-150
focus:outline-none focus:text-blue-600
group
"
>
Features
<!-- Animated underline -->
<span class="
absolute bottom-0 left-0 w-full h-0.5 bg-blue-600
scale-x-0 group-hover:scale-x-100
transition-transform duration-200 origin-left
"></span>
</a>Verificação rápida
Teste sua compreensão sobre os utilitários de transição do Tailwind.
Recapitulação da lição
Nesta lição, o senhor aprendeu que o utilitário básico transition habilita animações suaves para propriedades comuns; os utilitários de transição específicos, como transition-colors e transition-transform, são mais eficientes do que transition-all; e a variante motion-safe: garante que as animações só sejam aplicadas quando o usuário não tiver solicitado a redução de movimento. A seguir, controlaremos a duração e as funções de temporização das transições.
Aprenda HTML com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 30
- Aulas
- 120
Perguntas Frequentes
A aula “Utilitários de transição” é grátis?
Sim — o texto completo de “Utilitários de transição” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Tailwind CSS Academy, atualize para CoddyKit PRO. O curso de Tailwind CSS Academy inclui 4 aulas no total.
O que vou aprender em “Utilitários de transição”?
Ative transições CSS com transition-*, escolhendo quais propriedades serão animadas com transition-colors, transition-transform e transition-all. Você pratica Tailwind CSS Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Tailwind CSS Academy?
Nenhuma experiência prévia é necessária. Tailwind CSS Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Utilitários de transição”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Tailwind CSS Academy?
Sim. Cada aula de Tailwind CSS Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Utilitários de transição
- Duração e aceleração
- Animações de quadros-chave integradas
- Animações personalizadas na configuração