Slide 1

Slide 1 text

DESIGNING FOR Using animation to enhance user experience INTERACTION

Slide 2

Slide 2 text

@marktimemedia I Design & Build DIGITAL INTERFACES Rockstar at saying stuff. Adorable badass. Carefully curated spontaneity. Master suitcase packer. Accidental fitness buff. HI, I’M MICHELLE. actually not coffee

Slide 3

Slide 3 text

@marktimemedia The web is built on INTERACTIONS

Slide 4

Slide 4 text

@marktimemedia The web is built on CUT SCENES

Slide 5

Slide 5 text

@marktimemedia How do we communicate an interaction has happened?

Slide 6

Slide 6 text

@marktimemedia CONSISTENCY of elements

Slide 7

Slide 7 text

@marktimemedia INTERACTION & ANIMATION

Slide 8

Slide 8 text

@marktimemedia CONTEXT: HIERARCHY Material Design

Slide 9

Slide 9 text

@marktimemedia CONTEXT: RELATIONSHIPS Material Design

Slide 10

Slide 10 text

@marktimemedia PROVIDE FEEDBACK Material Design

Slide 11

Slide 11 text

@marktimemedia INDICATE STATUS Material Design

Slide 12

Slide 12 text

@marktimemedia GIVE INSTRUCTION Material Design

Slide 13

Slide 13 text

@marktimemedia ADD DELIGHT Material Design

Slide 14

Slide 14 text

@marktimemedia THE FLASHING CURSOR

Slide 15

Slide 15 text

@marktimemedia THE 12 PRINCIPLES OF ANIMATION a.k.a. How To Convey Physics & Psychology in 2D

Slide 16

Slide 16 text

@marktimemedia SQUASH & STRETCH 12 Principles Tumblr

Slide 17

Slide 17 text

@marktimemedia ANTICIPATION 12 Principles Tumblr

Slide 18

Slide 18 text

@marktimemedia STAGING 12 Principles Tumblr

Slide 19

Slide 19 text

@marktimemedia STRAIGHT AHEAD ACTION & POSE TO POSE 12 Principles Tumblr

Slide 20

Slide 20 text

@marktimemedia FOLLOW THROUGH & OVERLAPPING ACTION 12 Principles Tumblr

Slide 21

Slide 21 text

@marktimemedia SLOW IN & SLOW OUT 12 Principles Tumblr

Slide 22

Slide 22 text

@marktimemedia ARC 12 Principles Tumblr

Slide 23

Slide 23 text

@marktimemedia SECONDARY ACTION 12 Principles Tumblr

Slide 24

Slide 24 text

@marktimemedia TIMING 12 Principles Tumblr

Slide 25

Slide 25 text

@marktimemedia EXAGGERATION 12 Principles Tumblr

Slide 26

Slide 26 text

@marktimemedia SOLID DRAWING 12 Principles Tumblr

Slide 27

Slide 27 text

@marktimemedia APPEAL 12 Principles Tumblr

Slide 28

Slide 28 text

@marktimemedia WHAT DO THESE PRINCIPLES PROVIDE?

Slide 29

Slide 29 text

@marktimemedia Realism Context Causality Focus Delight

Slide 30

Slide 30 text

@marktimemedia PROPERTIES OF ANIMATION

Slide 31

Slide 31 text

@marktimemedia ELEMENTS Color Location Shape Opacity Scale Focus

Slide 32

Slide 32 text

@marktimemedia EASING Ease-In Ease-Out Bounce

Slide 33

Slide 33 text

@marktimemedia DURATION 0.1 sec Instantaneous response 1 sec Flow of thought 10 sec Keeping attention Material Design https://www.nngroup.com/articles/response-times-3-important-limits/

Slide 34

Slide 34 text

@marktimemedia TRANSITIONS 1 Persistent 2 Outgoing 3 Incoming 4 Static Material Design

Slide 35

Slide 35 text

@marktimemedia TWEEN Transition between keyframes Material Design

Slide 36

Slide 36 text

@marktimemedia FADE Dissolve, Cross-Dissolve, Sequential Material Design

Slide 37

Slide 37 text

@marktimemedia TRANSFORMATION

Slide 38

Slide 38 text

@marktimemedia PRACTICAL MOTION UX

Slide 39

Slide 39 text

@marktimemedia CSS vs JS HOW DO WE ANIMATE?

Slide 40

Slide 40 text

@marktimemedia Types of CSS animation (via Mozilla) • CSS transitions provide an easy way to make animations occur between the current style and an end CSS state, e.g., a resting button state and a hover state. • CSS animations allow developers to make animations between a set of starting property values and a final set rather than between two states. They consist of two components: – a style describing the CSS animation – a set of keyframes that indicate the start and end states of the animation's style, as well as possible intermediate points

