mirror of
https://github.com/immich-app/immich.git
synced 2026-02-04 00:39:15 +03:00
tweak animation - no crossfade by default
This commit is contained in:
@@ -86,7 +86,20 @@
|
||||
--vt-viewer-slide-easing: cubic-bezier(0.2, 0, 0, 1);
|
||||
--vt-viewer-slide-distance: 15%;
|
||||
--vt-viewer-opacity-start: 0.1;
|
||||
--vt-viewer-blur-max: 4px;
|
||||
--vt-viewer-blur-max: 0px;
|
||||
|
||||
--vt-viewer-next-in: slideInRight;
|
||||
--vt-viewer-next-out: slideOutLeft;
|
||||
--vt-viewer-prev-in: slideInLeft;
|
||||
--vt-viewer-prev-out: slideOutRight;
|
||||
--vt-viewer-old-opacity: 0;
|
||||
|
||||
/* For fly (slide+fade): uncomment these and comment above */
|
||||
/* --vt-viewer-next-in: flyInRight; */
|
||||
/* --vt-viewer-next-out: flyOutLeft; */
|
||||
/* --vt-viewer-prev-in: flyInLeft; */
|
||||
/* --vt-viewer-prev-out: flyOutRight; */
|
||||
/* --vt-viewer-old-opacity: 1; */
|
||||
}
|
||||
|
||||
button:not(:disabled),
|
||||
@@ -247,6 +260,7 @@
|
||||
::view-transition-group(letterbox-top),
|
||||
::view-transition-group(letterbox-bottom) {
|
||||
animation-duration: var(--vt-duration-viewer-navigation);
|
||||
animation-timing-function: var(--vt-viewer-slide-easing);
|
||||
z-index: 4;
|
||||
}
|
||||
|
||||
@@ -304,34 +318,75 @@
|
||||
}
|
||||
::view-transition-old(next),
|
||||
::view-transition-old(next-old) {
|
||||
animation: var(--vt-duration-viewer-navigation) var(--vt-viewer-slide-easing) flyOutLeft forwards;
|
||||
animation-name: var(--vt-viewer-next-out);
|
||||
animation-duration: var(--vt-duration-viewer-navigation);
|
||||
animation-timing-function: var(--vt-viewer-slide-easing);
|
||||
animation-fill-mode: forwards;
|
||||
opacity: var(--vt-viewer-old-opacity);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
::view-transition-new(next),
|
||||
::view-transition-new(next-new) {
|
||||
animation: var(--vt-duration-viewer-navigation) var(--vt-viewer-slide-easing) flyInRight forwards;
|
||||
animation-name: var(--vt-viewer-next-in);
|
||||
animation-duration: var(--vt-duration-viewer-navigation);
|
||||
animation-timing-function: var(--vt-viewer-slide-easing);
|
||||
animation-fill-mode: forwards;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
::view-transition-old(previous) {
|
||||
animation: var(--vt-duration-viewer-navigation) var(--vt-viewer-slide-easing) flyOutRight forwards;
|
||||
animation-name: var(--vt-viewer-prev-out);
|
||||
animation-duration: var(--vt-duration-viewer-navigation);
|
||||
animation-timing-function: var(--vt-viewer-slide-easing);
|
||||
animation-fill-mode: forwards;
|
||||
opacity: var(--vt-viewer-old-opacity);
|
||||
}
|
||||
::view-transition-old(previous-old) {
|
||||
animation: var(--vt-duration-viewer-navigation) var(--vt-viewer-slide-easing) flyOutRight forwards;
|
||||
animation-name: var(--vt-viewer-prev-out);
|
||||
animation-duration: var(--vt-duration-viewer-navigation);
|
||||
animation-timing-function: var(--vt-viewer-slide-easing);
|
||||
animation-fill-mode: forwards;
|
||||
opacity: var(--vt-viewer-old-opacity);
|
||||
overflow: hidden;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
::view-transition-new(previous) {
|
||||
animation: var(--vt-duration-viewer-navigation) var(--vt-viewer-slide-easing) flyInLeft forwards;
|
||||
animation-name: var(--vt-viewer-prev-in);
|
||||
animation-duration: var(--vt-duration-viewer-navigation);
|
||||
animation-timing-function: var(--vt-viewer-slide-easing);
|
||||
animation-fill-mode: forwards;
|
||||
}
|
||||
|
||||
::view-transition-new(previous-new) {
|
||||
animation: var(--vt-duration-viewer-navigation) var(--vt-viewer-slide-easing) flyInLeft forwards;
|
||||
animation-name: var(--vt-viewer-prev-in);
|
||||
animation-duration: var(--vt-duration-viewer-navigation);
|
||||
animation-timing-function: var(--vt-viewer-slide-easing);
|
||||
animation-fill-mode: forwards;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
@keyframes slideInLeft {
|
||||
from {
|
||||
transform: translateX(calc(-1 * var(--vt-viewer-slide-distance)));
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes slideInRight {
|
||||
from {
|
||||
transform: translateX(var(--vt-viewer-slide-distance));
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes slideOutLeft {
|
||||
/* No animation needed, instant hide via opacity */
|
||||
}
|
||||
|
||||
@keyframes slideOutRight {
|
||||
/* No animation needed, instant hide via opacity */
|
||||
}
|
||||
|
||||
@keyframes flyInLeft {
|
||||
from {
|
||||
transform: translateX(calc(-1 * var(--vt-viewer-slide-distance)));
|
||||
|
||||
@@ -31,4 +31,5 @@ export const TUNABLES = {
|
||||
IMAGE_THUMBNAIL: {
|
||||
THUMBHASH_FADE_DURATION: getNumber(storage.getItem('THUMBHASH_FADE_DURATION'), 100),
|
||||
},
|
||||
REDUCE_MOTION: getBoolean(storage.getItem('REDUCE_MOTION'), false),
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user