smooth_loader 3.0.0 copy "smooth_loader: ^3.0.0" to clipboard
smooth_loader: ^3.0.0 copied to clipboard

A modern, lightweight, and highly customizable collection of smooth Flutter loading animations.

smooth_loader Banner

A modern, lightweight, and highly customizable collection of beautiful loading animations for Flutter.

pub version likes pub points popularity


✨ 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 #

smooth_loader Preview

Example:

Pulse Loader
Dots Loader
Wave Loader
Orbit Loader
Spinner Loader

✨ Features #

  • 10 beautiful built-in loading animations
  • Unified SmoothLoader widget
  • 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 #

smooth_loader 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:

  1. Fork the repository
  2. Create a new branch
  3. Commit your changes
  4. 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

0
likes
125
points
115
downloads

Documentation

API reference

Publisher

verified publisherandronexa.online

Weekly Downloads

A modern, lightweight, and highly customizable collection of smooth Flutter loading animations.

Topics

#loading #loader #animation #progress #ui

License

MIT (license)

Dependencies

flutter

More

Packages that depend on smooth_loader