Brand Consistency
Align animation style with brand identity using Disney's principles.
Problem Indicators Animation feels "off-brand" Generic motion that could be any product Inconsistent animation styles across features Motion conflicts with brand voice Users don't recognize the product's personality Diagnosis by Principle Appeal
Issue: Animation lacks distinctive character Fix: Define brand motion attributes. Is your brand playful (bouncy easing), professional (smooth, minimal), energetic (quick, snappy)?
Exaggeration
Issue: Wrong level of drama for brand Fix: Match exaggeration to brand personality. Luxury = subtle. Playful = bouncy. Corporate = restrained.
Timing
Issue: Speed doesn't match brand energy Fix: Fast brands: 100-200ms. Calm brands: 300-500ms. Define a timing scale and use consistently.
Squash and Stretch
Issue: Elastic effects conflict with serious brand Fix: Reserve squash/stretch for playful brands. Use scale transforms for professional brands.
Secondary Action
Issue: Details don't reinforce brand Fix: Secondary actions should amplify brand personality. A fun brand might have playful ripples; a serious brand uses subtle fades.
Quick Fixes Create a motion style guide - Document easing, duration, principles used Define 3-5 brand motion words - "Swift, precise, confident" Build reusable animation tokens - Consistent timing/easing variables Audit existing animations - Find outliers Create animation components - Enforce consistency through code Troubleshooting Checklist Can you describe animation in 3 brand words? Does motion match brand voice guidelines? Are easing curves consistent across features? Is timing scale documented and followed? Would a competitor use identical animation? Do animations feel like the same product? Test: Show animation without UI—recognizable as your brand? Review with brand/design team Code Pattern :root { / Brand motion tokens / --brand-ease-default: cubic-bezier(0.4, 0, 0.2, 1); --brand-ease-enter: cubic-bezier(0, 0, 0.2, 1); --brand-ease-exit: cubic-bezier(0.4, 0, 1, 1); --brand-duration-fast: 150ms; --brand-duration-normal: 250ms; --brand-duration-slow: 400ms; }