lots of rendering, maybe we animated something that triggers Layout
Slide 34
Animation for the
User
Slide 35
ORIENTATION & TRANSITIONS
Slide 36
Title Text
Slide 37
ORIENTATION & TRANSITIONS 1
help with reorientation in the user
2
explain relationships between different information spaces
Slide 38
ORIENTATION & TRANSITIONS Example: VueJs
Slide 39
Title Text
codepen.io/lisilinhart/full/pmYBva
Slide 40
Slide 41
VueJS Transitions
view is toggled when a button is clicked
Slide 42
VueJS Transitions
view is toggled when a button is clicked
Slide 43
VueJS Transitions
component is transitioned in if view is the correct value
Slide 44
VueJS Transitions
Slide 45
VueJS Transitions
Slide 46
VueJS Transitions
define default state and the properties you want to transition
Slide 47
VueJS Transitions
define how the element should animate when it’
Slide 48
VueJS Transitions
define how the element should animate when it’s leaving
Slide 49
VueJS Transitions
define different timing functions for entering and leaving
Slide 50
VueJS Transitions
defines dynamic transitions depending on the state
Slide 51
VueJS Transitions
the name of my transition is updated whenever view changes
Slide 52
Title Text
codepen.io/lisilinhart/full/pmYBva
Slide 53
PERCEIVED PERFORMANCE
Slide 54
“Human perception of time is fluid, and can be manipulated in purposeful and productive ways.” Chris Harrison Faster Progress Bars: Manipulating Perceived Duration with Visual Augmentations
Slide 55
Chris Harrison, Zhiquan Yeo, Scott E. Hudson Faster Progress Bars: Manipulating Perceived Duration with Visual Augmentations animated progress bars reduced the perceived duration among the participants by 11%
Slide 56
PERCEIVED PERFORMANCE 0.1 seconds 1 second 5-10 seconds
feels instantaneous user will feel the pause struggle to maintain the user’s attention
Jakob Nielsen - Usability Engineering
Slide 57
PERCEIVED PERFORMANCE The page is loading
activity & progress indication
Slide 58
PERCEIVED PERFORMANCE The page is loading
activity & progress indication
Here is a skeleton screen of what content is being loaded
Lazy loading & hinting
Slide 59
PERCEIVED PERFORMANCE The page is loading
activity & progress indication
Here is a skeleton screen of what content is being loaded
Lazy loading & hinting
While you’re waiting, here is some more information on how the process works
using idle times to inform the user
Slide 60
PERCEIVED PERFORMANCE Example: Web Animations API
Slide 61
WEB ANIMATIONS API
keyframes object or array: stages of the animation
timings object: how it’s animated (e.g. speed, delay, ..)
Slide 62
WAAPI KEYFRAMES
keyframes object
keyframes array
Slide 63
WAAPI TIMINGS OBJECT
how fast should my animation run, how often should it run, what should happen after it’s finished?
Slide 64
CSS VS WAAPI
CSS Animation
Slide 65
CSS VS WAAPI
CSS Animation
Waapi Animation
Slide 66
Title Text
codepen.io/lisilinhart/full/PvgxEM
Slide 67
Slide 68
Slide 69
Slide 70
WAAPI EXAMPLE width & height of view box
clip-path for text in order to animate transform: scaleX(0)
Slide 71
WAAPI EXAMPLE
text with applied clip-path
Slide 72
WAAPI EXAMPLE
getting the elements
Slide 73
WAAPI EXAMPLE
getting the elements defining some custom easing
Slide 74
WAAPI EXAMPLE
getting the elements defining some custom easing defining timings object
Slide 75
WAAPI EXAMPLE calling the animations
Slide 76
WAAPI EXAMPLE all animated properties need to be in every keyframe
different easing on last keyframe
the animation for the needle starts at 50%
Slide 77
Title Text
codepen.io/lisilinhart/full/PvgxEM
Slide 78
WAAPI CONTROLS .animate() returns an animation object
speeding up the animations when we click the body
Slide 79
Title Text
codepen.io/lisilinhart/full/PvgxEM codepen.io/lisilinhart/pen/rqgPNd
Slide 80
WAAPI CONTROLS
Slide 81
WAAPI CALLBACKS
Slide 82
WAAPI ACCESSIBILITY CSS Variables
Slide 83
WAAPI ACCESSIBILITY
cancelling animations in Javascript
Slide 84
WHY THE WEB ANIMATIONS API? • • •
API provided by the browser
• •
choreographed & chained animations
no extra Javascript code like for libraries can render animations over the compositor thread (no JS stalling) a native & more powerful alternative to CSS animations
Slide 85
Slide 86
ATTENTION & FEEDBACK
Slide 87
FEEDBACK “Feedback indicates causation between two or more events, often used to connect a user’s interaction with the interface’s reaction” Rachel Nabors - Animation at Work
Slide 88
FEEDBACK I recognised that you clicked this button
giving a reaction to user input
Slide 89
FEEDBACK I recognised that you clicked this button
giving a reaction to user input
You entered some information, but it’s not correct
cause & effect of the users input
Slide 90
FEEDBACK I recognised that you clicked this button
giving a reaction to user input
You entered some information, but it’s not correct
cause & effect of the users input
You submitted the form, but our system is still processing it
making system activity visible
Slide 91
codepen.io/davidkpiano/full/WKvPBP/
Slide 92
ATTENTION
Slide 93
ATTENTION To get to the next step, click this prominent item
showing possible actions
Slide 94
ATTENTION To get to the next step, click this prominent item
showing possible actions
We created this explanatory animation in order for you to better understand our process
teaching the user about a process, storytelling
Slide 95
ATTENTION To get to the next step, click this prominent item
showing possible actions
We created this explanatory animation in order for you to better understand our process
teaching the user about a process, storytelling
You had to read a lot of information, so we added this kitten animation to entertain you
adding fun and reinforcing branding
Slide 96
Title Text
stripe.com/us/payments
Slide 97
ATTENTION & FEEDBACK Reactive Animation
Slide 98
“A reactive animation is one involving discrete changes, due to events.” Conal Elliott
Slide 99
read here
Slide 100
JS + CSS VARIABLES
setting a CSS Variable via JS
Slide 101
JS + CSS VARIABLES using the set variables in your CSS
Slide 102
JS + CSS VARIABLES
CSS Variables are inherited from their parent, for better performance set them at the most specific level
Slide 103
Title Text
pixelpioneers.co
Slide 104
Title Text
codepen.io/lisilinhart/full/oROmWB
Slide 105
Slide 106
Slide 107
Slide 108
JS + CSS VARIABLES define variables for changes and requestAnimationFrame
Slide 109
JS + CSS VARIABLES
define EventListener and calculate X & Y from event values that are pixels
Slide 110
JS + CSS VARIABLES
values need to be between 1 and -1 for easier usage with CSS calc()
Slide 111
JS + CSS VARIABLES
update DOM inside requestAnimationFrame
Slide 112
JS + CSS VARIABLES
set CSS Variables and reset requestAnimationFrame when done
Slide 113
JS + CSS VARIABLES rotate panel according to the variables
Slide 114
JS + CSS VARIABLES
transition the transform so the card gets animated smoothly
Slide 115
MATRIX 3D ????
Slide 116
meyerweb.com/eric/tools/matrix/
Slide 117
MATRIX 3D
The matrix3d() function is an alternative to the three dimensional transform functions rotate3d(), rotateX(), rotateY(), rotateZ(), translate3d(), translateZ(), scale3d(), scaleZ(), and perspective().
Slide 118
MATRIX 3D doesn’t need perspective on parent
needs perspective on parent
Slide 119
MATRIX 3D doesn’t need perspective on parent
without perspective
Slide 120
JS + CSS VARIABLES difference in translation creates a 3D parallax effect
Slide 121
JS + CSS VARIABLES
higher values look like they’re closer
Slide 122
Title Text
codepen.io/lisilinhart/full/oROmWB
Slide 123
JS + CSS VARIABLES
• easily debuggable • no excessive DOM manipulation • DOM node independent • great if you animate multiple child elements • great for reactive & physics animation • Transform: Individual Properties
TIMING slow transitions are less distracting
fast animations are more likely to attract attention valhead.com/2016/05/05/how-fast-should-your-ui-animations-be/
Slide 127
EASINGS.NET
Slide 128
EASINGS.NET
Slide 129
Slide 130
EASING
easeOut feels more reactive and instantaneous
Slide 131
EASING
easeOut feels more reactive and instantaneous
needs more time, because it’s a more complex curve
Slide 132
EASING
when an element is moving into the screen it should start quick and slow down towards the center
Slide 133
EASING
when an element is moving out of the screen it should start slow and speed up towards the end
Slide 134
Opportunities for Animation
Slide 135
make idle time more useful and interesting
Opportunities for Animation
Slide 136
make idle time more useful and interesting
guide the user in a process
Opportunities for Animation
Slide 137
make idle time more useful and interesting
guide the user in a process
Opportunities for Animation explain relationships in the information space
Slide 138
make idle time more useful and interesting
guide the user in a process
Opportunities for Animation get the users attention
explain relationships in the information space
Slide 139
Animation Resources
Slide 140
Animation Resources Animation At Work - A Book Apart Book by Rachel Nabors
Slide 141
Animation Resources Animation At Work - A Book Apart Twitch Channel by David Khourshid & Stephen Shaw
keyframe.rs
Book by Rachel Nabors
Slide 142
Animation Resources Animation At Work - A Book Apart Twitch Channel by David Khourshid & Stephen Shaw
keyframe.rs
Book by Rachel Nabors
animationatwork.slack.com Slack Channel to get feedback & inspiration
Slide 143
Animation Resources Animation At Work - A Book Apart Twitch Channel by David Khourshid & Stephen Shaw
basics to know about animation
keyframe.rs
Book by Rachel Nabors
animationatwork.slack.com developers.google.com/web/ fundamentals/design-and-ux/animations/
Slack Channel to get feedback & inspiration
Slide 144
Animation Resources Animation At Work - A Book Apart Twitch Channel by David Khourshid & Stephen Shaw
basics to know about animation
keyframe.rs
Book by Rachel Nabors
animationatwork.slack.com developers.google.com/web/ fundamentals/design-and-ux/animations/
Slack Channel to get feedback & inspiration
uianimationnewsletter.com inspiration for UI animation
Slide 145
“Users should only notice your animation if you need to attract their attention in that moment. Otherwise, micro-interactions and other transitions should be so seamless, users don’t even notice that there is animation” Heather Daggett - Animation At Work