It's Too Fast
Boost UX by adding time
The Problem
instant evolution
nothing in our world behaves like this
Quest
Compel a speed addicted community to replace techniques that create anxiety with techniques that relieve anxiety.
(pace over speed)
Quantum's on the horizon
potentially 0 latency
still slow(ish)
Prepare For:
- Earth UX
- 2019 Fast Apps
- 2019 Snappy CSS
- Calm Strategies
- Calm Tactics
Earth Life UX
Where you spend most your day
Earth Anxiety
Inducers vs Relievers
Physically Sharp
Physically Soft
Physically Heavy
Physically Light
Audibally Sharp
Audibally Soft
Sharp Gaming
Soft Gaming
We get it.
Tangibally & Audibally
Sharp vs Soft
Heavy vs Light
Physical & Digital
Body & Mind
Connected
Fast Apps
in 2019
Speed standard
Creating or relieving anxiety?
Snappy
Instant
Elastic
We are addicted to
speed
speed
speed
MOAR speed!
Calm Apps
Subtle
difference of ~500ms
Plush
Fluid
Soft
iOS vs Android
calm vs fast
- Snappy
- Instant
- Elastic
- Startling
- Direct
- Lean
- Plush
- Fluid
- Soft
- Gentle
- Orchestrated
- Optional
Now what?
We project our physical world into our digital world
Lower anxiety with softness, lightness & orchestration
CSS!
Snappy CSS
Duration
- between 200-300ms
Easing
- Elastic
- ease-out
- cubic-bezier(0.4, 0.0, 1, 1)
Distance
- 50-200ms for short distances
- 200-350ms for longer distances
Good Advice 👍
but I want you to think deeper
Calming UI
designs need white space
UX needs time
- Passive vs Active
- Time is Value
Baggage Claim UX
Story Time
Passive
Active
Time is Money
Spend wisely
- Too fast can appear wrong
- Too fast can appear cheap
- Too fast can appear unreal
- Intel Comic Director
- Eye Scanner
- QR Code Scanner
Buy Time
- Distraction
- Feedback
- Validation
designs need to guide
UX needs
to follow
- Time Based Feedback
- Interruptible Interactions
Tap & Hold
Time is a required input parameter for the action to fire
Deliberation required!
Less than 1s added
Added friction with a tradeoff of user confidence
Microseconds adding value
Interruptible Interactions
Enhance without degradation
Why Interruptible?
Since we slowed down the animation speed, a power user may feel frustration because they're prepared for the next action while the UI is transitioning.
Let the power user power through
CSS Transitions are interruptible by default
.menu.in {
transform: translateX(100%);
}
Gestures should always be interruptible
designs need to speak
UX needs
to listen
- Copy
- Audibally
Traditional Approach
soft persona in your copy
Sharp:
You must register
before you can vote
Soft:
Register to vote
Yoga App
audibally soft
Voice Assistants
I can only assume tons of work went into ensuring those voices are soft and fluid
designs need to report
UX needs to
respond
Respond
Animate
Idle
Load
big feedback
Quick overview of:
- Respond
- Animate
idle
we spend a lot of time here
Spinners
Kinds
- Determinate
- Indeterminate
don't 👎
do 👍
Indeterminate Switch
Optimistic Interactions
orchestrated feedback
UI Promise
to not waste your time
Optimisic controls
Optimisic tabs
designs describe mass
UX needs to
control mass
Why does an app or OS feel so different if mass is present?
Heavy Mass
Mass sharing space
don't put me in a spider web
Recap
- White Space :: Time
- Guide :: Follow
- Speak :: Listen
- Report :: Manage
- Describe Mass :: Control Mass
Tactics for a
Calming UI
Immediate UI Feedback
Providing an instant visual answer to a user UI inquiry will keep them calm.
The UI is alive
button {
...
&:focus {}
&:focus-within {}
&:hover {}
&:active {}
&:disabled:focus {}
&:disabled:hover {}
...
}
:host {
...
&:focus {}
&:focus-within {}
&:hover {}
&:active {}
&:disabled:focus {}
&:disabled:hover {}
...
}
Show the system state
Communicate early and often,
as if your UI was a sales person
The UI is doing work
@keyframes float-forever {
0%, 100% {
transform: translateY(0);
}
50% {
transform: translateY(.25rem);
}
}
:host[sending] {
animation:
float-forever .2s
ease-in-out infinite;
}
Animation Directionality
UIElements should enter slower
than they exit
More time for the new,
less time for the old
Bring focus to actionable UI
:host[animation="in"] {
transition-duration: 500ms;
}
:host[animation="out"] {
transition-duration: 400ms;
}
/* Gif Uses */
:host[animation="in"] {
transition-duration: 300ms;
}
:host[animation="out"] {
transition-duration: 250ms;
}
/* Calmer */
:host[animation="in"] {
transition-duration: 500ms;
}
:host[animation="out"] {
transition-duration: 400ms;
}
Interruptible Motion
UI promises to never block the user. Users will drive & move at their own pace
User calmed by their control
:host {
transition: transform .5s ease;
}
:host[animation="in"] {
transform: translateX(0);
transition-timing-function:
cubic-bezier(0.0, 0.0, 0.2, 1);
}
:host[animation="out"] {
transform: translateX(100%);
transition-timing-function:
cubic-bezier(0.4, 0.0, 1, 1);
}
Don't 👎
Do 👍
Increase Duration
Give the animation more time but with exaggerated easing to soften the tension
Calm down UI enertia
/* Industry Standard */
:host[animation="in"] {
transition-duration: .3s;
transition-timing-function:
ease-out;
}
/* Calmer */
:host[animation="in"] {
transition-duration: ~1s;
transition-timing-function:
cubic-bezier(.13, .01, 0.1, 1);
}
200ms vs 350ms
115ms vs 550ms
Don't 👎
Do 👍
Duration *= Distance
Long animations over short distances waste user time
Calm contextual duration
:host[animation="in"] {
--base-duration: .5s;
--distance-multiplier: 1;
/* use js to set the multiplier */
/* > 1 for longer */
/* < 1 for shorter */
transition-duration:
calc(
var(--base-duration)
* var(--distance-multiplier)
);
}
Short
Medium
Long
Orchestration
Longer total durations can feel shorter with meaningful motion choreography
Orchestrated UIs feel safer
[animation="in"] > * {
--delay: 0;
--base-duration: .8s;
--distance-multiplier: 1;
--strong-ease: cubic-bezier(.13,.01,.1,1);
transition-property: transform;
transition-delay: var(--delay);
transition-timing-function:
var(--strong-ease);
transition-duration:
calc(
var(--base-duration)
* var(--distance-multiplier)
);
}
Don't 👎
Delay with intent
Stagger with intent
Wrap Up
Time to conclude our time about time
Strategies
- Designs need white space
UX needs time - Designs need to guide
UX needs to follow - Designs need to speak
UX needs to listen - Designs need to report
UX needs to manage - Designs describe mass
UX needs to control mass
Tactics
- UI Feedback
- Faster in than out
- Be interruptible
- Be optional
- Increase duration & strengthen easing
- Duration *= Distance
- Orchestrate
Assertions
- Well orchestrated "slow" apps can earn trust
- Slow paces produce less anxiety
- Apps feel tense, release some tension
- UIs waste lots of user time
- Instant completion feels cheap
- Try to model app UI after sustainable Earth UI
Slow down the UI around you, see what the 1-2 seconds slower does to you
Contribute to sustainable UX
optional & interruptible motion, increase duration, stagger more, soften tone, & release tension