Slide 41

Slide 41 text

@marktimemedia Properties of CSS animation (via KeyCDN) • Layout properties - determine the size and placement of page elements – Animations that change an element’s width and height can affect the placement of other page elements, which can cause a chain reaction known as “layout thrash.” – Since animations that change the page layout are especially costly, they are best avoided. • Paint properties - define the appearance of page elements – Making changes to properties such as color requires repainting, which can be costly. – Simple animations that require a small portion of the viewport to be repainted may have a negligible impact on overall performance. Larger animations that require repainting may not be worth the effort. • Composite properties – CSS properties (transforms) that do not trigger paint or layout changes – For best results, try to limit yourself these four composite properties: position, scale, rotation, opacity

Slide 42

Slide 42 text

@marktimemedia Capabilities (via CSS Tricks) • JS can interact with more complex elements including: runtime controls, independent transforms, relative values, nesting, progress reporting • Complex CSS animations don’t work on IE9 or earlier (if that is important) • However, CSS also has graceful degradation (no transition) rather than an error or extra detection

Slide 43

Slide 43 text

@marktimemedia Performance (via CSS Tricks & Hackernoon) Javascript <-> CSS > jQuery • JS performed better when it affected document flow (top/left/width/height) • JS performed better if you’re not loading several animation libraries • CSS performed better on certain devices, was great for basic transitions, and handled 3D transforms better • CSS is more resilient (an error won’t throw everything off) • Both beat out jQuery

Slide 44

Slide 44 text

@marktimemedia When to Use CSS vs JS (via Google) • Use CSS when you have smaller, self-contained states for UI elements. CSS transitions and animations are ideal for bringing a navigation menu in from the side, or showing a tooltip. You may end up using JavaScript to control the states, but the animations themselves will be in your CSS. • Use JavaScript when you need significant control over your animations

Slide 45

Slide 45 text

@marktimemedia USING ANIMATION RESPONSIBLY

Slide 46

Slide 46 text

@marktimemedia Does it add value? Photo: Pexels

Slide 47

Slide 47 text

@marktimemedia Are your behaviors consistent? Photo: Pexels

Slide 48

Slide 48 text

@marktimemedia Is it still functional without it? Photo: Pexels

Slide 49

Slide 49 text

@marktimemedia Is it optimized? Photo: Pexels

Slide 50

Slide 50 text

@marktimemedia Do you need it? Photo: Pexels

Slide 51

Slide 51 text

@marktimemedia “Don’t make something unless it is both necessary and useful; but if it is both necessary and useful, don’t hesitate to make it beautiful.” – Shaker principle, via Animation At Work

Slide 52

Slide 52 text

@marktimemedia UI/UX RESOURCES • https://cssanimation.rocks/principles/ • https://alistapart.com/article/motion-with-meaning-semantic-animation-in-interface-design • https://material.io/design/motion/understanding-motion.html#principles • http://www.howdesign.com/web-design-resources-technology/12-basic-principles-animation-motion-design/ • https://medium.com/@adaptivepath/jedi-principles-of-ui-animation-2b88423b1dac • https://www.invisionapp.com/inside-design/web-animation-ux/ • https://alistapart.com/article/web-animation-at-work • https://www.invisionapp.com/inside-design/is-animation-the-key-to-great-product-design/ • https://www.creativebloq.com/advice/understand-the-12-principles-of-animation • https://uxdesign.cc/good-to-great-ui-animation-tips-7850805c12e5 • https://medium.com/ux-in-motion/creating-usability-with-motion-the-ux-in-motion-manifesto-a87a4584ddc

Slide 53

Slide 53 text

@marktimemedia PRACTICAL RESOURCES • https://s3.amazonaws.com/designco-web-assets/uploads/2019/05/animationhandbook.pdf InVision Animation Handbook • https://csstriggers.com/ • https://blog.bitsrc.io/11-javascript-animation-libraries-for-2018-9d7ac93a2c59 • https://developers.google.com/web/fundamentals/design-and-ux/animations/css-vs-javascript • https://developer.mozilla.org/en- US/docs/Web/Performance/CSS_JavaScript_animation_performance • https://css-tricks.com/myth-busting-css-animations-vs-javascript/ • https://hackernoon.com/in-simple-terms-css-vs-javascript-abc9d709399d • https://www.keycdn.com/blog/animation-performance

Slide 54

Slide 54 text

@marktimemedia QUESTIONS? Here’s how to get in touch: ONLINE: Lots of podcasts! (Do you have one? Need a guest?) IN PERSON: WordCamp Denver WordCamp Minneapolis/St. Paul Pressnomics Content Camp & WordCamp Sacramento WHERE TO FIND ME NEXT: Michelle Schulp [email protected] @marktimemedia michelleschulp.pink bit.ly/design-for-interaction