flutter_route_shifter 1.0.0 copy "flutter_route_shifter: ^1.0.0" to clipboard
flutter_route_shifter: ^1.0.0 copied to clipboard

A powerful, declarative route transition package with 34+ chainable animations, shared elements, and advanced effects for Flutter applications.

Flutter Route Shifter #

A powerful, declarative route transition package with 34+ chainable animations, shared elements, and advanced effects for Flutter applications.

pub package License: MIT Flutter Dart GitHub

πŸŽ₯ View Live Animations: See all 17 animation demos on GitHub - GIFs show each transition in action!


🎬 Animation Showcase #


Fade + Slide

Scale Animation

Sequenced Effects

Glass Morphism

Shared Elements

3D Perspective

✨ Features #

🎨 Rich Animation Library #

  • 34+ Built-in Effects - Complete collection of transitions
  • Chainable API - Intuitive .fade().slide().scale() syntax
  • Creative Effects - Glass, glitch, parallax, and more
  • 3D Transformations - Perspective, shear, and depth effects

πŸš€ Advanced Features #

  • Shared Elements - Hero-like transitions between pages
  • Platform Presets - Material Design & Cupertino styles
  • Sequenced Animations - Precise timing control
  • Performance Optimized - Minimal overhead, smooth 60fps

πŸš€ Quick Start #

Installation #

dependencies:
  flutter_route_shifter: ^1.0.0
$ flutter pub get

Basic Usage #

import 'package:flutter_route_shifter/flutter_route_shifter.dart';

// Simple fade transition
final route = RouteShifterBuilder()
  .fade(duration: Duration(milliseconds: 300))
  .toRoute(page: NextPage());

Navigator.of(context).push(route);

🎨 Animation Effects #

πŸ”Ή Core Transitions #

πŸ“± Fade Transitions
// Basic fade in
RouteShifterBuilder()
  .fade(
    duration: Duration(milliseconds: 400),
    curve: Curves.easeInOut,
  )

// Fade with opacity control
RouteShifterBuilder()
  .fade(
    beginOpacity: 0.0,
    endOpacity: 1.0,
    duration: Duration(milliseconds: 500),
  )
πŸ“± Slide Transitions
// Slide from right
RouteShifterBuilder()
  .slide(
    beginOffset: Offset(1.0, 0.0),
    duration: Duration(milliseconds: 300),
  )

// Convenient presets
RouteShifterBuilder().slideFromBottom()
RouteShifterBuilder().slideFromLeft()
RouteShifterBuilder().slideFromTop()
πŸ“± Scale Transitions
// Scale up from center
RouteShifterBuilder()
  .scale(
    beginScale: 0.0,
    endScale: 1.0,
    alignment: Alignment.center,
  )

// Quick presets
RouteShifterBuilder().scaleUp()
RouteShifterBuilder().scaleDown()
πŸ“± Rotation Transitions
// Rotate on entry
RouteShifterBuilder()
  .rotation(
    beginAngle: -0.5,
    endAngle: 0.0,
    alignment: Alignment.center,
  )

// Full spin effect
RouteShifterBuilder()
  .rotation(beginAngle: -6.28) // 2Ο€ rotation

πŸ”Ή Advanced Effects #

🌟 Glass Morphism
// Glass effect
RouteShifterBuilder()
  .glass(
    blur: 20.0,
    opacity: 0.1,
    duration: Duration(milliseconds: 800),
  )
🌟 3D Perspective
// 3D perspective flip
RouteShifterBuilder()
  .perspective(
    rotationX: 0.3,
    rotationY: 0.0,
    distance: 2.0,
  )
🌟 Shear Transform
// Shear effect
RouteShifterBuilder()
  .shear(
    beginShear: Offset(0.0, 0.0),
    endShear: Offset(0.2, 0.0),
    duration: Duration(milliseconds: 500),
  )
🌟 Sequenced Animations
// Manual timing control
RouteShifterBuilder()
  .sequenced(
    timings: {
      'header': Duration(milliseconds: 0),
      'content': Duration(milliseconds: 200),
      'footer': Duration(milliseconds: 400),
    },
    baseEffect: SlideEffect(begin: Offset(0, 0.3)),
  )

// Use with SequencedItem widgets
SequencedItem(
  id: 'header',
  child: Text('Animated Header'),
)

πŸ”Ή Creative Effects #

⚑ Glitch Effect
// Digital glitch
RouteShifterBuilder()
  .glitch(
    intensity: 0.5,
    duration: Duration(milliseconds: 600),
  )
⚑ Color Tint
// Color overlay transition
RouteShifterBuilder()
  .colorTint(
    beginColor: Colors.blue.withOpacity(0.8),
    endColor: Colors.transparent,
  )
⚑ Mask Transition
// Mask transition
RouteShifterBuilder()
  .mask(
    shape: MaskShape.circle,
    alignment: Alignment.center,
  )
⚑ Clip Path
// Custom clip transition
RouteShifterBuilder()
  .clipPath(
    clipper: CustomClipPath(),
    duration: Duration(milliseconds: 700),
  )

πŸ”Ή Platform Presets #

