Radical
Reference

Transitions API

Router installation and the lower-level transition services.

internalPlugins.transitions defaults to true. Radical supplies the native transition overlay plugin. @akshatowo/radical/transitions.css contains the browser transition styles.

TanStack installer

browserTransitions(router, options?, browserLayer?) from @akshatowo/radical/tanstack-start-client installs once per router. Returns { cancel(), dispose() }. SSR returns no-op methods.

OptionMeaning
timeoutMsOverlay and animation wait timeout. Defaults to 1000 milliseconds in the installer. Never bounds the router commit.
directionCallback mapping history-derived "forward" or "back" to the selected direction.

The optional third argument replaces BrowserTransitionsLive. Destination staticData.radical.transition accepts "slide" or "fade". Shells use native overlays; capable browsers use typed view transitions. Unsupported browsers use plain navigation.

Client exports

ExportContract
TransitionSchema, Transition{ kind: "slide" | "fade", direction: "forward" | "back" }
BrowserTransitions, BrowserTransitionsLiveService for typed-transition support and active transition state.
BrowserTransitionfinished Effect and skip Effect.
cancelBrowserTransitionEffect requiring BrowserTransitions. Skips the active transition.
watchBrowserTransition(timeoutMs)Effect requiring BrowserTransitions. Skips on timeout; completion does not gate Router's DOM update.
NativeTransitions, NativeTransitionsLiveService with cover(id), reveal(id, transition), remove(id), and painted. The live layer requires Bridge.
nativeTransition(id, transition, commit, timeoutMs?)Effect requiring NativeTransitions. Runs the commit once even if capture fails. Default timeout 1000 milliseconds.
transitionStrategyEffect requiring Bridge | BrowserTransitions. Returns "native", "browser", or "plain".
Behavior or errorContract
TransitionFailed, TransitionTimeoutCarry cause
NavigationFailedAdapter navigation failure
Capture failureCommit once without animation
Reduced motionHonored by both shells
Stale overlayRemoved after three seconds
Slide30% background parallax; history back reverses direction

Platform support

CapabilityAndroidiOSBrowser
Navigation transitionNative overlayNative overlayTyped view transition if supported; otherwise plain navigation

Source: transition implementation, protocol details.

On this page