loader_pro_kit 1.0.1 copy "loader_pro_kit: ^1.0.1" to clipboard
loader_pro_kit: ^1.0.1 copied to clipboard

A comprehensive Flutter package with 11 beautiful, fully customizable loading animations. Perfect for modern app UIs with smooth 60 FPS animations.

Loader Pro Kit ๐Ÿš€ #

A comprehensive Flutter package with 11 beautiful, fully customizable loading animations. Perfect for any app that needs modern, smooth, and professional loading indicators.

๐Ÿ“ฆ What's Included #

Circular Loaders #

  • CircleLoader - Classic rotating circle spinner
  • DotLoader - Animated scaling dots
  • PulseLoader - Expanding circular pulses
  • WaveLoader - Wave motion animation
  • SpinningLoader - Smooth rotating arc
  • BounceLoader - Bouncing ball animation

Advanced Loaders #

  • LogoLoader - Display your brand logo while loading
  • ImageLoader - Circular image with animated border
  • LinearLoader - Progress bar with percentage display
  • ShimmerLoader - Skeleton/placeholder shimmer effect
  • SkeletonLoader - Complex content placeholder loading

๐ŸŽฅ Demo Videos #

Youtube Demo Playlist #

https://www.youtube.com/playlist?list=PLxxxxx

Individual Loader Demos #

CircleLoader

A smooth rotating circle with customizable border and colors.
Perfect for simple loading states.

DotLoader

Animated scaling dots in a row.
Great for showing activity/progress.

PulseLoader

Expanding circular rings creating a pulse effect.
Ideal for smooth loading indicators.

WaveLoader

Wave motion with vertical movement.
Perfect for elegant loading states.

SpinningLoader

Rotating arc spinner with custom arc length.
Classic and versatile design.

BounceLoader

Bouncing balls with smooth easing animation.
Fun and engaging loading indicator.

LogoLoader

Your brand logo surrounded by an animated spinner ring.
Perfect for branded app experiences.

ImageLoader

Circular image with animated gradient border.
Ideal for profile picture or avatar loading.

LinearLoader

Horizontal progress bar with optional percentage text.
Great for download or upload indicators.

ShimmerLoader

Shimmer effect for content placeholders.
Perfect for skeleton loading states.

SkeletonLoader

Complex multi-item skeleton loading with shimmer.
Ideal for card or list item placeholders.

โœจ Features #

โœ… 11 Unique Loader Designs - Various animation styles
โœ… Fully Customizable - Colors, sizes, durations, animation curves
โœ… Production Ready - Smooth, performant animations
โœ… Zero Dependencies - Uses only Flutter/Dart
โœ… Easy to Use - Simple API, intuitive parameters
โœ… Well Documented - Complete customization guide included
โœ… Responsive - Works on all screen sizes
โœ… Tested - Comprehensive widget tests included

๐Ÿ“ฅ Installation #

Add this line to your pubspec.yaml:

dependencies:
  loader_pro_kit: ^0.0.1

Then run:

flutter pub get

๐Ÿš€ Quick Start #

Basic Usage #

import 'package:loader_pro_kit/loader_pro_kit.dart';
import 'package:flutter/material.dart';

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: CircleLoader(
            color: Colors.blue,
            size: 60,
          ),
        ),
      ),
    );
  }
}

All 11 Loaders #

// 1. Circle Loader - Classic rotating spinner
CircleLoader(
  color: Colors.blue,
  size: 60,
  duration: Duration(seconds: 2),
)

// 2. Dot Loader - Animated scaling dots
DotLoader(
  color: Colors.green,
  size: 15,
  dotCount: 4,
)

// 3. Pulse Loader - Expanding rings
PulseLoader(
  color: Colors.orange,
  size: 60,
  pulseCount: 3,
)

// 4. Wave Loader - Wave motion
WaveLoader(
  color: Colors.pink,
  size: 40,
  waveCount: 3,
)

// 5. Spinning Loader - Smooth arc
SpinningLoader(
  color: Colors.purple,
  size: 60,
  arcLength: 3.14,
)

// 6. Bounce Loader - Bouncing balls
BounceLoader(
  color: Colors.red,
  size: 15,
  dotCount: 3,
  bounceHeight: 1.5,
)

// 7. Logo Loader - Branded loading
LogoLoader(
  logo: Icon(Icons.flutter_dash, size: 40),
  backgroundColor: Colors.blue,
  size: 80,
)

