View Transitions API
Twórz płynne animacje przejść między stronami i elementami za pomocą CSS View Transitions API.
View Transitions API to bezpłatna lekcja CSS Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej CSS Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs CSS Academy zawiera 4 lekcji w sumie.
Czym jest View Transitions API
View Transitions API (Chrome 111+) umożliwia płynne, animowane przejścia między różnymi stanami strony lub podczas nawigacji między stronami. Przechwytuje zrzuty ekranu przed i po zmianie, a następnie płynnie przechodzi między nimi za pomocą animacji CSS — umożliwiając uzyskanie w sieci przejść znanych z aplikacji.
Przejścia w obrębie tego samego dokumentu
Przejście w obrębie tej samej strony można uruchomić, owijając aktualizację DOM w document.startViewTransition(() => updateDom()). Przeglądarka przechwytuje stary stan, wykonuje aktualizację, przechwytuje nowy stan i automatycznie stosuje między nimi efekt przenikania.
<button id="update-btn">Update Content</button>
<div class="content">Before update</div>
Domyślne przenikanie
Bez żadnego CSS funkcja View Transitions wykonuje proste przenikanie między starym a nowym stanem strony. Ta jedna linia JavaScriptu dodaje dopracowane przejście, które wcześniej wymagało złożonego zarządzania animacjami CSS albo użycia dedykowanej biblioteki animacji.
Pseudoelementy CSS
API udostępnia cztery pseudoelementy: ::view-transition (nakładka główna), ::view-transition-old(root) (zrzut ekranu starej strony), ::view-transition-new(root) (zrzut ekranu nowej strony) oraz ::view-transition-image-pair(root). Można je dostosowywać za pomocą animacji CSS.
Nazwane przejścia z użyciem view-transition-name
Przypisz view-transition-name: hero-image elementowi, który pozostaje obecny podczas przejścia. API automatycznie przekształca ten element z jego starego położenia i rozmiaru do nowego położenia i rozmiaru, tworząc płynną animację na poziomie elementu.
<div class="hero-img"></div>
Własne animacje
Domyślne przenikanie można zastąpić własnymi klatkami kluczowymi dla pseudoelementów: przy nawigacji do przodu element powinien wsunąć się z prawej, a przy powrocie — z lewej. Kieruj animacje na ::view-transition-new(root) i ::view-transition-old(root) za pomocą @keyframes.
Przejścia MPA (Navigation API)
Przejścia między dokumentami View Transitions (Chrome 126+) animują przejścia między pełnymi załadowaniami stron w aplikacjach wielostronicowych. Dodanie @view-transition { navigation: auto; } do CSS sprawia, że przeglądarka automatycznie obsługuje przejście między stronami HTML — JavaScript nie jest potrzebny.
Dostępność: uwzględnianie preferencji dotyczących animacji
Użytkownicy z zaburzeniami przedsionkowymi nie powinni doświadczać przejść z dużą ilością ruchu. Animacje przejść należy opakować w @media (prefers-reduced-motion: no-preference), aby wyłączyć własne animacje u osób preferujących ograniczenie ruchu, zachowując jednocześnie funkcjonalną aktualizację DOM.
<p>This rule targets browser-generated <code>::view-transition-old(root)</code> and <code>::view-transition-new(root)</code> pseudo-elements — visible only during an active view transition, not in a static preview.</p>
Integracja z frameworkami SPA
React Router v6.4+, Vue Router i Astro obsługują View Transitions. Frameworki automatycznie owijają zmiany tras w startViewTransition. Style przejść dla poszczególnych tras można konfigurować za pomocą view-transition-name na trwałych elementach, takich jak nawigacja i powłoki układu.
Kwestie wydajności
View Transitions przechwytuje zrzuty ekranu strony, co może być kosztowne w przypadku złożonych układów. Duże strony z wieloma warstwami kompozytowalnymi mogą zacinać się podczas przechwytywania. Czas trwania przejścia należy utrzymywać poniżej 300 ms i unikać animowania wyjątkowo złożonych poddrzew.
Progresywne ulepszanie
Przed użyciem należy sprawdzić dostępność API: if (!document.startViewTransition) { updateDom(); return; }. Mechanizm awaryjny aktualizuje DOM normalnie, bez animacji. View Transitions to progresywne ulepszenie — aplikacja działa bez nich, a tam, gdzie są obsługiwane, po prostu zapewniają lepsze wrażenia.
Sprawdzenie wiedzy
Co umożliwia właściwość view-transition-name przypisana do elementu podczas View Transition?
Podsumowanie
View Transitions API umożliwia przenikanie i animacje przekształcania między stanami DOM lub nawigacjami między stronami przy użyciu minimalnej ilości kodu. Nazwane elementy przejścia są automatycznie przekształcane, a własne animacje pseudoelementów zastępują domyślne przenikanie. Należy uwzględniać prefers-reduced-motion i stosować progresywne ulepszanie w nieobsługiwanych przeglądarkach.
Często zadawane pytania
Czy lekcja „View Transitions API” jest bezpłatna?
Tak — pełny tekst „View Transitions API” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu CSS Academy, przejdź na CoddyKit PRO. Kurs CSS Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „View Transitions API”?
Twórz płynne animacje przejść między stronami i elementami za pomocą CSS View Transitions API. Ćwiczysz CSS Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć CSS Academy?
Nie wymagamy żadnego doświadczenia. CSS Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „View Transitions API”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji CSS Academy?
Tak. Każda lekcja CSS Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Natywne zagnieżdżanie CSS
- Pseudoklasa relacyjna :has()
- @scope dla stylów o ograniczonym zakresie
- View Transitions API