InkRipple class Null safety

A visual reaction on a piece of Material to user input.

A circular ink feature whose origin starts at the input touch point and whose radius expands from 60% of the final radius. The splash origin animates to the center of its referenceBox.

This object is rarely created directly. Instead of creating an ink ripple, consider using an InkResponse or InkWell widget, which uses gestures (such as tap and long-press) to trigger ink splashes. This class is used when the Theme's ThemeData.splashFactory is InkRipple.splashFactory.

See also:

  • InkSplash, which is an ink splash feature that expands less aggressively than the ripple.
  • InkResponse, which uses gestures to trigger ink highlights and ink splashes in the parent Material.
  • InkWell, which is a rectangular InkResponse (the most common type of ink response).
  • Material, which is the widget on which the ink splash is painted.
  • InkHighlight, which is an ink feature that emphasizes a part of a Material.


InkRipple({required MaterialInkController controller, required RenderBox referenceBox, required Offset position, required Color color, required TextDirection textDirection, bool containedInkWell = false, RectCallback? rectCallback, BorderRadius? borderRadius, ShapeBorder? customBorder, double? radius, VoidCallback? onRemoved})
Begin a ripple, centered at position relative to referenceBox.


color Color
The ink's color.
read / write, inherited
controller MaterialInkController
The MaterialInkController associated with this InkFeature.
read-only, inherited
hashCode int
The hash code for this object.
read-only, inherited
onRemoved VoidCallback?
Called when the ink feature is no longer visible on the material.
final, inherited
referenceBox RenderBox
The render box whose visual position defines the frame of reference for this ink feature.
final, inherited
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited


cancel() → void
Called when the user input that triggered this feature's appearance was canceled.
confirm() → void
Called when the user input that triggered this feature's appearance was confirmed.
dispose() → void
Free up the resources associated with this ink feature.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed.
paintFeature(Canvas canvas, Matrix4 transform) → void
Override this method to paint the ink feature.
paintInkCircle({required Canvas canvas, required Matrix4 transform, required Paint paint, required Offset center, required double radius, TextDirection? textDirection, ShapeBorder? customBorder, BorderRadius borderRadius =, RectCallback? clipCallback}) → void
Draws an ink splash or ink ripple on the passed in Canvas.
@protected, inherited
toString() String
A string representation of this object.


operator ==(Object other) bool
The equality operator.


splashFactory → const InteractiveInkFeatureFactory
Used to specify this type of ink splash for an InkWell, InkResponse, material Theme, or ButtonStyle.