// 8. Image Loader - Image with border
ImageLoader(
  image: NetworkImage('https://example.com/image.jpg'),
  loaderColor: Colors.teal,
  size: 80,
)

// 9. Linear Loader - Progress bar
LinearLoader(
  loaderColor: Colors.blue,
  height: 8,
  showPercentage: true,
)

// 10. Shimmer Loader - Skeleton effect
ShimmerLoader(
  height: 20,
  width: double.infinity,
)

// 11. Skeleton Loader - Complex placeholders
SkeletonLoader(
  items: [
    SkeletonCircle(radius: 30),
    SkeletonLine(height: 16),
    SkeletonLine(height: 16),
  ],
)

๐ŸŽจ Advanced Customization #

CircleLoader #

CircleLoader(
  color: Colors.blue,              // Spinner color
  size: 50,                        // Loader size
  duration: Duration(seconds: 2),  // Animation duration
  borderWidth: 4,                  // Border thickness
  animationCurve: Curves.linear,   // Animation curve
  backgroundColor: Colors.grey,    // Background ring color
)

DotLoader #

DotLoader(
  color: Colors.blue,
  size: 15,
  dotCount: 4,                     // 1-10 dots
  spacing: 5,                      // Space between dots
  animationCurve: Curves.easeInOut,
  minScale: 0.4,                   // Scale range
  maxScale: 1.0,
)

PulseLoader #

PulseLoader(
  color: Colors.blue,
  size: 50,
  pulseCount: 3,                   // Number of rings
  animationCurve: Curves.easeOut,
  maxRadius: 1.0,                  // Max radius
  minOpacity: 0.0,                 // Min opacity
)

WaveLoader #

WaveLoader(
  color: Colors.blue,
  size: 50,
  waveCount: 3,                    // Wave elements
  waveHeight: 0.5,                 // Wave amplitude
  animationCurve: Curves.linear,
  borderRadius: 0.5,               // Border radius
)

SpinningLoader #

SpinningLoader(
  color: Colors.blue,
  size: 50,
  duration: Duration(seconds: 2),
  borderWidth: 3,
  animationCurve: Curves.linear,
  backgroundColor: Colors.grey,
  arcLength: 3.14,                 // Arc length (0-2ฯ€)
)

BounceLoader #

BounceLoader(
  color: Colors.blue,
  size: 15,
  dotCount: 3,                     // 1-5+ dots
  animationCurve: Curves.easeInOut,
  bounceHeight: 1.5,               // Bounce intensity
  opacityAnimation: true,          // Enable opacity
)

LogoLoader #

LogoLoader(
  logo: Icon(Icons.flutter_dash),
  backgroundColor: Colors.blue,
  size: 80,
  arcThickness: 3,                 // Arc width
  animationCurve: Curves.linear,
  ringColor: Colors.blue,
  logoPadding: 12,                 // Padding around logo
)

ImageLoader #

ImageLoader(
  image: NetworkImage('url'),
  loaderColor: Colors.blue,
  size: 80,
  duration: Duration(milliseconds: 1200),
  borderWidth: 2,
  animationCurve: Curves.linear,
  gradientColors: [Colors.blue, Colors.cyan],
)

LinearLoader #

LinearLoader(
  backgroundColor: Color(0xFFE0E0E0),
  loaderColor: Colors.blue,
  height: 6,
  borderRadius: 3,
  duration: Duration(seconds: 2),
  showPercentage: true,
  animationCurve: Curves.linear,
  gradientColors: [Colors.blue, Colors.purple],
  width: double.infinity,
  textStyle: TextStyle(color: Colors.blue),
)

ShimmerLoader #

ShimmerLoader(
  width: double.infinity,
  height: 20,
  baseColor: Color(0xFFE0E0E0),
  highlightColor: Color(0xFFF5F5F5),
  duration: Duration(milliseconds: 1500),
  borderRadius: BorderRadius.all(Radius.circular(4)),
  shimmerWidth: 0.3,               // Shimmer width
  animationCurve: Curves.linear,
)

SkeletonLoader #

SkeletonLoader(
  items: [
    SkeletonLine(
      width: double.infinity,
      height: 16,
      margin: EdgeInsets.only(bottom: 12),
      borderRadius: BorderRadius.all(Radius.circular(4)),
    ),
    SkeletonCircle(
      radius: 40,
      margin: EdgeInsets.all(8),
    ),
  ],
  duration: Duration(milliseconds: 1500),
  baseColor: Color(0xFFE0E0E0),
  highlightColor: Color(0xFFF5F5F5),
  animationCurve: Curves.linear,
  shimmerWidth: 0.3,
)

๐ŸŽฏ Common Use Cases #

Loading Screen #

Center(
  child: CircleLoader(
    color: Colors.blue,
    size: 80,
  ),
)

Data Fetching Indicator #

Row(
  children: [
    DotLoader(
      color: Colors.blue,
      dotCount: 4,
    ),
    SizedBox(width: 16),
    Text('Loading data...'),
  ],
)

Download Progress #

LinearLoader(
  loaderColor: Colors.green,
  showPercentage: true,
  height: 8,
)

Content Placeholder #

SkeletonLoader(
  items: [
    SkeletonLine(height: 20, margin: EdgeInsets.only(bottom: 16)),
    SkeletonLine(height: 16, margin: EdgeInsets.only(bottom: 12)),
    SkeletonLine(height: 16, margin: EdgeInsets.only(bottom: 12)),
    SkeletonLine(width: 200, height: 16),
  ],
)

Branded Loading State #

LogoLoader(
  logo: Image.asset('assets/app_logo.png', width: 50),
  backgroundColor: Color(0xFF6200EE),
  size: 120,
  arcThickness: 4,
)

๐ŸŽฌ Animation Curves #

All loaders support custom animation curves:

Curves.linear        // Constant speed
Curves.easeIn        // Accelerating
Curves.easeOut       // Decelerating
Curves.easeInOut     // Accelerate then decelerate
Curves.bounceIn      // Bouncing effect
Curves.elasticInOut  // Elastic effect
Curves.fastOutSlowIn // Fast then slow

๐Ÿงช Testing #

Run the included tests:

flutter test

Tests verify:

  • โœ… All 11 loaders render correctly
  • โœ… Custom properties are applied
  • โœ… Animation controllers work properly
  • โœ… Widgets dispose correctly
  • โœ… No memory leaks

๐Ÿ“ฑ Running the Example #

cd example
flutter pub get
flutter run

The example app displays all 11 loaders with interactive demonstrations.

๐ŸŽจ Theme Examples #

Pastel Theme #

CircleLoader(
  color: Color(0xFFF8B5D4),      // Pastel pink
  backgroundColor: Color(0xFFF0E5FF),
  size: 60,
)

Dark Mode #

WaveLoader(
  color: Color(0xFF6200EE),
  size: 50,
)

High Contrast #

LinearLoader(
  loaderColor: Colors.black,
  backgroundColor: Colors.white,
  height: 10,
)

Material Design 3 #

SpinningLoader(
  color: Color(0xFF6200EE),
  size: 60,
  borderWidth: 4,
)

๐Ÿ“ˆ Performance #

  • โœ… Smooth 60 FPS animations
  • โœ… Minimal memory footprint
  • โœ… Efficient paint operations
  • โœ… Proper disposal of controllers
  • โœ… No frame drops even with multiple loaders

๐Ÿ› Troubleshooting #

Loader not animating? #

  • Ensure the widget is inside a Scaffold or similar container
  • Check that duration is not set to Duration.zero

Colors not showing? #

  • Verify the color is not transparent (Colors.transparent)
  • Check the parent container's background

Performance issues? #

  • Reduce the number of simultaneous loaders
  • Increase duration for smoother animations

๐Ÿ“ Documentation #

See CUSTOMIZATION_GUIDE.md for complete API documentation with all parameters and options.

๐Ÿ“„ License #

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

๐Ÿค Contributing #

Contributions are welcome! Please feel free to submit a Pull Request.

๐ŸŒŸ Star Us #

If you find this package useful, please give it a star on GitHub! โญ


Made with โค๏ธ by Pratyush Mishra

Happy Loading! ๐Ÿš€

2
likes
0
points
242
downloads

Publisher

verified publisherpratyushmishra.online

Weekly Downloads

A comprehensive Flutter package with 11 beautiful, fully customizable loading animations. Perfect for modern app UIs with smooth 60 FPS animations.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter

More

Packages that depend on loader_pro_kit