
Gesture Responses
- 352 installs
- 68 repo stars
- Updated December 30, 2025
- dylantarre/animation-principles
gesture-responses is a Claude Code skill that designs touch and pointer gesture feedback animations for developers who need drag, swipe, long-press, and tap interactions to feel immediate, physical, and responsive.
About
gesture-responses is a design skill from dylantarre/animation-principles that applies Disney's 12 principles to direct manipulation UI. It specifies scale ranges for press states (0.95–0.97 squash), ripple expansion from tap points, immediate anticipation on press, and pose-to-pose transitions between rest, pressed, and released states. Developers use gesture-responses when building mobile apps, tablet interfaces, or trackpad-driven web UIs where drag feedback, swipe responses, long-press cues, and tap ripples must confirm intent without adding perceptible delay. The skill emphasizes physics-respecting motion that originates from the interaction point and stays responsive across touch and pointer input modalities.
- Press and release easing
- Drag follow and snap-back
- Swipe threshold feedback
- Long-press affordance cues
- Cross-input pointer parity
Gesture Responses by the numbers
- 352 all-time installs (skills.sh)
- Ranked #728 of 1,880 Design & UI/UX skills by installs in the Skillselion catalog
- Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/dylantarre/animation-principles --skill gesture-responsesAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 352 |
|---|---|
| repo stars | ★ 68 |
| Last updated | December 30, 2025 |
| Repository | dylantarre/animation-principles ↗ |
How do you animate touch and drag gesture feedback?
Design touch and pointer gesture feedback—drag, swipe, long-press, pinch—with motion that confirms intent, respects physics, and stays responsive on phones, tablets, and trackpads.
Who is it for?
Frontend developers implementing touch, swipe, drag, and pointer feedback on phones, tablets, and responsive web apps.
Skip if: Teams building batch data pipelines or server APIs with no direct-manipulation UI surfaces.
When should I use this skill?
A developer asks for tap ripple effects, button press squash animation, swipe feedback, or drag-and-drop motion on touch or pointer devices.
What you get
Gesture animation specs with press, release, ripple, and drag states tied to Disney motion principles.
- Gesture feedback animation specs
- Press, drag, and ripple motion definitions
By the numbers
- Recommends press squash scale of 0.95–0.97 before spring-back release
Files
Gesture Response Animations
Apply Disney's 12 principles to direct user interactions.
Principle Application
Squash & Stretch: Elements compress on press (scale 0.95-0.97), spring back on release.
Anticipation: The press IS the anticipation. Response should be immediate - no delay.
Staging: Response originates from interaction point. Ripples expand from tap location.
Straight Ahead vs Pose-to-Pose: Define rest, pressed, and released poses. Transitions flow between them.
Follow Through & Overlapping: Release animation overshoots rest position. Scale to 1.02, settle to 1.0.
Slow In/Slow Out: Press: instant. Release: ease-out with overshoot cubic-bezier(0.34, 1.56, 0.64, 1).
Arcs: Drag elements follow finger with slight lag on curves. Snapping follows arc to destination.
Secondary Action: Press triggers ripple + scale + shadow change simultaneously.
Timing:
- Press response: 0-50ms (must feel instant)
- Release recovery: 150-300ms (can be playful)
- Ripple expansion: 400-600ms (decorative, can be slower)
Exaggeration: Subtle for press (0.97), playful for release (overshoot 1.03).
Solid Drawing: Pressed state should feel "pushed in" - smaller scale, reduced shadow, shifted color.
Appeal: Gestures should feel physically satisfying. Like pressing a real button.
Timing Recommendations
| Gesture | Press Duration | Release Duration | Easing |
|---|---|---|---|
| Tap/Click | 50ms | 200ms | ease-out + overshoot |
| Long Press | 50ms | 300ms | ease-out |
| Drag Start | 100ms | - | ease-out |
| Drag Release | - | 300ms | spring |
| Swipe | - | 200-400ms | ease-out |
| Pinch | real-time | 300ms | spring |
Implementation Patterns
/* Button press */
.button {
transition: transform 50ms ease-out;
}
.button:active {
transform: scale(0.97);
}
/* Release with overshoot */
.button:not(:active) {
transition: transform 250ms cubic-bezier(0.34, 1.56, 0.64, 1);
}
/* Material ripple */
.ripple {
animation: ripple 600ms ease-out forwards;
}
@keyframes ripple {
from {
transform: scale(0);
opacity: 0.5;
}
to {
transform: scale(4);
opacity: 0;
}
}Drag Feedback Pattern
// Smooth drag with slight lag
element.style.transform = `translate(${x}px, ${y}px)`;
element.style.transition = 'transform 50ms ease-out';
// Snap back with spring
element.style.transition = 'transform 300ms cubic-bezier(0.34, 1.56, 0.64, 1)';
element.style.transform = 'translate(0, 0)';Critical Rule
Gesture responses must be under 100ms to feel connected to the action. Anything slower breaks the direct manipulation illusion. Test on actual touch devices.
Related skills
How it compares
Choose gesture-responses over generic animation skills when the task is touch or pointer interaction feedback rather than cinematic or game reward sequences.
FAQ
What press scale does gesture-responses recommend?
gesture-responses recommends squash-and-stretch on press with scale between 0.95 and 0.97, followed by a spring-back on release. Anticipation is immediate on press with no added delay before the response begins.
Which gestures does gesture-responses cover?
gesture-responses covers button presses, drag feedback, swipe responses, tap ripples, long-press, pinch, and other direct-manipulation animations. Motion should originate from the interaction point on phones, tablets, and trackpads.