fix: resolve video autoplay and safe area rendering issues
All checks were successful
build-website / build (push) Successful in 1m41s

- Change object-position from center center to center top to anchor video at top edge
- Remove remaining hardcoded fallbacks (59px, 44px) that prevented proper env() values
- Add transition to transform to smooth parallax initialization
- Fixes video autoplay being blocked by repositioning on load
- Fixes safe areas showing background instead of video content
This commit is contained in:
Matt
2025-09-25 15:53:36 +02:00
parent 5de43236c3
commit 0cbaaccea3

View File

@@ -185,9 +185,11 @@ onMounted(() => {
height: calc(100vh + env(safe-area-inset-top, 0px)); height: calc(100vh + env(safe-area-inset-top, 0px));
z-index: 0; /* Base layer for video */ z-index: 0; /* Base layer for video */
pointer-events: none; pointer-events: none;
/* Apply parallax transform using CSS variable */ /* Apply parallax transform using CSS variable - delayed to prevent autoplay issues */
transform: translateY(var(--parallax-offset, 0px)); transform: translateY(var(--parallax-offset, 0px));
will-change: transform; /* Optimization hint */ will-change: transform; /* Optimization hint */
/* Initial state for autoplay compatibility */
transition: transform 0.1s ease-out;
/* Removed contain property to allow extension into safe area */ /* Removed contain property to allow extension into safe area */
} }
@@ -209,12 +211,12 @@ onMounted(() => {
/* iOS specific with dvh and proper env() usage */ /* iOS specific with dvh and proper env() usage */
@supports (-webkit-touch-callout: none) { @supports (-webkit-touch-callout: none) {
.hero-video-container { .hero-video-container {
height: calc(100dvh + max(env(safe-area-inset-top), 59px)); /* Dynamic Island with env() */ height: calc(100dvh + env(safe-area-inset-top, 0px)); /* Dynamic Island */
} }
@media screen and (max-height: 812px) { @media screen and (max-height: 812px) {
.hero-video-container { .hero-video-container {
height: calc(100dvh + max(env(safe-area-inset-top), 44px)); /* Notch with env() */ height: calc(100dvh + env(safe-area-inset-top, 0px)); /* Notch */
} }
} }
} }
@@ -227,7 +229,7 @@ onMounted(() => {
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: cover; object-fit: cover;
object-position: center center; object-position: center top;
/* Force GPU acceleration */ /* Force GPU acceleration */
-webkit-transform: translateZ(0); -webkit-transform: translateZ(0);
transform: translateZ(0); transform: translateZ(0);