View Transitions API — нативная JS API для плавных animations между состояниями DOM. document.startViewTransition() делает snapshot старого → применяет изменения → анимирует переход через CSS. Chrome 111+ (same-document), 126+ (cross-document). Framework-agnostic, но интеграции с React Router, Next.js уже есть.
Ниже: подробности, пример, смежные термины, FAQ.
// Plain JS — SPA page switch
function navigate(url) {
if (!document.startViewTransition) return render(url);
document.startViewTransition(() => render(url));
}
// CSS custom animation
@keyframes fade-in { from { opacity: 0; } }
::view-transition-new(root) {
animation: fade-in 0.3s ease;
}Для простых page transitions — да. Для complex interactive animations (drag, spring physics) — Framer Motion / GSAP лучше.
Technology Preview 208 (2025) имеет same-document. Production Safari — ещё нет. Firefox: тоже WIP.
Same-document: no impact (SPA routing). Cross-document: native nav, crawlers видят regular navigation.