πŸ“± Material Design
// Material 3 preset
RouteShifterBuilder()
  .materialPreset(MaterialTransition.slideUp)

// Available Material presets:
// - MaterialTransition.slideUp
// - MaterialTransition.fadeThrough  
// - MaterialTransition.sharedAxis
// - MaterialTransition.container
🍎 Cupertino (iOS)
// iOS-style preset
RouteShifterBuilder()
  .cupertinoPreset(CupertinoTransition.rightToLeft)

// Available Cupertino presets:
// - CupertinoTransition.rightToLeft
// - CupertinoTransition.bottomToTop
// - CupertinoTransition.modalPresent
// - CupertinoTransition.pageReplace
🍎 Cupertino Modal
// iOS modal presentation
RouteShifterBuilder()
  .cupertinoModal(
    presentationStyle: ModalPresentationStyle.pageSheet,
    duration: Duration(milliseconds: 400),
  )

πŸ”Ή Effect Combinations #

πŸ”— Popular Combinations
// Slide + Fade
RouteShifterBuilder()
  .slideAndFade(
    slideBegin: Offset(1.0, 0.0),
    fadeBegin: 0.0,
  )

// Scale + Fade
RouteShifterBuilder()
  .scaleAndFade(
    scaleBegin: 0.8,
    fadeBegin: 0.0,
  )

// Rotation + Scale
RouteShifterBuilder()
  .rotationAndScale(
    rotationBegin: -0.5,
    scaleBegin: 0.0,
  )

// Complex combination
RouteShifterBuilder()
  .complexTransition(
    slideBegin: Offset(0.0, 1.0),
    scaleBegin: 0.8,
    fadeBegin: 0.0,
    rotationBegin: 0.1,
  )

πŸ”§ Advanced Usage #

Chaining Multiple Effects #

// Chain multiple effects together
final route = RouteShifterBuilder()
  .fade(duration: Duration(milliseconds: 200))
  .slide(beginOffset: Offset(1.0, 0.0))
  .scale(beginScale: 0.8)
  .rotation(beginAngle: 0.1)
  .toRoute(page: NextPage());

Navigator.of(context).push(route);

Custom Timing and Curves #

RouteShifterBuilder()
  .fade(
    duration: Duration(milliseconds: 800),
    curve: Curves.elasticOut,
  )
  .slide(
    duration: Duration(milliseconds: 600),
    curve: Curves.fastOutSlowIn,
  )

Interactive Dismiss Gestures #

RouteShifterBuilder()
  .fade()
  .slide()
  .enableDismissGesture(
    direction: DismissDirection.horizontal,
    sensitivity: 0.3,
  )

Additional Effects #

Click to see more effects
// Blur transitions
RouteShifterBuilder()
  .blur(
    beginSigma: 10.0,
    endSigma: 0.0,
    duration: Duration(milliseconds: 600),
  )

// Parallax effect
RouteShifterBuilder()
  .parallax(
    offset: Offset(0.0, 0.5),
    intensity: 0.7,
  )

// Follow path animation
RouteShifterBuilder()
  .followPath(
    path: customPath,
    duration: Duration(milliseconds: 1000),
  )

// Spring physics
RouteShifterBuilder()
  .spring(
    mass: 1.0,
    stiffness: 100.0,
    damping: 10.0,
  )

🎯 Performance Tips #

  • βœ… Use const constructors where possible
  • βœ… Prefer shorter animation durations for better UX (200-400ms)
  • βœ… Combine related effects rather than chaining many separate ones
  • βœ… Use builder patterns for complex animations
  • βœ… Test on lower-end devices to ensure smooth performance

πŸ“± Platform Support #

Platform Version Status
πŸ€– Android API 16+ βœ… Fully Supported
🍎 iOS 9.0+ βœ… Fully Supported
🌐 Web Modern Browsers βœ… Fully Supported
πŸ–₯️ macOS 10.11+ βœ… Fully Supported
πŸͺŸ Windows 7+ βœ… Fully Supported
🐧 Linux All Distros βœ… Fully Supported

🀝 Contributing #

We welcome contributions! Here's how you can help:

  1. πŸ› Report Bugs - Found an issue? Create an issue
  2. πŸ’‘ Suggest Features - Have an idea? We'd love to hear it!
  3. πŸ“ Improve Documentation - Help make our docs better
  4. πŸ”§ Submit Pull Requests - Read our Contributing Guide

πŸ“„ License #

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments #

  • πŸ’™ Flutter Team - For the incredible framework
  • 🌟 Community Contributors - Thank you for your support and feedback
  • 🎨 Design Inspiration - Various animation libraries and design systems

Made with ❀️ for the Flutter community

⭐ Star us on GitHub | πŸ“¦ View on pub.flutter-io.cn | πŸ“š Documentation

17
likes
0
points
67
downloads

Publisher

verified publisherionicerrrrscode.com

Weekly Downloads

A powerful, declarative route transition package with 34+ chainable animations, shared elements, and advanced effects for Flutter applications.

Repository (GitHub)
View/report issues

Topics

#animation #transitions #navigation #flutter #material-design

Documentation

Documentation

License

unknown (license)

Dependencies

flutter

More

Packages that depend on flutter_route_shifter