Animate buttons using gesture controls like whileTap and onDrag from Framer Motion

Kyle Gill
InstructorKyle Gill
Share this video with your friends

Social Share Links

Send Tweet
Published 5 years ago
Updated 4 years ago

Learn how to create common button animations by applying gesture recognizers like whileTap, whileHover, and onDrag. Framer Motion offers flexibility in how animations are pieced together but offers sensible defaults for the transitions it applies without you having to mess with transition easing methods.

These props extend React's event listeners to apply powerful gesture detection for animations on components and can be strung together or used for more simple use cases.

Check out the official docs for more information on them.

Instructor: [00:00] In a motion component like with this button wrapped by a motion div, framer motion provides gesture recognizing event listeners to detect tapping, hovering, dragging and more. With this button, you can add a whileHover prop with the transition object to define what would be animated when hovered, like scaling the button up 1.15 times its normal size.

[00:21] The similarly functioning whileTap prop can provide shrinking the button when it is pressed. Adding a drag prop can make a component draggable within X bounce, within Y bounce or within both X and Y bounce. The dragConstraints prop can set a limit for draggable bounce and the onDrag prop returns data about the drag event.

~ 19 minutes ago

Member comments are a way for members to communicate, interact, and ask questions about a lesson.

The instructor or someone from the community might respond to your question Here are a few basic guidelines to commenting on

Be on-Topic

Comments are for discussing a lesson. If you're having a general issue with the website functionality, please contact us at

Avoid meta-discussion

  • This was great!
  • This was horrible!
  • I didn't like this because it didn't match my skill level.
  • +1 It will likely be deleted as spam.

Code Problems?

Should be accompanied by code! Codesandbox or Stackblitz provide a way to share code and discuss it in context

Details and Context

Vague question? Vague answer. Any details and context you can provide will lure more interesting answers!

Markdown supported.
Become a member to join the discussionEnroll Today