Skip to content

t1k:designer:ux:ui-animation

FieldValue
Moduleux
Version1.7.2
Efforthigh
Tools

Keywords: motion design, transitions, UI animation, UX

/t1k:designer:ux:ui-animation

  • Animating screens, menus, popups, or modals in a game UI
  • Choosing between slide, fade, scale, or iris transitions
  • Staggering list/grid items on appear
  • Button press feedback, icon bounce, color flash
  • Toast/notification slide-in and auto-dismiss
  • Loading skeletons, progress bars, spinners
  • Tab or page switch transitions
  • Gameplay VFX (hit flash, screen shake) → game-feel-juice
  • Timeline/Animator sequences → engine animation skills (engine layer)
  • Tween API syntax → tweening library skill (engine layer)
  • Canvas layout / anchors → UI framework skill (engine layer)
CategoryDurationUse for
Micro-interaction80–150 msButton press, icon bounce, highlight
Element transition150–300 msModal open, drawer slide, tooltip
Screen transition300–500 msFull screen swap, page navigation
Cinematic moment500–800 msGame over, level complete, boss intro

Rule: never exceed 500 ms for player-initiated transitions — feels sluggish.

DirectionCurveTweening lib
Enter / appearEase-out (decelerate)Ease.OutQuart
Exit / dismissEase-in (accelerate)Ease.InQuart
Movement / repositionEase-in-outEase.InOutCubic
Bounce / punchSpring / back-easeEase.OutBack
  • Open: scale 0.85→1.0 + alpha 0→1, ease-out, 200–280 ms
  • Close: scale 1.0→0.85 + alpha 1→0, ease-in, 150–200 ms (faster than open)
  • Stagger children: 30–50 ms offset per item, top-to-bottom
  • Scale punch: 0.92 on press, spring back to 1.0 over 120 ms (Ease.OutBack)
  • Color flash: tint → original over 80 ms
  • Disable interaction during anim to prevent double-taps
  • Stagger fade-in: alpha 0→1 + translateY +20px→0, 40 ms offset per item
  • Cap visible stagger delay at 400 ms total (max ~10 items animated)
  • Items below fold: animate on scroll-enter, not on screen open
  • Enter: slide from edge, ease-out, 250 ms
  • Attention pulse: scale 1.0→1.05→1.0, 2× repeat, 300 ms each
  • Auto-dismiss: ease-in fade + slide-out, 200 ms, after 3 s hold (configurable)
  • Backdrop: alpha 0→0.6, ease-out, 200 ms
  • Content: scale 0.9→1.0 + alpha 0→1, ease-out, 250 ms, +30 ms backdrop delay
  • Dismiss: content first (200 ms), backdrop follows (150 ms)

→ See references/ui-animation-patterns.md for screen transitions, tab switch, loading patterns.

// Menu open — scale + fade in parallel
LMotion.Create(0.85f, 1f, 0.25f).WithEase(Ease.OutQuart)
.BindToLocalScaleXY(menuRoot);
LMotion.Create(0f, 1f, 0.25f).WithEase(Ease.OutQuart)
.BindTo(canvasGroup, (v, cg) => cg.alpha = v);
// Staggered list appearance
for (int i = 0; i < items.Length; i++)
LMotion.Create(0f, 1f, 0.2f).WithDelay(i * 0.04f).WithEase(Ease.OutCubic)
.BindTo(items[i].canvasGroup, (v, cg) => cg.alpha = v);

→ See the tweening library skill (engine layer) for full API, sequences, and cancellation patterns.

  1. Animate RectTransform position/scale and CanvasGroup.alpha — never layout properties (width/height/padding)
  2. Use CanvasGroup for group alpha; avoid per-element alpha mid-animation
  3. Disable Canvas on hidden screens (canvas.enabled = false) — alpha=0 still renders
  4. Pool toast GameObjects; instantiate on first use, reuse thereafter
  5. Do not animate more than 20 elements simultaneously on mobile
  • tweening library skill (auto-activated via registry) — tween API, sequences, cancellation
  • game-feel-juice — gameplay feedback (hit flash, shake) — NOT UI transitions
  • game-visual-design — color/style for animated elements (rarity glow, tier colors)
  • game-ui-wireframe — layout templates that animations apply to (screen flows)
  • engine animation skills (auto-activated via registry) — Animator/Timeline for complex sequences
  • UI framework skills (auto-activated via registry) — Canvas layout, anchors, event system
FileCoverage
references/ui-animation-patterns.mdScreen transitions (fade/slide/iris/dissolve), tab switch, loading patterns, when NOT to use
  • 60fps on mid-tier Android is the test — animations that look great on iPhone Pro stutter on a Samsung A-series; budget accordingly.
  • Stagger animation > simultaneous animation — a 30ms stagger across 5 list items reads as polished; 0ms reads as a flash.
  • Modal open/close must NOT block input — use predictive dismissal — players who tap to dismiss in 200ms feel the lag at 400ms.