import 'package:flutter/material.dart'; class SlideFromLeftRoute extends PageRouteBuilder { final Widget child; SlideFromLeftRoute({required this.child}) : super( transitionDuration: Duration(milliseconds: 300), pageBuilder: (BuildContext _, Animation __, Animation ___) => child, transitionsBuilder: (BuildContext _, Animation animation, Animation __, Widget child) => SlideTransition( position: Tween( begin: Offset(-1, 0), end: Offset.zero, ).animate(CurvedAnimation(parent: animation, curve: Interval(0.00, 1.00, curve: Curves.ease))), child: child, ), ); } class SlideFromRightRoute extends PageRouteBuilder { final Widget child; SlideFromRightRoute({required this.child}) : super( transitionDuration: Duration(milliseconds: 300), pageBuilder: (BuildContext _, Animation __, Animation ___) => child, transitionsBuilder: (BuildContext _, Animation animation, Animation __, Widget child) => SlideTransition( position: Tween( begin: Offset(1, 0), end: Offset.zero, ).animate(CurvedAnimation(parent: animation, curve: Interval(0.00, 1.00, curve: Curves.ease))), child: child, ), ); } class SlideFromBottomRoute extends PageRouteBuilder { final Widget child; SlideFromBottomRoute({required this.child}) : super( transitionDuration: Duration(milliseconds: 300), pageBuilder: (BuildContext _, Animation __, Animation ___) => child, transitionsBuilder: (BuildContext _, Animation animation, Animation __, Widget child) => SlideTransition( position: Tween( begin: Offset(0, 1), end: Offset.zero, ).animate(CurvedAnimation(parent: animation, curve: Interval(0.00, 1.00, curve: Curves.ease))), child: child, ), ); } class FadeRoute extends PageRouteBuilder { final Widget child; FadeRoute({required this.child}) : super( transitionDuration: Duration(milliseconds: 300), pageBuilder: (BuildContext _, Animation animation, Animation __) => FadeTransition( opacity: animation, child: child, ), ); }