vercel-react-view-transitions
Orienta seu agente na criação de transições de visualização e animações em aplicativos React e Next.js. Ajuda a criar experiências visuais fluidas e seguras.
O que ela faz
Essa ferramenta ajuda a criar animações suaves quando você navega entre diferentes partes de um site feito com React ou Next.js. Ela faz com que elementos se movam de forma conectada entre as telas, como se fossem os mesmos objetos mudando de lugar.
Quando usar
- ✓Ao mudar de uma lista de itens para os detalhes de um item.
- ✓Ao alternar entre abas ou seções diferentes.
- ✓Quando dados novos carregam e a tela precisa se atualizar de forma animada.
Exemplo do que pedir para a IA
“Crie uma animação suave para quando o usuário clica em um produto na lista e vai para a página de detalhes.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ela usa uma tecnologia do navegador chamada `document.startViewTransition` para tirar 'fotos' da tela antes e depois da mudança. Depois, usa classes CSS para animar a transição entre essas fotos, conectando os elementos que mudam.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill vercel-react-view-transitionsOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/vercel-react-view-transitions/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Transições de Visualização no React
Anime entre estados da UI usando a funcionalidade nativa do navegador document.startViewTransition. Declare o quê com <ViewTransition>, acione quando com startTransition / useDeferredValue / Suspense, controle como com classes CSS. Navegadores sem suporte pulam animações de forma elegante.
Quando Usar
- Use esta habilidade quando a tarefa corresponder a esta descrição: Guiar transições de visualização no React e Next.js, animações de elementos compartilhados, transições de rota, tipos de transição e animação de estado de UI segura para movimento reduzido.
Quando Animar
Cada <ViewTransition> deve comunicar uma relação espacial ou continuidade. Se você não consegue articular o que ele comunica, não o adicione.
Implemente todos os padrões aplicáveis desta lista, nesta ordem:
| Prioridade | Padrão | O que comunica |
|---|---|---|
| 1 | Elemento compartilhado (name) |
"Mesma coisa — indo mais fundo" |
| 2 | Revelação Suspense | "Dados carregados" |
| 3 | Identidade da lista (key por item) |
"Mesmos itens, novo arranjo" |
| 4 | Mudança de estado (enter/exit) |
"Algo apareceu/desapareceu" |
| 5 | Mudança de rota (nível de layout) | "Indo para um novo lugar" |
Esta é uma ordem de implementação, não uma lista de "escolha um". Implemente todos os padrões que se encaixam no aplicativo. Pule um padrão apenas se o aplicativo não tiver um caso de uso para ele.
Escolhendo o Estilo de Animação
| Contexto | Animação | Por quê |
|---|---|---|
| Navegação hierárquica (lista → detalhe) | nav-forward / nav-back com chave de tipo |
Comunica profundidade espacial |
| Navegação lateral (aba para aba) | <ViewTransition> simples (fade) ou default="none" |
Nenhuma profundidade para comunicar |
| Revelação Suspense | props de string enter/exit |
Conteúdo chegando |
| Revalidação / atualização em segundo plano | default="none" |
Silencioso — nenhuma animação necessária |
Reserve slides direcionais para navegação hierárquica (lista → detalhe) e sequências ordenadas (foto anterior/próxima, carrossel, resultados paginados). Para sequências ordenadas, a direção comunica a posição: "próximo" desliza da direita, "anterior" da esquerda. Navegação lateral/desordenada (aba para aba) não deve usar slides direcionais — isso implica falsamente profundidade espacial.
Disponibilidade
- Next.js: Não instale
react@canary— o App Router já inclui o React canary internamente.ViewTransitionfunciona de imediato.npm ls reactpode mostrar uma versão com aparência estável; isso é esperado. - Sem Next.js: Instale
react@canary react-dom@canary(ViewTransitionnão está no React estável). - Suporte do navegador: Chromium 111+, Firefox 144+, Safari 18.2+. Degradação elegante em navegadores sem suporte.
Fluxo de Implementação
Ao adicionar transições de visualização a um aplicativo existente, siga references/implementation.md passo a passo. Comece com a auditoria — não a pule. Copie as receitas CSS de references/css-recipes.md para a folha de estilo global — não escreva seu próprio CSS de animação.
Conceitos Principais
O Componente <ViewTransition>
import { ViewTransition } from 'react';
<ViewTransition>
<Component />
</ViewTransition>
O React atribui automaticamente um view-transition-name exclusivo e chama document.startViewTransition nos bastidores. Nunca chame startViewTransition você mesmo.
Gatilhos de Animação
| Gatilho | Quando dispara |
|---|---|
| enter | <ViewTransition> inserido pela primeira vez durante uma Transição |
| exit | <ViewTransition> removido pela primeira vez durante uma Transição |
| update | Mutações de DOM dentro de um <ViewTransition>. Com VTs aninhados, a mutação se aplica ao mais interno |
| share | VT nomeado desmonta e outro com o mesmo name monta na mesma Transição |
Apenas startTransition, useDeferredValue ou Suspense ativam VTs. setState regular não anima.
Regra de Posicionamento Crítico
<ViewTransition> ativa enter/exit apenas se aparecer antes de quaisquer nós DOM:
// Works
<ViewTransition enter="auto" exit="auto">
<div>Content</div>
</ViewTransition>
// Broken — div wraps the VT, suppressing enter/exit
<div>
<ViewTransition enter="auto" exit="auto">
<div>Content</div>
</ViewTransition>
</div>
Estilizando com Classes de Transição de Visualização
Props
Valores: "auto" (cross-fade do navegador), "none" (desativado), "class-name" (CSS personalizado), ou { [type]: value } para animações específicas do tipo.
<ViewTransition default="none" enter="slide-in" exit="slide-out" share="morph" />
…
Perguntas frequentes
Preciso instalar algo extra?
Se você usa Next.js, não precisa instalar nada extra. Se não usa Next.js, precisa instalar versões específicas do React (`react@canary` e `react-dom@canary`).
O que são 'shared element animations'?
São animações onde um mesmo elemento (como uma imagem ou um título) aparece em duas telas diferentes e a animação conecta a versão antiga com a nova, dando a sensação de continuidade.
E se o navegador do usuário não suportar?
A animação simplesmente não acontece, e o site continua funcionando normalmente. Não quebra a experiência do usuário.
Detalhes
Descrição original do autor
Guide React and Next.js view transitions, shared element animations, route transitions, transition types, and reduced-motion-safe UI state animation.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #4492
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
angular-developer
Ajuda seu agente a criar código Angular e a dar conselhos sobre a estrutura do projeto. É útil para iniciar novos projetos, criar partes do código ou melhorar a performance e acessibilidade.
affaan-m/ECC
frontend-a11y
Ajuda seu agente a tornar interfaces web acessíveis para todos. Ele garante que sites e apps funcionem bem com leitores de tela e navegação por teclado.
affaan-m/ECC
frontend-patterns
Faz seu agente aplicar padrões modernos no desenvolvimento frontend. Ele otimiza performance, gerencia estado e segue boas práticas em React e Next.js.
affaan-m/ECC