Search packages, repositories and app categories

bounce cover
Package detailsv1.0.2

bounce

A widget that animates its children with a smooth scale and rotate animation, depending on the location of the touch.

AndroidiOSWebmacOSWindowsLinux
30-day downloads
1.1K
Likes
52
Pub points
150

Install package

flutter pub add bounce

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

The Bounce package provides a Flutter widget that adds a smooth scale and rotate animation to its children when touched. It enhances user interaction by responding dynamically to touch input, creating a playful and engaging feedback effect. Ideal for buttons, cards, or any interactive element, it works across all major platforms including Android, iOS, Web, macOS, Windows, and Linux. The animation is fluid and customizable, with minimal setup required. It's particularly effective in improving the tactile feel of digital interfaces.

Use cases

  • Interactive buttons
  • Touch feedback for cards
  • Gamified UI elements
  • Mobile app micro-interactions
  • Web interface enhancements

Key features

  • Smooth scale and rotate animation
  • Touch-based trigger
  • Cross-platform support
  • Minimal configuration
  • Responsive to touch location

Suitable for

  • App developers seeking interactive feedback
  • Designers enhancing UX with motion
  • Projects requiring lightweight animations
  • Flutter beginners exploring gestures
  • Apps with touch-heavy interfaces

Considerations

  • May not suit minimalist design styles
  • Performance impact on complex layouts
  • Limited customization beyond scale and rotation
  • Best used sparingly to avoid distraction
  • Requires gesture detection handling

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

Bounce

pub package

This package adds a new Bounce widget that applies a tap-triggered bounce animation to Flutter widgets. Depending on the touch location, a tilt effect is also added on the child.

"Demo of the Bounce plugin"

To see examples of the following effect on a device or simulator:

cd example/
flutter run --release

How to use

First, add the dependency to your pubspec.yaml file:

dependencies:
  bounce: ^<latest-version>

Then, wrap your target widget as child of a Bounce widget. You may optionally specify additional behavior, such as disabling the tilt effect by adding tilt: false to the constructor. The simplest usage of this widget is the following :


import 'package:bounce/bounce.dart';

...

return Bounce(
        onTap: () {
          // ...
        },
        child: ...)

Custom behavior

Tilt effect

You may specify the maximum angle applied by the tilt effect using the tiltAngle. This angle will be reached when the child widget is tapped at its edges. No tilt is applied when the child is tapped exactly at its center.

Scale effect

You may specify the maximum factor applied by the scale effect using the scaleFactor parameter.

Tap delay

To fine tune your user experience, you may want the various effects to animate back for a few milliseconds after the tap has occured. By default, this delay is set to 150 milliseconds.

Filter quality

The Bounce widget implementation wraps the child with a matrix-based Transform widget. On most platforms, it is a good practice to have it set to FilterQuality.high, which is the default value. You may specify other FilterQuality values directly from the widget's constructor :

  Bounce(
    filterQuality: FilterQuality.medium,
    child: ...
  )

Due to limitations on Safari iOS and if your app targets it, you are responsible for enforcing filterQuality to null in this specific browser.

Combination with Motion widgets

Bounce widgets look gorgeous when combined with a Motion widget, like so :

  Motion(
    child: Bounce(
      child: ...
    )
  )

Here is an interaction example :

"Bounce + Motion example"

Comparing different tilt angles

Issues

If you are having any problem with the Bounce package, you can file an issue on the package repo's issue tracker.

Please make sure that your concern hasn't already been addressed in the 'Closed' section.

Credits

This package was developed with ♥ by @mrcendre.

Categories

Source repository

Projects using this package

No data available yet.