Tailwind CSS Academy · Aula

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.

Aula 1 de 413 etapas

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.

Grátis para começar

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

  1. Utilitários de transição
  2. Duração e aceleração
  3. Animações de quadros-chave integradas
  4. Animações personalizadas na configuração
← Voltar para Tailwind CSS Academy