Categorias do Site

Tutorial: Animações em React com View Transitions

Aprenda a usar as APIs View Transitions e Activity do React para animar um clone do AirBnB com técnicas modernas.

Imagem mostra o ícone azul abstrato de um átomo sobre um fundo texturizado que imita camadas de rocha em tons de marrom.

Neste tutorial, exploraremos as APIs ViewTransition e Activity do React, acompanhando passo a passo como utilizá-las em projetos reais. Os desenvolvedores aprenderão a aplicar essas novas funcionalidades em suas aplicações.

react view transitions and activity api tutorial

A equipe do React lançou as esperadas APIs View Transitions e Activity, ainda experimentais. A API View Transitions facilita a adição de animações a elementos no DOM com menos código JavaScript e CSS durante transições de páginas em aplicativos web.

A nova API React Activity oferece uma abordagem mais eficiente para pré-renderizar ou ocultar partes da UI enquanto preserva seu estado.

Como funciona a API React View Transition

A API React View Transition cuida das transições de visualização nos bastidores. Com ela, não é necessário interagir diretamente com a API de transição de visualização nativa. Ela aplica um view-transition-name ao nó DOM mais próximo dentro do componente .

Quando uma transição começa, o React executa métodos de ciclo de vida, aplica mutações no DOM, espera por fontes e navegação, mede alterações de layout e determina o que precisa ser animado.

Configurando suporte para recursos experimentais do React

Para explorar esses recursos experimentais, é necessário optar por uma versão experimental do React e configurar seu projeto conforme a documentação do React ou RFCs. Instale as versões experimentais para substituir os pacotes react e react-dom:

npm install react@experimental react-dom@experimental

Com esta configuração, você pode explorar a funcionalidade das APIs View Transitions e Activity e fornecer feedback antes de seus lançamentos oficiais.

Visão geral de nossa aplicação demo

Para tornar este tutorial o mais prático possível, trabalharemos com um projeto clone do AirBnB, explorando vários casos de uso para as APIs View Transitions e Activity.

O projeto abrange:

  • Animação de elementos em transições de página
  • Animação de um elemento compartilhado
  • Animação da reordenação de itens em uma lista
  • Animação a partir de conteúdo Suspense
  • Personalização de animações
  • Pré-renderização
  • Ocultar visualmente partes da UI enquanto preserva seu estado

Clone o projeto inicial para acompanhar este tutorial:

gif of air bnb starter project

Construindo roteadores habilitados para transições de visualização

Para trabalhar com a API React View Transitions, você deve configurar seus roteadores para permitir transições de visualização. A API suporta três gatilhos, startTransition, useDeferredValue e Suspense, para uma transição de visualização.

Adicione startTransition à configuração do seu roteador:

import {createContext, useTransition} from "react";
const RouterContext = createContext({ url: "/", params: {} });
export function Router({ children }) {
  const [isPending, startTransition] = useTransition();
  function navigate(url) {
    startTransition(() => {
      go(url);
    });
  }
  return (
      
        {children}
      
  )
}

Agora você pode adicionar ao componente App para animar entre transições de página:

import {useRouter} from './router';
import "./App.css";
import Listing from "./views/Listing";
import Home from './views/Home';
function App() {
  const { url } = useRouter();
  return (
    
      {url === "/" ?  : }
    
  )
}

Execute o aplicativo e você notará a animação de cross-fade sutil na transição de página entre a página inicial e a página de listagem.

Personalizando animações

Personalizar as animações padrão em transições de visualização é simples. Adicione a prop padrão ao componente e defina seu valor para a classe de transição (nome da classe CSS) aplicada pelo React durante a transição:

  {url === "/" ?  : }

Defina a transition-classname no CSS para controlar as transições de página usando CSS tradicional:

::view-transition-old(.transition-classname) {
    animation-duration: 1000ms;
}
::view-transition-new(.transition-classname) {
    animation-duration: 1000ms;
}

Com isso, você pode personalizar a animação padrão de cross-fade da transição de visualização.

Execute o aplicativo e você verá que o cross-fade é mais lento:

gif of slower cross fade view transitions api

Conclusão

Neste tutorial, exploramos as novas APIs View Transitions e Activity do React com exemplos práticos em um aplicativo do mundo real. Animamos elementos em transições de página, personalizamos animações e pré-renderizamos partes da UI enquanto preservamos seu estado.

