Skip to main content
ExodeUI

EXODEUI DESKTOP

A little space for good ideas.

Choose your platform to get the official ExodeUI installer.

Looking for Intel Mac or other builds? Explore the web studio or check all download options.

Prefer the browser? Try for free in your browser →
LibrariesUpdated ·By the ExodeUI team

The Best Page Transition Libraries in 2026

A page transition is the moment a site either feels considered or feels like a series of reloads. The browser now handles much of this natively, which changed the answer for new projects: the question is less which library and more whether you need one at all.

We make ExodeUI, which is not a routing or page-transition library. It appears here only for animating UI inside a page, not between pages.

Short answer

Use the native View Transitions API first: it is built into the browser and needs no dependency. Use React Router's view transitions support in a React app. Use Astro's built-in transitions for a static site. Swup is the mature choice for multi-page sites that want client-side transitions without a framework. Barba.js is the lighter, older option for the same job.

Quick picks by job

If you needUse
No dependency, browser-native transitionsView Transitions API
React apps using React RouterReact Router
Static sites on AstroAstro transitions
Multi-page sites without a frameworkSwup
A minimal script for page swapsBarba.js
How we compared them
  • Whether it needs a router, a framework or nothing at all
  • How it handles browsers without native support
  • The cost in client JavaScript and setup complexity

The 5 best page transition options

1. View Transitions API

Best for: Cross-fades and shared-element morphs with no library

Platforms
Modern browsers
Price
Free, built into the browser
Output
Transitions handled by the browser

The browser can snapshot the old page and animate to the new one, including moving a named element from one position to another. For a multi-page site this can be a few lines of CSS and one call. Support is still uneven, so treat it as an enhancement with a sensible fallback.

Pros and cons
  • No dependency and very little code
  • Named elements can morph between pages
  • Works with plain links and server-rendered pages
  • Browser support still varies
  • Limited control over complex choreography
View transition libraries compared

2. React Router

Best for: React apps that already use React Router for navigation

Platforms
React
Price
Free and open source
Output
Transitions tied to route changes

If your app already routes with React Router, adding view transitions is a small step rather than a new dependency. You get transitions on navigation and can name elements that should persist between routes. For a plain marketing site with no React, this is the wrong tool.

Pros and cons
  • No new routing layer
  • Works with the native API
  • Fine-grained control per route
  • Only relevant if you already use React Router
  • Still dependent on browser support

3. Astro transitions

Best for: Static and content sites that want fast navigation

Platforms
Astro sites
Price
Free, part of Astro
Output
Page transitions with minimal client JavaScript

Astro wraps the native API so a static site gets transitions without becoming a single-page app. It is the least disruptive way to add page motion to a content site, and it keeps the no-JavaScript baseline mostly intact.

Pros and cons
  • Very little client JavaScript
  • Fits Astro's routing and islands
  • Simple fallback behaviour
  • Only for Astro projects
  • Limited to what the API supports
Astro animation libraries

4. Swup

Best for: Multi-page sites that want app-like navigation without a framework

Platforms
Any server-rendered site
Price
Free and open source; paid plugins available
Output
Client-side page swaps with transition hooks

Swup has been doing this for years: intercept links, fetch the next page, swap the container and run an animation. It works with any back end and has a plugin ecosystem for scripts and accessibility. The cost is that you are running a client-side router over a server-rendered site.

Pros and cons
  • Framework agnostic
  • Mature, with many examples
  • Good hooks for animation and analytics
  • Adds a client-side router to a static site
  • Needs care with scripts and focus management

5. Barba.js

Best for: A small, minimal script for page swaps and transitions

Platforms
Any server-rendered site
Price
Free and open source
Output
Client-side page swaps with transition hooks

Barba is the lighter, older alternative to Swup. It handles fetching and swapping pages and leaves the animation to GSAP or CSS. It is a good fit for an agency site with a few custom transitions, and a poor fit for a large app that needs state management.

Pros and cons
  • Small and focused
  • Pairs well with GSAP
  • Simple mental model
  • Smaller plugin ecosystem
  • You write more of the glue yourself

You have read the list. The one we make is one click away.

Free Community plan. One open .exode file that runs in React, Vue, Svelte, Angular, Solid, React Native, SwiftUI and Flutter.

Open the editor

Also worth a look

Transitions and accessibility

A page transition moves focus and content at the same time. Announce the new page, move focus to the main heading, and reset scroll position deliberately. Respect prefers-reduced-motion by shortening the transition to a near-instant fade. These details matter more than whether the animation is 200 or 400 milliseconds.

Measure what the transition costs

A transition that blocks the next page from painting makes the site feel slower even when it looks smoother. Watch the interaction on a throttled connection and a mid-range phone. If the animation delays content by more than a few hundred milliseconds, shorten it or drop it.

Frequently asked questions

Transitions inside the page, too

ExodeUI handles the states and springs of the UI itself, on web and mobile, from one file.

Try for free