Siemens iX uses meaningful animations to make applications appear physically tangible.
This way UIs become predictable and interactions easier to follow along with for users.
Abrupt state changes are prevented in oder to make UIs feel smooth and anchored in reality.
If an animation is too slow it can feel sluggish and disturb efficient workflows.
In contrast an animation that runs too fast can be irritating and stressful.
Therefore it is important to choose the correct timing for the respective situation.
- all mouse state changes e.g. normal <-> hover <-> active/pressed
- showing and hiding of small UI elements
- e.g. moving or fading complex components or multiple small elements
- e.g. moving or fading larger screen elements
- e.g. moving or fading entire screen parts
- Objects should move in a learned physical way, objects have mass and don't start or stop immediately, they accelerate and decelerate
- use
ease-in
andease-out
to accelerate and decelerate objects - Slide-in movements (from off screen) should use
ease-out
only - Slide-out movements (to off screen) should use
ease-in
only - transformations or translations within the screen (object is visisble the whole time) should use
ease-in-out
- hiding or appearing objects (opacity) use linear transitions as there is no mass to accelerate/decelerate
All animation timing values are also available through SASS variables:
$x-slow-time: 1s;
$slow-time: 500ms;
$medium-time: 300ms;
$default-time: 150ms;
$short-time: 0ms;
Usage example:
@import '@siemens/ix/scss/common-variables';
transition: $default-time;