View Transitions em sites multi-página são simplesmente incríveis

Com View Transitions API a gente consegue fazer com que alguns elementos especificos na tela façam uma transição da página atual para a próxima página. Tem como usar essa API tanto para animar elementos na mesma url o que seria em um SPA, e principalmente o que vou abordar neste tutoial é como aplicar view transitions em um site multi-páginas.

Vamos criar um exemplo prático simples com duas páginas que têm uma imagem em comum, e vamos fazer essa imagem transicionar suavemente entre as páginas.

Demo

Ao clicar no link abaixo, você irá para uma outra página que terá um link para voltar a página inicial

clique aqui para navegar

Código do demo

Vou explicar o demo acima e finalizar pois arriscamos alongar d+ este tutorial

Passo Zero - ativar a transição de páginas

Vamos criar um arquivo chamado transicao-de-pagina.css e adicionar o seguinte código:

Só de aplicar essa nova regra de CSS, já podemos obter uma transição padrão de fade-in e fade-out ao navegar entre as páginas.

Porém não queremos um fade-in e fade-out, queremos algo mais envolvente com transforms também. Vamos customizar a transição padrão.

Passo 1 - qual é o estilo ao entrar e o estilo ao sair

A view transition cria um grupo contem 2 items que compartilham o mesmo nome, um é o novo estado e o outro é o estado antigo. Em inglês:

aquele root ali, é o nome da cama de transição padrão, root pega todo a página

O estilo que vai em ::view-transition-old(nome) é referente a animação do elemento saindo da tela

O estilo que vai em ::view-transition-new(nome) é referente a animação do elemento entrnaod na tela

O código fica assim, já com as keyframes customizadas que criei: