flutter_ripple_painter 0.0.1 copy "flutter_ripple_painter: ^0.0.1" to clipboard
flutter_ripple_painter: ^0.0.1 copied to clipboard

A highly customizable Flutter widget for creating animated ripple effects.

Flutter Ripple Painter #

A highly customizable Flutter widget for creating animated ripple effects using custom painting. Perfect for creating engaging visual effects in your Flutter applications, from loading indicators to interactive backgrounds and more.

Features #

  • 🎨 Fully customizable ripple appearance
  • 🎯 Custom positioning with alignment control
  • 📐 Flexible sizing options
  • 🔄 Configurable animation duration
  • 🌊 Adjustable number of waves
  • ✂️ Optional bounds clipping
  • 🎭 Support for overlay widgets
  • ✨ Smooth, endless animation
  • 🎮 Perfect for various use cases (backgrounds, loading indicators, buttons, etc.)

Usage #

Basic Usage #

import 'package:flutter_ripple_painter/flutter_ripple_painter.dart';

RipplePainter(
  waveColor: Colors.blue,
  child: Text('Center Content'),
)

Advanced Usage #

RipplePainter(
  numberOfWaves: 4,
  animationDuration: const Duration(seconds: 6),
  waveColor: Colors.purple,
  strokeWidth: 3.0,
  maxRadiusPercent: 0.8,
  baseOpacity: 0.3,
  alignment: Alignment.topCenter,
  clipToBounds: false,
  size: Size(200, 200),
  child: Icon(Icons.favorite),
)

Examples #

Loading Indicator #

RipplePainter(
  size: Size(100, 100),
  numberOfWaves: 2,
  waveColor: Colors.blue,
  animationDuration: Duration(seconds: 4),
)

Interactive Button Background #

Material(
  child: InkWell(
    onTap: () {},
    child: RipplePainter(
      size: Size(200, 50),
      waveColor: Colors.purple.withOpacity(0.5),
      child: Center(child: Text('Tap Me')),
    ),
  ),
)

Custom Position Effect #

Stack(
  children: [
    RipplePainter(
      alignment: Alignment.topRight,
      clipToBounds: false,
      waveColor: Colors.red,
    ),
    YourContent(),
  ],
)

Parameters #

Parameter Type Default Description
numberOfWaves int 3 Number of concurrent ripple waves
animationDuration Duration 8 seconds Duration of one complete ripple cycle
waveColor Color Colors.white Color of the ripple waves
strokeWidth double 2.0 Stroke width of the ripple circles
maxRadiusPercent double 0.9 Maximum radius relative to container width
baseOpacity double 0.2 Base opacity of the waves
alignment Alignment? center Position of the ripple center
clipToBounds bool true Whether to clip ripples to container bounds
size Size? null Fixed size for the ripple container
child Widget? null Optional overlay widget

Custom Painter Details #

The package uses CustomPainter to create smooth, efficient ripple animations. The painting is optimized for performance and memory usage, making it suitable for various use cases from small indicators to full-screen effects.

Credits #

Originally inspired by a splash screen animation, Generated README via Claude (Anthropic).

0
likes
135
points
26
downloads

Publisher

unverified uploader

Weekly Downloads

A highly customizable Flutter widget for creating animated ripple effects.

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on flutter_ripple_painter