Repository navigation
Releases: milkevich/routeveil
Release list
Routeveil v0.4.1
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.1Routeveil v0.4.0
Routeveil v0.4.0
This release introduces controlled between rendering for React Router transitions.
Added
- Added navigation-level
betweencontent toRouteveilLinkanduseRouteveilNavigate - Added
RouteveilBetweenfor incoming-route content controlled bywhileandminDuration - Added between rendering to
useRouteveilTransitionplayback - 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.0Routeveil v0.3.1
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
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
What’s changed
- Optimized the
RouteveilProviderfor 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@latestRouteveil v0.2.4
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
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
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
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
RouteveilLinkdestinations - Provider-level preload defaults through
RouteveilProvider - Per-link preload overrides
intent,viewport, andrenderpreload strategiesuseRouteveilPendingWorkfor 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