A modern, lightweight, and highly customizable collection of beautiful loading animations for Flutter.
✨ Overview
smooth_loader is a dependency-free Flutter package that provides beautiful, smooth, and customizable loading animations for every type of application.
Instead of using the default CircularProgressIndicator, developers can choose from multiple modern loading animations with a consistent API and extensive customization.
Built with performance in mind.
- 🚀 Zero runtime dependencies
- 🎨 Beautiful animations
- ⚡ High performance
- 📱 Responsive
- 🌙 Dark Mode Ready
- 🧩 Easy integration
- 💙 Flutter Native
🎬 Preview
Example:
Pulse Loader
Dots Loader
Wave Loader
Orbit Loader
Spinner Loader
✨ Features
- 10 beautiful built-in loading animations
- Unified
SmoothLoaderwidget - Dedicated widgets for every loader
- Highly customizable
- Theme support
- Null Safety
- Responsive
- Lightweight
- Zero external dependencies
- Works on Android, iOS, Web, Windows, macOS and Linux
📦 Installation
Add the package.
dependencies:
smooth_loader: ^1.0.0
Install packages.
flutter pub get
Import.
import 'package:smooth_loader/smooth_loader.dart';
🚀 Quick Start
Using the unified widget.
const SmoothLoader(
type: LoaderType.wave,
)
Using a dedicated widget.
const PulseLoader()
🎨 Supported Loaders
Version 1.0.0 includes:
- Pulse Loader
- Dots Loader
- Wave Loader
- Orbit Loader
- Spinner Loader
- Ripple Loader
- Ring Loader
- Cube Loader
- Bar Loader
- Bounce Loader
💡 Examples
Pulse Loader
const PulseLoader()
Dots Loader
const DotsLoader()
Wave Loader
const WaveLoader()
Spinner Loader
const SpinnerLoader()
Unified API
const SmoothLoader(
type: LoaderType.spinner,
)
⚙️ Customization
Every loader supports customization.
SmoothLoader(
type: LoaderType.ring,
color: Colors.teal,
size: 56,
duration: Duration(milliseconds: 1200),
strokeWidth: 4,
)
Available properties include:
- color
- size
- duration
- curve
- strokeWidth
- padding
- alignment
- animationDirection
- repeat
- enabled
🎭 Theme Support
Configure global defaults once.
LoaderTheme(
data: const LoaderThemeData(
color: Colors.indigo,
size: 36,
duration: Duration(milliseconds: 800),
),
child: const MyApp(),
)
Individual widget properties always override theme values.
📱 Integration Examples
Scaffold
Scaffold(
body: const Center(
child: SpinnerLoader(),
),
)
FutureBuilder
FutureBuilder(
future: fetchData(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return const Center(
child: SmoothLoader(
type: LoaderType.dots,
),
);
}
return const Text("Loaded");
},
)
Button Loading
ElevatedButton(
onPressed: isLoading ? null : login,
child: isLoading
? const PulseLoader(size: 20)
: const Text("Login"),
)
Dialog
showDialog(
context: context,
builder: (_) => const Dialog(
child: Padding(
padding: EdgeInsets.all(24),
child: SpinnerLoader(),
),
),
);
Full Screen Loading
Scaffold(
body: const Center(
child: SmoothLoader(
type: LoaderType.orbit,
size: 60,
),
),
)
⚡ Performance
Designed for production applications.
- RepaintBoundary optimization
- Smooth animations
- Efficient AnimationControllers
- Minimal widget rebuilds
- Zero runtime dependencies
- Optimized for 60 FPS and high refresh-rate displays
♿ Accessibility
- Semantic friendly
- Screen reader compatible
- Respects Flutter accessibility features
- Theme aware
- RTL compatible
📚 API Reference
Main Widgets
SmoothLoader()
Dedicated Loaders
PulseLoader()
DotsLoader()
WaveLoader()
OrbitLoader()
SpinnerLoader()
RippleLoader()
RingLoader()
CubeLoader()
BarLoader()
BounceLoader()
Supporting Classes
LoaderTheme
LoaderThemeData
LoaderType
🖼 Gallery
🛣 Roadmap
Version 1.1
- Skeleton Loader
- Shimmer Loader
- Equalizer Loader
- Typing Loader
- Infinity Loader
🤝 Contributing
Contributions are welcome.
If you'd like to improve the package:
- Fork the repository
- Create a new branch
- Commit your changes
- Submit a Pull Request
Bug reports and feature requests are also welcome through GitHub Issues.
📄 License
This project is licensed under the MIT License.
See the LICENSE file for details.
❤️ Support
If you find this package useful:
⭐ Star the GitHub repository
👍 Like the package on pub.dev
🐛 Report bugs
💡 Suggest new loader ideas
Happy Flutter development! 🚀
🔗 Connect with Me
Company: https://andronexa.vercel.app All Links: https://linktr.ee/haris.dev Portfolio: https://haris-devs.vercel.app
Facebook: https://web.facebook.com/profile.php?id=61590527793597 Github: https://github.com/haris-devs Thread: https://www.threads.com/@haris.devs X: https://x.com/haris_devs
Insta: https://www.instagram.com/haris.devs Tiktok: https://www.tiktok.com/@harisdev7 Linkedin: https://www.linkedin.com/in/haris-devs Youtube: http://www.youtube.com/@haris-devs
Libraries
- smooth_loader
- A beautiful and configurable collection of Flutter loading animations.