Verwendung
Animationen als Resultat von Interaktionen mit der Anwendung und ihren Bedienelementen geben Nutzenden ein wichtiges haptisches Feedback zum Beispiel über die Durchführung und den Erfolg (oder Misserfolg) eine durchgeführten Aktion. Animationen tragen unmittelbar zur User Experience bei:
- Nutzende begeistern: Bewegung verwandelt einen trockenen Prozess in ein angenehmes Erlebnis.
- Nutzende unterstützen: Bewegung stellt Kontext und Informationen bereit, ohne dass weitere Maßnahmen wie zusätzliche Klicks erforderlich sind.
- Nutzende fokussieren: Bewegung zieht Aufmerksamkeit auf sich und kann für den aktuellen Kontext wichtige Daten oder UI-Elemente hervorheben.
Fläche und Dauer
Das Design System unterteilt Animationen, die sich aus Interaktionen der Nutzenden ergeben in zwei Typen:
- Interaktionen, die ein schwach wahrnehmbares, subtiles visuelles Feedback zu einer möglichen oder soeben durchgeführten Interaktion geben. Dies sind oftmals Interaktionen, die zu einer weiteren Aktion hinführen und einen Aufforderungscharakter haben, z. B. ein
:hovervor dem Aufklappen eines Akkordeon-Panels, aber auch das Aktivieren einer Checkbox durch Klick / Tap oder Leerschritt. Die Dauer der Animationen sollten hier im Bereich von 80–160ms liegen. - Interaktionen, die ein deutlich wahrnehmbares visuelles Feedback zu einer durchgeführten Aktion geben. Dies kann z. B. die kurze, aber trotzdem als solche erkennbare Animation beim Öffnen eines Akkordeon-Panels oder Menüs sein. Diese liegen im Bereich von 200–400ms, der Verlauf der Bézierkurve ist abhängig von der jeweiligen Komponente und der Art der Interaktion.
Je nach Pattern und Umgebungsvariablen wie der Bildschirmgröße kann es nötig sein, die Dauer von Animationen des Typs b. zu verändern. Bei großflächigen Animationen kann man davon ausgehen, dass die Animationsdauer für die nächsthöhere Geräteklasse um ca. 30% ansteigt, da Elemente sich über einen entsprechend längeren Weg auf dem Bildschirm bewegen müssen. Hier bietet sich an, die Animationsdauer an die verwendeten Breakpoints zu binden.
Da das Design System aber die Größe von Akkordeon-Panels oder die Anzahl von Menü-Einträgen nicht vorhersehen kann, legen wir vernünftige Mittelwerte fest, die im Bedarfsfall von den Fachverfahren verändert werden können.
Tokens
| Token | Dauer | Verwendung |
|---|---|---|
$ref-duration-instant | 0.001ms | Textänderungen, durch Nutzende unterdrückte Animationen |
$ref-duration-quick | 80ms | Checkboxen, Radiobuttons, Toggles, Tabs, Farbwechsel, Überblendung, Einblendung (z. B. bei Dropdowns und Tooltips) :hover (z. B. auf Kacheln) |
$ref-duration-moderate | 240ms | Modale Dialoge, Toasts, Hinweise, Bottom Sheet, Akkordeons, Menüs |
CSS
Das CSS wird grundsätzlich so aufgebaut, dass eine mögliche clientseitige Unterdrückung von Animationen durch Systemeinstellungen von Nutzenden honoriert und der vollständige Inhalt statisch abgebildet wird und damit wahrnehmbar und bedienbar bleibt. Das Design System verwendet hierzu das Media Query prefers-reduced-motion, welches in allen modernen Browsern zuverlässig unterstützt wird.
/* Bei Einhaltung der Kaskade ist dieses Media Query optional, kann aber als
Filter benutzt werden, damit ältere Browser die Animation ignorieren */
@media (prefers-reduced-motion: no-preference) {
.werbebanner {
animation: bounce 5000ms;
}
.anchor_local {
scroll-behavior: smooth;
}
}
/* Hier wiederum ist das Media Query verpflichtend! */
@media (prefers-reduced-motion: reduce) {
* {
animation: none;
transition: none;
scroll-behavior: auto;
}
}CSS bietet darüber hinaus die Möglichkeit, über (update:slow) weniger performante Endgeräte mit einer geringen Framerate abzufragen und mit besser für sie geeigneten Regeln zu versorgen – keine Animation ist besser als eine ruckelnde Animation.
Dadurch dass die Werte hier nicht auf none, sondern auf für das menschliche Auge nicht mehr wahrnehmbare 0,001 Millisekunden gesetzt sind wird sichergestellt, dass alle Funktionen aktiviert werden können, die an das erfolgreiche Durchlaufen der Animation gebunden sind.
@media screen and
(prefers-reduced-motion: reduce),
(update: slow) {
* {
animation-duration: .001ms;
transition-duration: .001ms;
animation-iteration-count: 1;
}
}Do’s and Dont’s
Gut:
- Ein- und Ausblenden
- Farbübergänge
- Skalierungen
- Erweiterungen
Mit Bedacht einsetzen:
- Parallax-Effekte
- Zoom beim scrollen
- Zoom bei :hover
- Zu schnelle Effekte (<50ms)
Schlecht:
- Hüpfen, Motion Blur
- Wechselnde Geschwindigkeiten
- Zu langsame Effekte (>500ms)
