Flutter Animation Stepper
A Flutter package for creating beautiful horizontal steppers with smooth animations and customizable themes.
Features
- Smooth Animations: Elegant transitions between step states with customizable animation curves
- Fully Customizable: Control colors, sizes, fonts, and animation durations through theme
- Loading Indicator: Built-in support for showing loading state on specific steps
- Step Navigation: Tap on steps to navigate with
onStepTappedcallback - Flexible Widgets: Support for any widget type in steps (Icon, Image, SVG, etc.)
- Layout Options: Choose between connected or separated line layouts
- Horizontal Scrolling: Automatically handles overflow with horizontal scrolling
Getting Started
Add this to your package's pubspec.yaml file:
dependencies:
flutter_animation_stepper: ^1.0.0
Then run:
flutter pub get
Usage
Basic Example
import 'package:flutter_animation_stepper/flutter_animation_stepper.dart';
AnimationStepper(
steps: [
StepItem(
icon: Icon(Icons.shopping_cart),
title: 'Cart',
subtitle: 'Review items',
),
StepItem(
icon: Icon(Icons.payment),
title: 'Payment',
subtitle: 'Enter details',
),
StepItem(
icon: Icon(Icons.check_circle),
title: 'Confirm',
subtitle: 'Complete order',
),
],
currentStep: 1,
onStepTapped: (index) {
setState(() => currentStep = index);
},
)
With Custom Theme
AnimationStepper(
steps: steps,
currentStep: currentStep,
theme: AnimationStepperTheme(
activeColor: Colors.blue,
completeColor: Colors.green,
inactiveColor: Colors.grey,
loadingColor: Colors.orange,
iconSize: 32,
lineHeight: 4,
),
onStepTapped: (index) {
setState(() => currentStep = index);
},
)
With Loading Indicator
AnimationStepper(
steps: steps,
currentStep: currentStep,
loadingStep: 1, // Show loading on step 1
onStepTapped: (index) {
setState(() => currentStep = index);
},
)
Additional Information
For more examples, check out the /example folder in the repository.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Issues
If you encounter any issues, please report them on GitHub Issues.
License
This project is licensed under the MIT License.