Mobile Touch

dylantarre/animation-principles/skills/01-by-domain/mobile-touch

by dylantarre83597134ba8fNo license99 starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated 9 months ago

Use when designing iOS/Android gestures, haptic feedback, touch interactions, or native mobile animations.

Instructions onlyDesign & Creative
AI-generated overview

Applies Disney's 12 animation principles to mobile gestures, haptics, and native iOS/Android motion design.

What it does
This skill provides guidance for designing touch interactions and native mobile animations by mapping Disney's 12 animation principles to concrete mobile implementations. It covers rubber-banding, anticipation, staging, momentum, spring easing, arcs, haptics, timing budgets, and safe-area handling. It also includes platform-specific patterns for iOS spring animations and haptics and Android Material spring animations, plus a haptic feedback mapping table.
When to use it
Use it when designing or reviewing iOS or Android gestures, haptic feedback, touch interactions, or native mobile animations. It is suited to decisions about motion timing, easing, gesture-driven versus preset transitions, and haptic pairing.
Requirements
No scripts or tools are required; it is instructions only. The examples reference iOS UIKit and Android SpringAnimation APIs, but no runtime, package, or credential is needed to read the guidance.

Mobile Touch Animation

Apply Disney's 12 animation principles to mobile gestures, haptics, and native app motion.

Quick Reference

PrincipleMobile Implementation
Squash & StretchRubber-banding, bounce on scroll limits
AnticipationPeek before reveal, long-press preview
StagingSheet presentations, focus states
Straight Ahead / Pose to PoseGesture-driven vs preset transitions
Follow Through / OverlappingMomentum scrolling, trailing elements
Slow In / Slow OutiOS spring animations, Material easing
ArcSwipe-to-dismiss curves, card throws
Secondary ActionHaptic pulse with visual feedback
TimingTouch response <100ms, transitions 250-350ms
ExaggerationBounce amplitude, haptic intensity
Solid DrawingRespect safe areas, consistent anchors
Appeal60fps minimum, gesture continuity

Principle Applications

Squash & Stretch: Implement rubber-band effect at scroll boundaries. Pull-to-refresh should stretch content naturally. Buttons compress on touch.

Anticipation: Long-press shows preview before full action. Drag threshold provides visual hint before item lifts. Swipe shows edge of destination content.

Staging: Use sheet presentations to maintain context. Dim and scale background during modal focus. Hero transitions connect views meaningfully.

Straight Ahead vs Pose to Pose: Gesture-following animations (drag, pinch) are straight ahead—driven by touch input. System transitions (push, present) are pose to pose—predefined keyframes.

Follow Through & Overlapping: Content continues moving after finger lifts (momentum). Navigation bar elements animate slightly after main content. Lists items settle with stagger.

Slow In / Slow Out: iOS uses spring physics—configure mass, stiffness, damping. Android Material uses standard easing: FastOutSlowIn. Never use linear for user-initiated motion.

Arc: Thrown cards follow parabolic arcs. Swipe-to-dismiss curves based on velocity vector. FAB expand/collapse follows natural arc path.

Secondary Action: Pair haptic feedback with visual response. Button ripple accompanies press. Success checkmark triggers light haptic.

Timing: Touch acknowledgment: <100ms. Quick actions: 150-250ms. View transitions: 250-350ms. Complex animations: 350-500ms. Haptic should sync precisely with visual.

Exaggeration: Pull-to-refresh stretches beyond natural—makes feedback clear. Error shake is pronounced. Success animations celebrate appropriately.

Solid Drawing: Respect device safe areas during animation. Maintain consistent transform origins. Account for notch/dynamic island in motion paths.

Appeal: Minimum 60fps, target 120fps on ProMotion displays. Gesture-driven animation must feel connected to finger. Interruptible animations essential.

Platform Patterns

iOS

swift
// Spring animation with follow-throughUIView.animate(withDuration: 0.5,               delay: 0,               usingSpringWithDamping: 0.7,               initialSpringVelocity: 0.5,               options: .curveEaseOut)
// Haptic pairinglet feedback = UIImpactFeedbackGenerator(style: .medium)feedback.impactOccurred()

Android

kotlin
// Material spring animationSpringAnimation(view, DynamicAnimation.TRANSLATION_Y)    .setSpring(SpringForce()        .setStiffness(SpringForce.STIFFNESS_MEDIUM)        .setDampingRatio(SpringForce.DAMPING_RATIO_MEDIUM_BOUNCY))    .start()

Haptic Guidelines

ActioniOSAndroid
Selection.selectionEFFECT_TICK
Success.successEFFECT_CLICK
Warning.warningEFFECT_DOUBLE_CLICK
Error.errorEFFECT_HEAVY_CLICK

Haptics are secondary action—always pair with visual confirmation.

Source and attribution

Source:dylantarre/animation-principlesinskills/01-by-domain/mobile-touchat commit8359713

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal