The View Transitions API on a Next.js landing page: useful fade or gimmick?
Published on 31 August 2026 · 8 min read
Clicking a template card and landing on its detail page, clicking "view demo" and switching to the live page, submitting a form and arriving on the thank-you page: on a typical landing page, every one of these navigations plays out as a hard cut. The old page disappears, a brief blank flashes by, the new page appears all at once. Nothing visually connects the two screens, even when they share an identical element — the same product image, the same headline, the same button. The View Transitions API, which Next.js can now drive natively, targets exactly that break: it lets you tell the browser "this element stays the same, animate its move instead of making it disappear and reappear".
What the View Transitions API actually changes
The View Transitions API is a native browser feature (Chrome, Edge, and Safari from version 18) that captures a visual snapshot of a page's "before" state, lets the DOM update to the "after" state, then automatically animates the move from one to the other — a default cross-fade, or a custom animation defined in CSS. It isn't a JavaScript library to load and maintain: the browser itself handles the capture and the animation, with no transition code to hand-write. Since Next.js 15, an experimental React <ViewTransition> component (enabled via experimental: { viewTransition: true } in next.config) lets you wrap the relevant elements and name the ones that should persist across routes — navigating within the App Router then triggers the transition automatically, with no dedicated client-side animation component in the way.
Why visual continuity affects perception, not just aesthetics
The value isn't purely decorative. A 2025 study in the Journal of Consumer Research by Yu Ding (Baruch College) and Ellie Kyung (Babson College), on animation speed and perceived waiting time (available on Google Scholar), finds an inverted-U relationship between animation speed and how long a wait feels: a moderate-speed animation cuts perceived waiting time more than no animation at all, but also more than one that's too fast or too slow, because it captures attention without overwhelming it. An earlier study, presented in 2010 at the CHI conference by Jarmo Huhtala, Ari-Heikki Sarjanoja, Jani Mäntyjärvi and coauthors (available on Google Scholar), points to the same conclusion from a different angle: showing a fragment of the next screen earlier in the transition does more to lower perceived waiting time than the animation's total duration does. In other words, it isn't the animation itself that reassures a user during a wait — it's the visual promise that something familiar keeps existing on the other side.
Where this fade actually earns its place on a landing page
- From a grid of templates to a detail page: the clicked thumbnail smoothly grows into the next page's hero image instead of vanishing and reappearing elsewhere — useful on a page presenting several offers side by side, where the paradox of choice already makes comparison mentally costly.
- From the hero to a template's live demo: on the SaaS waitlist template (demo), a visitor who clicks "view demo" keeps the same visual anchor (the product name, the button) while the next page loads, which reduces the feeling of having left the site.
- From the form to the thank-you page: letting the submit button morph into a visual confirmation avoids the brief hesitation where a visitor wonders whether their submission actually went through.
- Between two steps of a multi-step form: the progress bar and the fields already filled in slide rather than jump from one screen to the next, in line with what our article on progress bars already recommends.
Adding it without breaking what already works
- Enable the
experimental.viewTransitionflag innext.config, testing first on a secondary route rather than the page that carries the main conversion. - Name a transition identifier (
viewTransitionName) only on the one or two elements that genuinely need to persist from one page to the next — an image, a headline, a button — not the entire layout. - Keep the animation short (roughly 150 to 250 ms): beyond that, the effect slows down the perceived navigation instead of smoothing it, defeating the very point of the feature.
- Respect
prefers-reduced-motionby disabling the animated transition for visitors who requested it at the system level — the browser then falls back to an instant change, with no extra code required. - Check that navigation still works normally on a browser that doesn't yet support the API (Firefox, notably): without the View Transitions API, the page simply changes with no animated transition, and no functionality is lost.
The limits worth knowing before investing in it
- Experimental status. React's
<ViewTransition>component is only available on Canary builds and remains marked experimental in the Next.js 15 documentation — worth re-evaluating before a wide rollout on a critical conversion page. - Partial browser support. Transitions between routes currently work on Chrome, Edge and Safari 18+, but not yet on Firefox: the effect degrades gracefully (normal navigation, no transition), which makes adopting it risk-free functionally, but its benefit stays invisible to part of the traffic.
- It isn't a performance lever. The View Transitions API improves how an already-fast navigation feels; it does nothing to offset a slow server response time or a degraded LCP. On those points, the Speculation Rules API and Partial Prerendering have a direct effect on actual speed; the View Transitions API only acts on felt speed once the page is already there.
- A bad fallback breaks the layout. As with any loading-related animation, content that hasn't reached its final size by the time the transition runs reintroduces a visual shift — see our article on Core Web Vitals CLS.
Should you add it to a LanderKit landing page?
It isn't a priority in the sense our articles on load speed or TTFB mean it: a slow landing page with elegant transitions is still a slow landing page. But once the performance fundamentals are in place, the View Transitions API is one of the rare visual effects whose implementation cost is close to zero (no library, a few lines of CSS and a flag) for a genuine benefit on multi-page journeys — typically moving from a grid of templates to a product page, or from a form to its confirmation. Since every LanderKit template ships as a self-contained Next.js mini-project, nothing stops you from turning it on case by case for the two or three transitions that actually matter, without touching the rest of the site or risking a worse experience on browsers that don't support it yet.
FAQ
Frequently asked questions
Does the View Transitions API require a JavaScript library like Framer Motion?
No. It's a native browser feature that automatically captures and animates the move between two page states. In Next.js, it's driven through React's experimental <ViewTransition> component, with no third-party library to install.
What happens on a browser that doesn't support the View Transitions API?
Navigation happens normally, just without the animation: no functionality is lost, only the visual continuity effect disappears. That's currently the case on Firefox, while Chrome, Edge and Safari 18+ already support it.
Does the View Transitions API improve a landing page's actual speed?
No, it only affects the perceived speed of an already-fast navigation. For actual speed (server response time, LCP), techniques like the Speculation Rules API or Partial Prerendering have a direct effect.
Which pages on a landing page benefit most from this fade?
Navigations where an identical visual element appears on both sides — a grid of templates going to its detail page, a hero going to its demo page, or a form going to its thank-you page — rather than pages with no shared element to carry over.
Read next
Related articles
- Should You Animate Your Landing Page? What Research Says About Motion and ConversionA parallax hero, a headline that types itself out letter by letter, a call-to-action button that gently pulses: animation gives a landing page a "modern" feel that's tempting to chase. What research on motion and involuntary attention shows is more nuanced — some animations genuinely help conversion, others sabotage it quietly, often at the worst possible moment.
- Next.js Partial Prerendering (PPR): making a landing page static and dynamic at onceNearly every performance recommendation pushes toward a fully static landing page — yet its promo banner, countdown, or localized price still needs to be recalculated on every visit. Next.js's Partial Prerendering serves an instant static shell and streams in those few dynamic blocks on top of it, without reopening the whole page's render to the server.
- The Speculation Rules API: making the click on a landing page's CTA truly instantA visitor clicks "Book a demo" or "Join the waitlist," and waits a beat while the next page loads — a few hundred milliseconds, enough to introduce a moment of hesitation. Next.js's prefetch already downloads that page's data ahead of time, but not its render. Chrome's Speculation Rules API goes a step further: it executes and paints the target page in the background before the click happens, so the navigation feels like it takes no time at all.