Lembre-se de que recursos experimentais podem mudar ou ser removidos a qualquer momento. Evite utilizá-los em produção, pois podem quebrar seu aplicativo em futuras atualizações. Use-os apenas em ambientes de desenvolvimento e sempre verifique as notas de lançamento para alterações de compatibilidade.

  • IA, Mulheres e o Futuro do Trabalho Administrativo

    A Inteligência Artificial redefine o papel das secretárias, historicamente desempenhado por mulheres. O que vem a seguir?

    A Inteligência Artificial redefine o papel das secretárias, historicamente desempenhado por mulheres. O que vem a seguir?

    Ler notícia completa
    Uma mulher trabalha em um escritório iluminado, sentada à mesa com um laptop e outros objetos, com uma legenda questionando se IA pode substituir habilidades humanas.
  • Como a IA transforma a aquisição de clientes

    Descubra como a inteligência artificial está revolucionando a aquisição de clientes e impactando o SEO e estratégias de marketing.

    Descubra como a inteligência artificial está revolucionando a aquisição de clientes e impactando o SEO e estratégias de marketing.

    Ler notícia completa
    Dois ícones de pessoas em lados opostos, representando um homem e uma mulher, com setas e um ícone de dólar entre eles, simbolizando transação financeira, e um cubo rosa na frente.
  • 10 recursos do Node.js 24 que você não usa

    Confira 10 novos recursos do Node.js 24 que melhoram a experiência do desenvolvedor e reduzem dependências.

    Confira 10 novos recursos do Node.js 24 que melhoram a experiência do desenvolvedor e reduzem dependências.

    Ler notícia completa
    Logotipo verde hexagonal do Node.js com a palavra
  • Vulnerabilidade no middleware do Next.js

    Resumo: Uma vulnerabilidade crítica de autenticação no Next.js (CVE-2025-29927) permite que invasores ignorem verificações de middleware ao falsificar o cabeçalho x-middleware-subrequest. Afeta versões de 11.1.4 até início da 15.x. Hospedagens gerenciadas, como Vercel, estão seguras, mas apps autohospedados que dependem de middleware para controle de acesso estão em risco. Atualize para uma versão corrigida (13.5.6, […]

    Vulnerabilidade crítica no Next.js permite burlar segurança. Atualize para a versão corrigida e proteja suas rotas.

    Ler notícia completa
    Imagem abstrata com fundo em gradientes de rosa e roxo e logo preto com letra 'N' em branco no centro.
  • 6 Bibliotecas de Animação CSS para 2025

    No passado, animações CSS eram realizadas por alguns poucos magos, conhecidos como Mestres do CSS. Esses especialistas sabiam como dar vida aos elementos com animações complexas. Com o tempo, o conhecimento foi reunido e organizado em grandes bibliotecas de animação CSS, facilitando a implementação. Este artigo apresenta seis poderosas bibliotecas de animação CSS para ajudar […]

    Explore 6 bibliotecas de animação CSS para criar projetos dinâmicos em 2025.

    Ler notícia completa
    Prateleiras de livros em uma biblioteca curva com as letras
  • Design de Conteúdo é Essencial no UX

    Design de conteúdo vai além de apenas escrever; é sobre guiar usuários em produtos digitais por meio de conteúdo claro e relevante. O design de conteúdo é um método centrado no usuário que usa pesquisa e dados para fornecer as informações necessárias. O termo, cunhado por Sarah Winters, sugere que o design com palavras é […]

    Design de conteúdo guia usuários e melhora UX, integrando pesquisa e dados para experiências digitais claras e relevantes.

    Ler notícia completa
    Ícone de livros roxos sobre fundo bege com padrões abstratos de fumaça em tons de marrom e dourado.
  • O que faz um gerente de UX?

    Nas organizações atuais, os cargos estruturais variam enormemente, tornando difícil descrever uma empresa típica. À medida que as empresas crescem, seus organogramas se adaptam a novas necessidades. Um cargo de UX que muitas empresas contratam, mas nem sempre compreendem totalmente, é o de gerente de UX. Um gerente de UX gerencia equipes e projetos de […]

    Descubra o papel crucial do gerente de UX nas empresas e como ele pode impactar produtos e equipes.

    Ler notícia completa
    Ícone de usuário roxo com engrenagem sobre fundo holográfico iridescente.
  • 20+ Templates Gratuitos de Brochura InDesign 2025

    Está procurando uma maneira rápida de criar brochuras para promover seu negócio, serviços ou produtos? Conheça estes templates gratuitos para Adobe InDesign! Com esses modelos, você não precisa criar do zero. Basta preencher os campos em branco e personalizar o design. A facilidade de uso torna esses templates a solução perfeita para atrair um público […]

    Descubra mais de 20 templates gratuitos de brochura para InDesign em 2025. Ideal para criativos promoverem negócios e serviços.

    Ler notícia completa
    Layout de várias páginas de uma revista de design de interiores mostradas sobre um fundo de mármore, com o ícone do Adobe InDesign no canto.
  • Carga Cognitiva: Simplificação é Sempre Ideal?

    A carga cognitiva tornou-se o equivalente no design web a “comer seus vegetais”—todos sabemos que é importante, mas às vezes parece que estamos tentando engolir uma salada de couve inteira de uma só vez. Reduzir a carga cognitiva parece a coisa responsável a fazer, mas será que simplificar tudo é sempre o melhor caminho? É […]

    Exploramos se reduzir a carga cognitiva sempre melhora o design, ou se a complexidade pode enriquecer a experiência do usuário.

    Ler notícia completa
    Pessoa com camisa branca e cérebro gigante como cabeça, emitindo raios em fundo de nuvens tempestuosas.