Skip to content

Commit 17e7532

Browse files
committed
Add view transitions
1 parent bae1daa commit 17e7532

1 file changed

Lines changed: 59 additions & 0 deletions

File tree

www/templates/base.html

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
rel="stylesheet" crossorigin="anonymous">
1313

1414
<script type="module" src="https://unpkg.com/@hotwired/turbo@8.0.4" defer></script>
15+
<meta name="view-transition" content="same-origin">
1516
<script type="module" src="{% static "main.js" %}" defer data-turbo-track="reload"></script>
1617

1718
<!--
@@ -21,6 +22,64 @@
2122
<script defer data-domain="dochub.be" src="https://stats.dochub.be/js/plausible.js" data-turbo-track="reload"></script>
2223

2324
<style>
25+
nav {
26+
view-transition-name: nav;
27+
}
28+
29+
@keyframes fade-in {
30+
from { opacity: 0; }
31+
}
32+
33+
@keyframes fade-out {
34+
to { opacity: 0; }
35+
}
36+
37+
@keyframes slide-from-right {
38+
from { transform: translateX(30px); }
39+
}
40+
41+
@keyframes slide-to-left {
42+
to { transform: translateX(-30px); }
43+
}
44+
45+
@keyframes full-slide-from-right {
46+
from { transform: translateX(100%); }
47+
}
48+
49+
@keyframes full-slide-to-left {
50+
to { transform: translateX(-100%); }
51+
}
52+
53+
::view-transition-old(root) {
54+
animation: 300ms ease-out both full-slide-to-left;
55+
}
56+
57+
::view-transition-new(root) {
58+
animation: 300ms ease-out both full-slide-from-right;
59+
}
60+
61+
@media (min-width: 500px) {
62+
::view-transition-old(root) {
63+
animation: 90ms cubic-bezier(0.4, 0, 1, 1) both fade-out,
64+
300ms cubic-bezier(0.4, 0, 0.2, 1) both slide-to-left;
65+
}
66+
67+
::view-transition-new(root) {
68+
animation: 210ms cubic-bezier(0, 0, 0.2, 1) 90ms both fade-in,
69+
300ms cubic-bezier(0.4, 0, 0.2, 1) both slide-from-right;
70+
}
71+
}
72+
73+
@media (prefers-reduced-motion) {
74+
::view-transition-group(*),
75+
::view-transition-old(*),
76+
::view-transition-new(*) {
77+
animation: none !important;
78+
}
79+
}
80+
81+
82+
2483
a .hover-underline {
2584
text-decoration: underline;
2685
text-decoration-color: transparent;

0 commit comments

Comments
 (0)