Animation Guidelines Reference
Animation principles and timing psychology - learn to decide, not copy.
No fixed durations to memorize - understand what affects timing.
1. Duration Principles
What Affects Timing
Duration Ranges by Purpose
| Purpose |
Range |
Why |
| Instant feedback |
50-100ms |
Below perception threshold |
| Micro-interactions |
100-200ms |
Quick but noticeable |
| Standard transitions |
200-300ms |
Comfortable pace |
| Complex animations |
300-500ms |
Time to follow |
| Page transitions |
400-600ms |
Smooth handoff |
| Wow/Premium Effects |
800ms+ |
Dramatic, organic spring-based, layered |
Choosing Duration
Ask yourself:
- How far is the element moving?
- How important is it to notice this change?
- Is the user waiting, or is this background?
2. Easing Principles
What Easing Does
When to Use Each
| Easing |
Best For |
Feels Like |
| Ease-out |
Elements entering |
Arriving, settling |
| Ease-in |
Elements leaving |
Departing, exiting |
| Ease-in-out |
Emphasis, loops |
Deliberate, smooth |
| Linear |
Continuous motion |
Mechanical, constant |
| Bounce/Elastic |
Playful UI |
Fun, energetic |
The Pattern
3. Micro-Interaction Principles
What Makes Good Micro-Interactions
Button States
Principles
- Respond immediately (under 100ms perception)
- Match the action (press =
scale(0.95), hover = translateY(-4px) + glow)
- Be bold but smooth (Usta işi hissettir)
- Be consistent (same actions = same feedback)
4. Loading States Principles
Types by Context
| Situation |
Approach |
| Quick load (<1s) |
No indicator needed |
| Medium (1-3s) |
Spinner or simple animation |
| Long (3s+) |
Progress bar or skeleton |
| Unknown duration |
Indeterminate indicator |
Skeleton Screens
Progress Indicators
5. Page Transitions Principles
Transition Strategy
Common Patterns
| Pattern |
When to Use |
| Fade |
Safe default, works everywhere |
| Slide |
Sequential navigation (prev/next) |
| Scale |
Opening/closing modals |
| Shared element |
Maintaining visual continuity |
Direction Matching
6. Scroll Animation Principles
Progressive Reveal
Trigger Points
| When to Trigger |
Effect |
| Just entering viewport |
Standard reveal |
| Centered in viewport |
For emphasis |
| Partially visible |
Earlier reveal |
| Fully visible |
Late trigger |
Animation Properties
- Fade in (opacity)
- Slide up (transform)
- Scale (transform)
- Combination of above
Performance
- Use Intersection Observer
- Animate only transform/opacity
- Reduce on mobile if needed
7. Hover Effects Principles
Matching Effect to Action
| Element |
Effect |
Intent |
| Clickable card |
Lift + shadow |
"This is interactive" |
| Button |
Color/brightness change |
"Press me" |
| Image |
Zoom/scale |
"View closer" |
| Link |
Underline/color |
"Navigate here" |
Principles
- Signal interactivity - hover shows it's clickable
- Don't overdo it - subtle changes work
- Match importance - bigger change = more important
- Touch alternatives - hover doesn't work on mobile
8. Feedback Animation Principles
Success States
Error States
Timing
- Success: slightly longer (enjoy the moment)
- Error: quick (don't delay action)
- Loading: continuous until complete
9. Performance Principles
What's Cheap to Animate
Optimization Strategies
- Animate transform/opacity whenever possible
- Avoid layout triggers (size/position changes)
- Use will-change sparingly (hints to browser)
- Test on low-end devices (not just dev machine)
Respecting User Preferences
10. Animation Decision Checklist
Before adding animation:
Anti-Patterns
- ❌ Same timing values every project
- ❌ Animation for animation's sake
- ❌ Ignoring reduced-motion preference
- ❌ Animating expensive properties
- ❌ Too many things animating at once
- ❌ Delays that frustrate users
Remember: Animation is communication. Every motion should have meaning and serve the user experience.