Klassische Online-Shops sind fast immer Multi-Page-Anwendungen: Jeder Klick auf ein Produkt lädt eine komplett neue HTML-Seite. Genau dieser harte Sprung - weißes Aufblitzen, springendes Layout - lässt viele Shops im direkten Vergleich mit Single-Page-Apps träge wirken. Die View Transitions API ändert das grundlegend: Seit Chrome 126 (Juni 2024) und Safari 18.2 (Dezember 2024) beherrschen die großen Engines Cross-Document-Übergänge, die rund 83 % der weltweiten Nutzer erreichen (caniuse.com). Damit bekommen selbst simple Kategorie-zu-Produkt-Wechsel weiche, app-artige Animationen - ohne JavaScript-Framework und ohne Rewrite. Dieser Praxisleitfaden zeigt, wie Sie @view-transition, view-transition-name, die Events pageswap/pagereveal und Speculation Rules sauber, performant und barrierearm im Shop-Frontend umsetzen - passend für Shopware-Shops mit Blick auf Core Web Vitals.
Warum flüssige Seitenwechsel jetzt möglich sind
Bis 2024 waren weiche Übergänge zwischen zwei echten HTML-Seiten technisch kaum machbar - man brauchte ein Single-Page-Framework, das die Navigation komplett in JavaScript nachbaute. Genau das ist der Grund, warum "App-Gefühl" lange als teures SPA-Feature galt. Cross-Document View Transitions kehren das um: Der Browser macht vor der Navigation eine Momentaufnahme der alten Seite, lädt die neue Seite normal und blendet dann automatisch zwischen beiden Snapshots über. Die alte und die neue Seite sind dabei weiterhin zwei getrennte Dokumente - der Übergang ist reine Präsentation. Voraussetzung ist nur, dass beide Seiten same-origin sind und beide das Opt-in setzen (MDN Web Docs).
Kein Framework-Zwang
Der Basis-Übergang funktioniert mit reinem HTML und CSS - unabhängig davon, ob Ihr Shop auf einem klassischen Template, Server-Rendering oder Shopware läuft. Kein zusätzliches JavaScript-Bundle.
Progressive Enhancement
Browser ohne Unterstützung navigieren wie bisher - ganz ohne Fehler und ohne Ballast. Nichts bricht, der weiche Wechsel ist ein reines Plus für die passenden Browser.
App-Gefühl im MPA
Klassische Multi-Page-Shops bekommen weiche Wechsel zwischen Kategorie und Produkt, wie man sie sonst nur von nativen Apps oder Single-Page-Anwendungen kennt.
Man unterscheidet Same-Document-Transitions (innerhalb einer Seite, per document.startViewTransition() - der SPA-Fall) und Cross-Document-Transitions (zwischen zwei Seiten, per @view-transition - der MPA-Fall). Für klassische Shops ist der Cross-Document-Fall der spannende: Er braucht kein JavaScript und greift beim normalen Klick von Kategorie zu Produkt.
Browser-Support 2026: aus Experiment wird Standard
Der entscheidende Wendepunkt kam Ende 2024: Chrome und Edge liefern Cross-Document-Transitions seit Version 126 (Juni 2024), Safari zog mit 18.2 im Dezember 2024 nach (Chrome for Developers). Damit unterstützen erstmals alle großen Rendering-Engines dieselbe Opt-in-Syntax. Laut caniuse liegt die weltweite Abdeckung für Cross-Document-Transitions bei rund 83 %, für Same-Document-Transitions sogar bei 88 % (caniuse.com). Firefox zeigt das Feature bisher nur teilweise - der @view-transition-Block wird dort aktuell ignoriert, die Navigation funktioniert aber ganz normal (caniuse.com).
| Funktion | Chrome/Edge | Safari | Firefox | Global |
|---|---|---|---|---|
| Single-Document (SPA) | 111+ (03/2023) | 18.0+ | 144+ | ~88 % |
| Cross-Document (MPA) | 126+ (06/2024) | 18.2+ (12/2024) | teilweise | ~83 % |
| @view-transition At-Rule | 126+ | 18.2+ | teilweise | ~83 % |
| view-transition-name | 111+ | 18.0+ | 144+ | ~88 % |
| Speculation Rules API | 109+ | nein | nein | ~75 % |
Für die Praxis heißt das: View Transitions sind ein klassisches Progressive-Enhancement-Feature. Sie bauen den Übergang für die rund 83 % ein, die ihn sehen - alle anderen bekommen den gewohnten, funktional identischen Seitenwechsel (caniuse.com). Es gibt keinen Grund zu warten, bis "alle" Browser mitziehen, weil das Risiko eines Regressionsfehlers gegen null geht. Genau diese Eigenschaft macht das Feature so attraktiv für produktive Shops, die auf gute Core Web Vitals angewiesen sind. Die formale Grundlage bildet das W3C CSS View Transitions Module Level 2, in dem der Cross-Document-Teil spezifiziert ist (W3C CSS View Transitions Module Level 2).
@view-transition: der Basis-Übergang ohne JavaScript
Der Einstieg ist bewusst minimal. Sie setzen die At-Rule @view-transition mit navigation: auto in das CSS beider beteiligten Seiten. Sobald ein Nutzer zwischen zwei gleichnamigen Seiten derselben Origin navigiert, erzeugt der Browser automatisch einen weichen Cross-Fade zwischen alter und neuer Seite. navigation: auto erlaubt View Transitions für same-origin-Navigationen der Typen traverse, push und replace - ausgenommen sind Reloads und das direkte Ansteuern über die Adressleiste (MDN Web Docs).
/* Auf JEDER teilnehmenden Seite - Quell- UND Zielseite */
@view-transition {
navigation: auto;
}Sobald @view-transition auf Quell- und Zielseite steht, blendet der Browser bei jeder gleichnamigen Navigation automatisch weich über - ohne eine einzige Zeile JavaScript (MDN Web Docs). Der Default ist ein Cross-Fade der ganzen Seite. Erst wenn Sie einzelne Elemente hervorheben wollen, kommt view-transition-name ins Spiel.
view-transition-name: das Produktbild morphen
Der eigentliche Aha-Effekt entsteht, wenn ein Element über den Seitenwechsel hinweg an seinen neuen Platz gleitet, statt einfach aus- und wieder einzublenden. Das ist der klassische Kategorie-zu-Produkt-Fall: Das kleine Produktbild in der Liste wächst beim Klick flüssig zum großen Hero-Bild auf der Detailseite. Dafür geben Sie demselben logischen Element auf beiden Seiten den gleichen view-transition-name. Der Browser erkennt: Das ist dasselbe Objekt, und animiert Position, Größe und Form automatisch zwischen den beiden Zuständen.
/* Kategorie-Seite: das aktive Produktbild benennen */
.product-card.is-active .product-card__image {
view-transition-name: product-hero;
}
/* Produktdetailseite: dasselbe Bild, gleicher Name */
.pdp__gallery-main {
view-transition-name: product-hero;
}
/* Dauer und Kurve der Alt/Neu-Snapshots feinjustieren */
::view-transition-old(product-hero),
::view-transition-new(product-hero) {
animation-duration: 0.35s;
animation-timing-function: cubic-bezier(0.2, 0, 0, 1);
}Wichtig ist, dass ein view-transition-namepro Seite eindeutig sein muss. Tauchen auf einer Kategorieseite acht Produktkarten auf, darf nicht jede denselben Namen tragen - sonst bricht der Browser die Transition ab. Praktisch vergibt man den geteilten Namen daher nur dem angeklickten Produkt, typischerweise per Klick-Handler oder dynamisch im pageswap-Event. Für die Bildqualität gilt derselbe Grundsatz wie bei jeder Produktdarstellung: sauber dimensionierte, moderne Formate. Wie Sie Produktbilder performant ausliefern, zeigt unser Leitfaden zu adaptivem Image-Loading mit AVIF.
- Eindeutigkeit: Jeder
view-transition-namedarf pro Snapshot nur einmal vorkommen - sonst wird die Transition übersprungen. - Nur das aktive Element benennen: Auf Listen den geteilten Namen ausschließlich der angeklickten Karte geben, nicht allen.
- Feste Abmessungen:
width/heightbzw.aspect-ratiosetzen, damit das Bild während des Morphs nicht springt. - Snapshots gestalten: Über
::view-transition-old()und::view-transition-new()lassen sich Dauer, Kurve und Überblendung feinjustieren. - Gruppen nutzen: Mit
::view-transition-group()steuern Sie die Bewegung des morphenden Paars als Einheit.
pageswap und pagereveal: Übergänge dynamisch steuern
Für statische Cross-Fades reicht CSS. Sobald Sie den Übergang aber richtungsabhängig machen wollen - Vorwärts-Navigation anders animieren als den Zurück-Button - brauchen Sie zwei Events. Das Event pageswap feuert auf der Seite, die verlassen wird, kurz bevor ihr letztes Bild gerendert ist. Hier können Sie view-transition-name-Werte anpassen oder Zustand in sessionStorage sichern. Das Gegenstück pagereveal feuert auf der neuen Seite, nachdem sie initialisiert, aber bevor sie zum ersten Mal gerendert wurde (MDN Web Docs). Über navigation.activation bzw. event.activation lesen Sie aus, woher der Nutzer kam, und wählen die passende Animationsrichtung.
// Muss als parser-blockierendes Script im <head> stehen,
// damit der Listener vor der ersten Renderchance greift.
window.addEventListener('pagereveal', (event) => {
if (!event.viewTransition) return;
const from = navigation.activation.from?.url ?? '';
const cameFromCategory = from.includes('/kategorie/');
const onProductPage = location.pathname.includes('/produkt/');
if (cameFromCategory && onProductPage) {
event.viewTransition.types.add('zoom-in');
}
});
// Auf der Quellseite: Zustand vor dem Verlassen sichern
window.addEventListener('pageswap', (event) => {
if (!event.viewTransition) return;
sessionStorage.setItem('lastProduct', activeProductId);
});Erstens: Der pagereveal-Listener muss in einem parser-blockierenden Script im <head> stehen, sonst verpasst er die erste Renderchance und die gewünschte Transition-Konfiguration greift nicht (Chrome for Developers). Zweitens: Dauert eine Navigation länger als vier Sekunden, überspringt der Browser die Transition mit einem TimeoutError und navigiert hart. Langsame Seiten verlieren den Effekt also zuerst - ein weiteres Argument für schnelle Ladezeiten (Chrome for Developers).
Speculation Rules: gefühlt sofortige Seitenwechsel
Ein weicher Übergang wirkt nur dann rund, wenn die Zielseite auch wirklich schnell da ist. Genau hier setzt die Speculation Rules API an: Sie sagt dem Browser per JSON-Regel, welche Seiten er im Voraus laden (Prefetch) oder sogar komplett im Hintergrund rendern (Prerender) soll. Kombiniert mit View Transitions entsteht der Eindruck eines nahezu sofortigen Wechsels - der Browser hat die Produktseite schon fertig gerendert, wenn der Nutzer klickt, und blendet nur noch weich um.
<script type="speculationrules">
{
"prerender": [
{
"where": { "href_matches": "/produkt/*" },
"eagerness": "moderate"
}
],
"prefetch": [
{
"where": { "selector_matches": ".product-card a" },
"eagerness": "conservative"
}
]
}
</script>| Aspekt | Prefetch | Prerender |
|---|---|---|
| Was passiert | Ressourcen werden vorab geladen | Seite wird komplett im Hintergrund gerendert |
| Gefühlte Ladezeit | Schneller | Nahezu sofort |
| Ressourcenverbrauch | Gering | Höher (volle Renderarbeit) |
| Sinnvolle eagerness | conservative / moderate | moderate |
| Ideal für | Viele mögliche Ziele | Das wahrscheinlichste nächste Ziel |
| Mit View Transitions | Gut | Sehr gut - Wechsel wirkt sofort |
Die Speculation Rules API läuft in Chromium-Browsern (Chrome, Edge, Opera) und erreicht rund 75 % der Nutzer; Firefox und Safari unterstützen sie bisher nicht (caniuse.com). Seit Januar 2026 richtet sich das Vorladen auf Mobilgeräten nach einfachen Viewport-Heuristiken - eine Regel greift dort etwa 50 Millisekunden, nachdem ein Link in den sichtbaren Bereich scrollt (Chrome for Developers). Weil auch Speculation Rules Progressive Enhancement sind, schadet ihr Einsatz nicht - Browser ohne Unterstützung ignorieren den Block. Für die nötige Server-Geschwindigkeit lohnt sich der Blick auf Edge-Caching und ein performantes Hosting-Setup.
Barrierearm umsetzen: prefers-reduced-motion respektieren
Bewegung ist nicht für alle Nutzer angenehm. Menschen mit vestibulären Störungen können auf große Zoom- oder Slide-Animationen mit Schwindel oder Übelkeit reagieren. Deshalb signalisieren Betriebssysteme über die Einstellung reduzierte Bewegung diesen Wunsch an die Seite - abfragbar per Media Query prefers-reduced-motion: reduce (MDN Web Docs). Ein barrierearmer Shop schaltet in diesem Fall die animierten Snapshots ab und liefert stattdessen einen ruhigen, sofortigen Wechsel. Der Inhalt bleibt identisch, nur die Bewegung entfällt.
/* Nutzer, die reduzierte Bewegung wuenschen, bekommen einen
ruhigen, sofortigen Wechsel statt animierter Snapshots */
@media (prefers-reduced-motion: reduce) {
::view-transition-group(*),
::view-transition-old(*),
::view-transition-new(*) {
animation: none !important;
}
}Statt Transitions bei reduzierter Bewegung ganz zu deaktivieren, ist ein sanfter, sehr kurzer Cross-Fade oder ein sofortiger harter Schnitt oft die bessere Wahl - so bleibt die visuelle Kontinuität erhalten, ohne dass große Bewegungen auftreten. Testen Sie beide Zustände: einmal mit aktivierter, einmal mit reduzierter Bewegung. Wie Sie Barrierefreiheit systematisch angehen, zeigt unsere BFSG-Optimierung.
Bewegung ist ein Feature, kein Selbstzweck. Wer
XICTRON Entwicklungsteamprefers-reduced-motionrespektiert, liefert allen Nutzern den passenden Übergang - vom weichen Morph bis zum ruhigen, sofortigen Wechsel.
Typische Stolperfallen im Shop
In der Umsetzung tauchen immer wieder dieselben Fehler auf. Wer sie kennt, spart sich viel Debugging - denn eine gescheiterte Transition äußert sich meist als hartes Umspringen ohne jede Fehlermeldung.
- Doppelte Namen: Derselbe
view-transition-namemehrfach auf einer Seite lässt die Transition kommentarlos ausfallen - nur das aktive Element benennen. - Flackerndes Hero-Bild: Wird das Produktbild auf der Zielseite neu geladen, statt aus dem Cache zu kommen, blitzt es während des Morphs. Preload und moderne Formate helfen (siehe Bild-Loading-Guide).
- pagereveal zu spät registriert: Nicht parser-blockierend im
<head>platziert, verpasst der Listener die erste Renderchance (Chrome for Developers). - Cross-Origin-Navigation: Zwischen verschiedenen Origins gibt es keine Cross-Document-Transition - der Effekt greift nur same-origin.
- Vier-Sekunden-Timeout: Langsame Seiten überspringen die Transition automatisch - schnelles Rendering und Prerendering sind Pflicht.
- Layout-Shift zwischen Snapshots: Ohne feste
width/heightspringt das morphende Element und verschlechtert nebenbei die Core Web Vitals. - prefers-reduced-motion ignoriert: Wer die Einstellung nicht auswertet, schließt Nutzer aus und riskiert einen Barriere-Verstoß.
So könnte Ihr Shop-Frontend mit flüssigen Seitenwechseln aussehen:
Fashion & Lifestyle Shop
Conversion-Wirkung: warum sich flüssige Wechsel lohnen
Übergänge sind nicht nur Kosmetik. Sie senken die wahrgenommene Wartezeit und halten den visuellen Kontext über den Seitenwechsel hinweg - der Nutzer verliert das Produkt nicht aus den Augen. Und die reine Ladegeschwindigkeit, an der View Transitions in Kombination mit Prerendering direkt mitarbeiten, ist ein belegter Umsatzhebel: Laut der von Google beauftragten Deloitte-Studie Milliseconds Make Millions steigert schon eine um 0,1 Sekunden schnellere Ladezeit die Conversion im Handel um 8,4 % und den durchschnittlichen Bestellwert um 9,2 %; bei Reise-Anbietern lag das Conversion-Plus bei 10 % (Google/Deloitte). Umgekehrt gilt: Steigt die Ladezeit von einer auf drei Sekunden, erhöht sich die Absprungwahrscheinlichkeit um 32 % (Google/SOASTA).
Weniger Absprünge
Flüssige Wechsel und schnelle Zielseiten senken die gefühlte Wartezeit. Da die Absprungwahrscheinlichkeit mit jeder zusätzlichen Sekunde steigt (Google/SOASTA), zahlt jede Beschleunigung direkt ein.
Klarere Orientierung
Wenn das Produktbild von der Liste zur Detailseite morpht, versteht der Nutzer sofort den Zusammenhang - der Kontext geht beim Seitenwechsel nicht verloren.
Kaum Performance-Kosten
Der CSS-Übergang läuft auf dem Compositor, nicht im Haupt-Thread. In Kombination mit schnellem Hosting und Prerendering wirkt der Wechsel praktisch sofort.
0,1 Sekunden schneller: +8,4 % Conversion und +9,2 % Bestellwert im Handel (Google/Deloitte). View Transitions verbessern die gefühlte Geschwindigkeit, Speculation Rules die echte - beides zusammen ist mehr als die Summe der Teile. Wer parallel an Suchmaschinenoptimierung und Ladezeit arbeitet, hebt die Wirkung zusätzlich.
View Transitions im Shop einführen
- Phase 1 - Kandidaten finden (Woche 1): Die wichtigsten Navigationspfade identifizieren - typischerweise Kategorie zu Produkt und Produkt zurück zur Liste. Diese Wechsel haben die größte Wirkung.
- Phase 2 - Basis-Übergang (Woche 1-2):
@view-transition { navigation: auto; }auf allen relevanten Seiten setzen und den Standard-Cross-Fade testen. Ohne JavaScript, als reines Progressive Enhancement. - Phase 3 - Morphing (Woche 2-3):
view-transition-namefür das geteilte Produktbild vergeben, eindeutig pro Seite. Dauer und Kurve über die Pseudo-Elemente feinjustieren. Feste Bildabmessungen sicherstellen. - Phase 4 - Richtung und Feinschliff (Woche 3): Mit
pageswap/pagerevealrichtungsabhängige Animationen bauen.prefers-reduced-motionauswerten. Timeout- und Cross-Origin-Fälle absichern. - Phase 5 - Speculation Rules (Woche 4): Prefetch/Prerender für wahrscheinliche nächste Seiten einrichten, damit der Wechsel gefühlt sofort passiert. Serverseitig auf schnelle Antwortzeiten achten (siehe Brotli-Komprimierung).
- Phase 6 - Messen und iterieren (laufend): Core Web Vitals im Blick behalten, echte Nutzerdaten auswerten und die Übergänge nur dort einsetzen, wo sie die Orientierung verbessern. Bei Fragen zur Umsetzung hilft unser Entwicklungsteam weiter.
Dieser Artikel stützt sich auf: MDN Web Docs (View Transition API), Chrome for Developers (Smooth transitions with the View Transition API, Cross-document view transitions, Speculation Rules API), W3C CSS View Transitions Module Level 2 (drafts.csswg.org), caniuse.com (Browser-Support-Tabellen) sowie die Google-beauftragte Deloitte-Studie Milliseconds Make Millions (Google/Deloitte) und die Ladezeit-Analyse Google/SOASTA. Die genannten Zahlen können sich je nach Stichprobe und Zeitpunkt ändern und sind als Richtwerte zu verstehen.
In der Regel nein. Der Basis-Übergang zwischen zwei Seiten funktioniert mit reinem CSS über die At-Rule @view-transition - ganz ohne Framework und ohne zusätzliches JavaScript-Bundle (MDN Web Docs). JavaScript brauchen Sie erst, wenn Sie richtungsabhängige Animationen über pageswap/pagereveal steuern möchten.
Safari unterstützt Cross-Document-Transitions seit Version 18.2 (Dezember 2024), Chrome und Edge seit Version 126 - global sind das rund 83 % Abdeckung (caniuse.com). Firefox zeigt das Feature bisher nur teilweise und ignoriert den @view-transition-Block; dort erfolgt der Seitenwechsel wie gewohnt ohne Animation. Weil es sich um Progressive Enhancement handelt, entsteht dadurch typischerweise kein Nachteil.
Erfahrungsgemäß nicht spürbar. Die Animation läuft auf dem Compositor des Browsers, nicht im Haupt-Thread, und der Basis-Übergang benötigt kein zusätzliches JavaScript. Dauert eine Navigation länger als vier Sekunden, überspringt der Browser die Transition ohnehin automatisch (Chrome for Developers) - schnelle Ladezeiten bleiben also die Grundlage.
Sie navigieren wie bisher - mit dem gewohnten harten Seitenwechsel, ohne Fehler und ohne Ballast. Genau das ist der Kern von Progressive Enhancement: Der Übergang ist ein Zusatz für die passenden Browser, kein Muss. Deshalb lässt sich das Feature ohne Risiko produktiv einsetzen.
Sie können barrierearm umgesetzt werden, wenn Sie die Einstellung prefers-reduced-motion auswerten (MDN Web Docs). Nutzer, die reduzierte Bewegung wünschen, bekommen dann statt großer Zoom- oder Slide-Effekte einen ruhigen, sofortigen Wechsel. Das gehört zu einer sauberen barrierearmen Umsetzung dazu.
Häufig ja, weil sich der Einstieg schrittweise gestalten lässt: Der Basis-Cross-Fade ist mit wenigen Zeilen CSS erledigt, das Produktbild-Morphing kommt danach. Da schnelle, flüssige Seiten die Conversion messbar unterstützen können - im Handel etwa +8,4 % je 0,1 Sekunde (Google/Deloitte) - steht der geringe Aufwand oft in einem guten Verhältnis zum Nutzen.