defaultAdaptiveTransition static method

RouteTransition defaultAdaptiveTransition(
  1. BrowserRoute route
)

Default platform-adaptive route transition strategy:

  • If the route specifies a non-default transition (e.g., fade, scale, none), it is preserved.
  • Web / Desktop (Windows, Linux): RouteTransition.only_hero to avoid jarring side-slides.
  • iOS / macOS: RouteTransition.slide_cupertino for native parallax slide and edge shadow.
  • Android / Fuchsia: RouteTransition.shared_axis_x for Material 3 directional motion.

Implementation

static RouteTransition defaultAdaptiveTransition(BrowserRoute route) {
  if (route.routeTransition != RouteTransition.slide_right) {
    return route.routeTransition;
  }
  if (kIsWeb) {
    return RouteTransition.only_hero;
  }
  return switch (defaultTargetPlatform) {
    TargetPlatform.iOS ||
    TargetPlatform.macOS => RouteTransition.slide_cupertino,
    TargetPlatform.android ||
    TargetPlatform.fuchsia => RouteTransition.shared_axis_x,
    TargetPlatform.windows ||
    TargetPlatform.linux => RouteTransition.only_hero,
  };
}