2025-09-10 23:59:51 +01:00
|
|
|
.hextra-zoom-image-overlay {
|
|
|
|
position: fixed;
|
|
|
|
inset: 0;
|
|
|
|
background: var(--hextra-image-zoom-backdrop, rgba(0, 0, 0, 0.9));
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: center;
|
|
|
|
z-index: 9999;
|
|
|
|
opacity: 0;
|
2025-09-11 09:54:35 +01:00
|
|
|
transition: opacity 260ms cubic-bezier(0.2, 0, 0, 1);
|
2025-09-10 23:59:51 +01:00
|
|
|
cursor: zoom-out;
|
2025-09-11 23:00:03 +01:00
|
|
|
overscroll-behavior: contain;
|
|
|
|
touch-action: none;
|
2025-09-11 09:54:35 +01:00
|
|
|
backdrop-filter: blur(var(--hextra-image-zoom-blur, 4px));
|
|
|
|
-webkit-backdrop-filter: blur(var(--hextra-image-zoom-blur, 4px));
|
2025-09-11 23:00:03 +01:00
|
|
|
/* Prevent iOS bounce */
|
|
|
|
position: fixed;
|
|
|
|
overflow: hidden;
|
2025-09-10 23:59:51 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
.hextra-zoom-image-overlay.show {
|
|
|
|
opacity: 1;
|
|
|
|
}
|
|
|
|
|
2025-09-11 09:54:35 +01:00
|
|
|
.hextra-zoom-image-overlay.closing {
|
|
|
|
opacity: 0;
|
|
|
|
transition: opacity 360ms cubic-bezier(0.2, 0, 0, 1);
|
|
|
|
}
|
|
|
|
|
2025-09-10 23:59:51 +01:00
|
|
|
.hextra-zoom-image {
|
|
|
|
border-radius: 8px;
|
2025-09-11 23:00:03 +01:00
|
|
|
box-shadow: 0 18px 80px rgba(0, 0, 0, 0.5);
|
|
|
|
image-rendering: -webkit-optimize-contrast;
|
|
|
|
image-rendering: high-quality;
|
2025-09-11 09:54:35 +01:00
|
|
|
will-change: transform;
|
2025-09-11 23:00:03 +01:00
|
|
|
/* Prevent image selection on mobile */
|
|
|
|
user-select: none;
|
|
|
|
-webkit-user-select: none;
|
|
|
|
-webkit-touch-callout: none;
|
|
|
|
/* Hardware acceleration */
|
|
|
|
transform: translateZ(0);
|
|
|
|
-webkit-transform: translateZ(0);
|
2025-09-10 23:59:51 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
.hextra-zoom-image-overlay.show .hextra-zoom-image {
|
2025-09-11 23:00:03 +01:00
|
|
|
transition:
|
|
|
|
transform 320ms cubic-bezier(0.2, 0.8, 0.2, 1),
|
|
|
|
left 320ms cubic-bezier(0.2, 0.8, 0.2, 1),
|
|
|
|
top 320ms cubic-bezier(0.2, 0.8, 0.2, 1);
|
2025-09-11 09:54:35 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
.hextra-zoom-image-overlay.closing .hextra-zoom-image {
|
2025-09-11 23:00:03 +01:00
|
|
|
transition:
|
|
|
|
transform 340ms cubic-bezier(0.3, 0, 0.2, 1),
|
|
|
|
left 340ms cubic-bezier(0.3, 0, 0.2, 1),
|
|
|
|
top 340ms cubic-bezier(0.3, 0, 0.2, 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Disable transitions during interaction */
|
|
|
|
.hextra-zoom-image-overlay.interacting .hextra-zoom-image {
|
|
|
|
transition: none !important;
|
2025-09-10 23:59:51 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
|
|
.hextra-zoom-image-overlay,
|
|
|
|
.hextra-zoom-image {
|
|
|
|
transition: none !important;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.content img:not([data-no-zoom]) {
|
|
|
|
cursor: zoom-in;
|
|
|
|
}
|
2025-09-11 23:00:03 +01:00
|
|
|
|
|
|
|
/* Loading indicator */
|
|
|
|
.hextra-zoom-image.loading {
|
|
|
|
opacity: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.hextra-zoom-image.loaded {
|
|
|
|
opacity: 1;
|
|
|
|
transition: opacity 200ms ease-in-out;
|
|
|
|
}
|