page_navigation_transition 1.0.1
page_navigation_transition: ^1.0.1 copied to clipboard
A comprehensive Flutter package providing 100+ page navigation transitions.
Page Navigation Transition #
A comprehensive Flutter package providing 100+ beautiful page navigation transitions for your Flutter applications. Easily add smooth, professional animations when navigating between pages.
✨ Features #
- 100+ Pre-built Transitions organized into 13 categories
- Type-safe generic transitions
- Customizable duration, curves, and parameters
- Extension methods for easy navigation
- Static factory for cleaner code
- Accessibility-friendly options
- Zero dependencies - only Flutter SDK required
- Cross-platform - iOS, Android, Web, Desktop
📦 Transition Categories #
| Category | Count | Examples |
|---|---|---|
| 🎚️ Slide | 8 | Slide, Push, Cover, Reveal, Parallax, Elastic, Bouncy |
| 🌫️ Fade | 7 | Fade, FadeScale, FadeRotation, FadeThrough, CrossFade |
| 🔍 Scale | 8 | Scale, Zoom In/Out, Pop, Shrink/Grow |
| 🔄 Rotation | 9 | Rotate, Flip H/V, Spin, Door, Tilt |
| 📐 Size | 6 | Expand H/V, Split, Unfold, ClipRect |
| 🎨 Material Design | 6 | Shared Axis, Container Transform, Elevation |
| 🍎 iOS Style | 7 | Cupertino, Modal, Sheet, Page Curl, App Store Card |
| 🎲 3D Effects | 9 | Cube, Card Flip, Carousel, Cover Flow, Perspective |
| ⚡ Physics-based | 7 | Spring, Gravity, Elastic Bounce, Pendulum |
| ✨ Custom Effects | 10 | Circular Reveal, Blur, Glitch, Accordion, Wipe |
| 💎 Modern UI | 9 | Glassmorphism, Liquid Swipe, Gooey, Neumorphism |
| 📱 Social Media | 8 | Story, Reels, Snap, Swipe Card, Stacked Cards |
| ♿ Accessibility | 7 | No Animation, Simple Fade, Adaptive |
🚀 Getting Started #
Installation #
Add this to your pubspec.yaml:
dependencies:
page_navigation_transition: ^1.0.0
Then run:
flutter pub get
Import #
import 'package:page_navigation_transition/page_navigation_transition.dart';
📖 Usage #
Method 1: Direct Usage #
Use transitions directly with Navigator.push:
Navigator.push(
context,
SlidePageTransition<void>(
page: SecondPage(),
direction: SlideDirection.fromRight,
duration: Duration(milliseconds: 300),
),
);
Method 2: Extension Methods #
Use convenient extension methods on BuildContext or NavigatorState:
// Using BuildContext extension
context.pushSlide(SecondPage());
context.pushFade(SecondPage());
context.pushCubeHorizontal(SecondPage());
// Using NavigatorState extension
Navigator.of(context).pushSpring(SecondPage());
Navigator.of(context).pushCircularReveal(SecondPage());
Method 3: Static Factory Methods #
Use the PageTransitions factory class:
Navigator.push(
context,
PageTransitions.slide(
SecondPage(),
direction: SlideDirection.fromBottom,
),
);
Navigator.push(
context,
PageTransitions.cubeHorizontal(SecondPage()),
);
Navigator.push(
context,
PageTransitions.circularReveal(
SecondPage(),
center: Alignment.bottomRight,
),
);
🎯 Examples #
Slide Transitions #
// Basic slide from right
Navigator.push(context, SlidePageTransition(page: NextPage()));
// Slide from bottom with custom duration
Navigator.push(context, SlidePageTransition(
page: NextPage(),
direction: SlideDirection.fromBottom,
duration: Duration(milliseconds: 500),
));
// Elastic slide
Navigator.push(context, ElasticSlidePageTransition(page: NextPage()));
// Parallax slide
Navigator.push(context, ParallaxPageTransition(
page: NextPage(),
parallaxFactor: 0.3,
));
Fade Transitions #
// Simple fade
Navigator.push(context, FadePageTransition(page: NextPage()));
// Fade with scale
Navigator.push(context, FadeScalePageTransition(
page: NextPage(),
beginScale: 0.8,
));
// Fade through (Material Design)
Navigator.push(context, FadeThroughPageTransition(page: NextPage()));
3D Transitions #
// Cube rotation
Navigator.push(context, CubeHorizontalPageTransition(page: NextPage()));
Navigator.push(context, CubeVerticalPageTransition(page: NextPage()));
// Card flip
Navigator.push(context, CardFlipPageTransition(
page: NextPage(),
horizontal: true,
));
// Cover flow
Navigator.push(context, CoverFlowPageTransition(page: NextPage()));
Material Design Transitions #
// Shared axis horizontal
Navigator.push(context, SharedAxisPageTransition(
page: NextPage(),
direction: SharedAxisDirection.horizontal,
));
// Container transform
Navigator.push(context, ContainerTransformPageTransition(page: NextPage()));
iOS-style Transitions #
// Cupertino slide (iOS default)
Navigator.push(context, CupertinoSlidePageTransition(page: NextPage()));
// Modal sheet
Navigator.push(context, SheetPageTransition(
page: NextPage(),
heightFactor: 0.9,
));
Physics-based Transitions #
// Spring animation
Navigator.push(context, SpringPageTransition(page: NextPage()));
// Elastic bounce
Navigator.push(context, ElasticBouncePageTransition(page: NextPage()));
// Gravity drop
Navigator.push(context, GravityDropPageTransition(page: NextPage()));
Custom Effects #
// Circular reveal from center
Navigator.push(context, CircularRevealPageTransition(
page: NextPage(),
center: Alignment.center,
));
// Blur transition
Navigator.push(context, BlurPageTransition(
page: NextPage(),
maxBlur: 10.0,
));
Modern UI Transitions #
// Glassmorphism
Navigator.push(context, GlassmorphismPageTransition(page: NextPage()));
// Liquid swipe
Navigator.push(context, LiquidSwipePageTransition(page: NextPage()));
// Gooey effect
Navigator.push(context, GooeyPageTransition(page: NextPage()));
Social Media Transitions #
// Instagram stories
Navigator.push(context, StoryPageTransition(page: NextPage()));
// TikTok/Reels swipe
Navigator.push(context, ReelsPageTransition(page: NextPage()));
// Snapchat style
Navigator.push(context, SnapPageTransition(page: NextPage()));
Accessibility #
// No animation (instant)
Navigator.push(context, NoAnimationPageTransition(page: NextPage()));
// Adaptive (respects system reduce motion)
Navigator.push(context, AdaptivePageTransition(page: NextPage()));
⚙️ Configuration #
All transitions support common parameters:
SlidePageTransition(
page: NextPage(), // Required: The destination page
direction: SlideDirection.fromRight, // Direction of slide
duration: Duration(milliseconds: 300), // Animation duration
curve: Curves.easeInOut, // Animation curve
settings: RouteSettings(name: '/next'), // Route settings
);
📋 Enums #
SlideDirection #
fromLeft,fromRight,fromTop,fromBottomfromTopLeft,fromTopRight,fromBottomLeft,fromBottomRight
ScaleOrigin #
center,topLeft,topRight,bottomLeft,bottomRighttopCenter,bottomCenter,centerLeft,centerRight
SharedAxisDirection #
horizontal,vertical
WipeShape #
horizontal,vertical,diagonal
🤝 Contributing #
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📄 License #
This project is licensed under the MIT License - see the LICENSE file for details.
👨💻 Author #
Satish Parmar
📦 Repository • 🌟 smart_review_prompter
⭐ If you like this package, please give it a star on GitHub! ⭐