Pular para o conteúdo
Skillpedia
Sites e telas (frontend)48 mil · #4492

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

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/vercel-react-view-transitions/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/vercel-react-view-transitions/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-transitions

Ou 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.md
Conteú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. ViewTransition funciona de imediato. npm ls react pode mostrar uma versão com aparência estável; isso é esperado.
  • Sem Next.js: Instale react@canary react-dom@canary (ViewTransition nã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.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#4492
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas