Skip to content

Releases: milkevich/routeveil

Routeveil v0.4.1

Choose a tag to compare

@milkevich milkevich released this 09 Aug 02:08

Routeveil v0.4.1

This release adds transitioned history navigation and significantly improves shared-element stability, scrolling behavior, and mobile performance.

Added

  • Added transitioned backward history navigation through useRouteveilNavigate(-1)
  • Added history-aware POP navigation with coordinated exit, route commit, shared-element matching, and entry

Improved

  • Stabilized shared-element destinations across mobile Safari and Chrome
  • Improved shared-element performance and reduced delays before transitions begin
  • Preserved accurate shared-element handoff when lazy-loaded content affects destination layout
  • Kept higher z-index sticky and fixed elements correctly positioned while scrolling during transitions
  • Prevented sticky and fixed elements from lagging, flashing, or snapping during shared-element movement
  • Prevented outgoing pages from visibly scrolling or reflowing during exit transitions
  • Prevented incoming routes from inheriting the outgoing route's document height
  • Improved shared-element snapshot performance while preserving outgoing page appearance
  • Improved mobile viewport and scroll stabilization during shared-element navigation

Install

npm install routeveil@0.4.1

Routeveil v0.4.0

Choose a tag to compare

@milkevich milkevich released this 02 Aug 23:33
ca28309

Routeveil v0.4.0

This release introduces controlled between rendering for React Router transitions.

Added

  • Added navigation-level between content to RouteveilLink and useRouteveilNavigate
  • Added RouteveilBetween for incoming-route content controlled by while and minDuration
  • Added between rendering to useRouteveilTransition playback
  • Added support for page and overlay transition lifecycles
  • Added automatic fallback-to-incoming content crossfades
  • Added the Between Render laboratory and documentation

Improved

  • Preserved layout and scroll behavior during same-page playback
  • Prevented between rendering and shared-element movement from competing
  • Improved cleanup, interruption, reduced-motion, readiness, and accessibility handling
  • Prevented duplicate transition requests from restarting active navigation

Install

npm install routeveil@0.4.0

Routeveil v0.3.1

Choose a tag to compare

@milkevich milkevich released this 31 Jul 05:59

Fixes

  • prevents duplicate transition runs when a transitioned link is activated rapidly
  • avoids visual flickering and repeated lifecycle work on double-click
  • ensures duplicate navigation requests do not create additional commits or history entries
  • preserves existing transition concurrency and cleanup behavior

Routeveil v0.3.0

Choose a tag to compare

@milkevich milkevich released this 31 Jul 05:27

Highlights

Routeveil 0.3 introduces a cleaner, unified transition API with independent control over page exit and enter phases.

Unified transition configuration

Transition options now live directly inside transition:

transition={{
  name: 'slide',
  direction: 'left',
}}

Independent exit and enter transitions

Compose page transitions from separate phases:

transition={{
  exit: 'fade',
  enter: {
    name: 'slide',
    direction: 'up',
  },
}}

Either phase can be omitted for an instant exit or enter:

transition={{ enter: 'fade' }}

Included

  • unified string and object transition API
  • independently configurable exit and enter page phases
  • support for one-sided page transitions
  • flattened options for page and overlay transitions
  • updated TypeScript inference and public types
  • preserved shared elements, preloading, playback, and reduced-motion behavior
  • updated tests, demo, and documentation

Breaking change

The separate transitionOptions property has been removed.

// Before
transition="slide"
transitionOptions={{ direction: 'left' }}

// Now
transition={{
  name: 'slide',
  direction: 'left',
}}

Routeveil v0.2.5

Choose a tag to compare

@milkevich milkevich released this 29 Jul 02:25

What’s changed

  • Optimized the RouteveilProvider for better performance and reduced unnecessary work during transitions.
  • Improved shared element transitions between routes.
  • Refined transition lifecycle handling for more stable navigation behavior.

Install

npm install routeveil@latest

Routeveil v0.2.4

Choose a tag to compare

@milkevich milkevich released this 28 Jul 03:45

What's new

Page transitions

  • Added a viewport snapshot pipeline for smoother and more reliable page exit and enter transitions.
  • Improved handling of viewport backgrounds, overflow, mount animations, resizing, and transition cleanup.

Shared elements

  • Stabilized shared-element handoffs when incoming elements have delayed opacity or filter animations.
  • Fixed flashes during rapid back-and-forth navigation.
  • Improved interrupted-transition cleanup and detached handoff behavior.
  • Preserved immediate page interaction after the enter transition finishes.

Preloading and mobile performance

  • Improved route preloading so transitions can begin immediately while destination code finishes loading.
  • Reduced mobile delays when opening preloaded routes.
  • Prevented syntax highlighting from blocking or freezing enter transitions.

Documentation

  • Updated the getting-started and transition documentation.
  • Improved code-block highlighting and mobile clipboard support.
  • Updated the home page, navigation, and shared-elements playground.

Routeveil v0.2.3

Choose a tag to compare

@milkevich milkevich released this 26 Jul 16:55

Fixed

  • Shared elements are now activated only after Routeveil confirms a matching element exists on the destination route.
  • Unmatched shared elements no longer remain visible above the outgoing page during exit animations.
  • Navigating from a shared-element gallery to a route without matches now plays the normal page exit cleanly.
  • Route-wide shared elements still work with navigation controls outside the shared element, including separate Back links.
  • Partial matches now behave correctly: matched elements transition, while unmatched elements exit with the rest of the page.

No public API changes or new props were introduced.

Routeveil v0.2.2

Choose a tag to compare

@milkevich milkevich released this 26 Jul 03:44

Fixed

  • Shared-element transitions now work when navigation is triggered by a link or button outside the shared element.
  • sharedElements="auto" now falls back to valid route-wide shared elements when no registered element is related to the navigation trigger.
  • Trigger-related shared elements are still prioritized when present, preserving gallery and card-based navigation behavior.

This fixes cases such as a separate Back button playing the page transition without moving the matching shared element.

Routeveil v0.2.1

Choose a tag to compare

@milkevich milkevich released this 25 Jul 21:27

Routeveil v0.2.1

This release adds route preloading and destination readiness support for smoother React Router transitions.

Added

  • Automatic lazy-route preloading for transitioned RouteveilLink destinations
  • Provider-level preload defaults through RouteveilProvider
  • Per-link preload overrides
  • intent, viewport, and render preload strategies
  • useRouteveilPendingWork for registering destination work that should finish before reveal

Improved

  • Page and overlay transitions can wait for registered destination work before entering or revealing
  • In-progress route preloads are reused when navigation begins
  • Lazy destination modules can be prepared before the current route starts its transition
  • Transition readiness handling is more reliable for asynchronously rendered destination content

Reliability

  • Failed or timed-out preloads safely continue navigation without trapping the application in a transition
  • Pending destination work uses a safety timeout so transitions can always recover
  • Preloading remains opt-in and does not change normal React Router links or same-location navigation