Exemplos da View Transitions API

View Transitions API: exemplos ao vivo para SPA e multipágina | We.Inc

Exemplos funcionais da View Transitions API: startViewTransition em uma lista que você pode embaralhar, elementos nomeados que se transformam, @view-transition entre páginas, types, React e suporte.

Exemplos da View Transitions API

A View Transitions API anima a passagem entre dois estados de uma página. Em um single-page app, envolva a atualização do DOM em document.startViewTransition(() => update()). Entre páginas da mesma origem, adicione @view-transition { navigation: auto; } nas duas páginas. Dê a um elemento um view-transition-name único e o navegador o transforma da posição antiga para a nova.

Dois tipos de view transition

A maioria das explicações sobre view transitions descreve a árvore de pseudo-elementos e para por aí. Esta página começa com uma demo funcionando no seu navegador: embaralhe uma grade, abra um card em uma visualização de detalhes e veja os elementos nomeados se moverem. Depois traz o código de cada padrão, a configuração entre páginas e os fallbacks para navegadores sem suporte.

Perguntas frequentes

O que document.startViewTransition faz?

Ele tira um snapshot da página atual, executa o seu callback de atualização e anima do snapshot antigo para o novo estado ao vivo. Retorna um objeto ViewTransition com as promises ready, finished e updateCallbackDone e um método skipTransition().

Como adiciono view transitions entre páginas?

Coloque @view-transition { navigation: auto; } no CSS da página que você deixa e da página em que chega. As páginas precisam ter a mesma origem, e por padrão você ganha um cross-fade. Dê aos elementos correspondentes o mesmo view-transition-name nas duas páginas para transformá-los um no outro.

As view transitions funcionam no Firefox?

Transições no mesmo documento funcionam a partir do Firefox 144. Transições entre documentos não tinham suporte no Firefox quando este texto foi escrito, então nesses navegadores a navegação simplesmente acontece sem animação.

Como uso view transitions no React?

Chame document.startViewTransition e atualize o estado dentro de flushSync, do react-dom, para que o React escreva o novo DOM de forma síncrona antes de o navegador tirar o novo snapshot.

Como personalizo a animação?

Estilize os pseudo-elementos. ::view-transition-old(name) é o snapshot que sai e ::view-transition-new(name) o que entra, e ::view-transition-group(name) controla tamanho e posição. Use root como nome para a página inteira.

O que acontece durante uma transição

Como nomear bem os elementos

Types para direções diferentes

Transições no mesmo documento

startViewTransition com detecção de recurso

Navegadores sem a API executam a atualização direto, então nada quebra.

Transformar uma miniatura em um hero

Só um elemento pode ter o nome de cada vez, então defina-o na miniatura clicada logo antes da transição.

React

startViewTransition com flushSync

flushSync faz o React aplicar o novo DOM dentro do callback.

Transições entre documentos

Deslizar entre as páginas de um site multipágina

Inclua isto na folha de estilo de cada página que deve participar. Só funciona na mesma origem.

Referência da API

As peças da View Transitions API

A redução de movimento está ativada, então a mudança foi instantânea.

Seu navegador não tem suporte a view transitions, então a mudança foi instantânea.

Demo ao vivo

Embaralhe a grade ou abra um card. Cada bloco tem o seu próprio view-transition-name, então o navegador o anima até a nova posição.

Embaralhar

Voltar para a grade

O bloco de cor e o título se transformaram a partir da grade porque mantêm os mesmos nomes aqui.

Comece grátis · Sem cartão de crédito

Relacionados: Guias

Produto

Para quem é

Recursos

Recursos

Empresa

Mapa do site