diff --git a/apps/website/assets/css/voyage-layout.css b/apps/website/assets/css/voyage-layout.css index 639ca59..28ae3b2 100644 --- a/apps/website/assets/css/voyage-layout.css +++ b/apps/website/assets/css/voyage-layout.css @@ -490,11 +490,11 @@ html { align-items: center; justify-items: center; text-align: center; - /* Use env() directly for safe area padding */ - padding-top: calc(env(safe-area-inset-top) + clamp(2rem, 8vh, 5rem)); - padding-left: env(safe-area-inset-left); - padding-right: env(safe-area-inset-right); - padding-bottom: calc(env(safe-area-inset-bottom) + clamp(1.25rem, 3vh, 2.5rem)); + /* Safari-compatible safe area padding with fallbacks */ + padding-top: calc(max(env(safe-area-inset-top), 44px) + clamp(2rem, 8vh, 5rem)); + padding-left: max(env(safe-area-inset-left), 0px); + padding-right: max(env(safe-area-inset-right), 0px); + padding-bottom: calc(max(env(safe-area-inset-bottom), 0px) + clamp(1.25rem, 3vh, 2.5rem)); row-gap: clamp(2rem, 6vh, 4rem); } @@ -505,6 +505,14 @@ html { } } +/* iOS-specific padding for hero content */ +@supports (-webkit-touch-callout: none) { + .hero-content { + /* Use larger fallback for Dynamic Island devices */ + padding-top: calc(max(constant(safe-area-inset-top), env(safe-area-inset-top), 59px) + clamp(2rem, 8vh, 5rem)); + } +} + .hero-main { width: min(720px, 100%); margin: 0 auto; diff --git a/apps/website/components/HeroSection.vue b/apps/website/components/HeroSection.vue index d77804e..a31a021 100644 --- a/apps/website/components/HeroSection.vue +++ b/apps/website/components/HeroSection.vue @@ -172,32 +172,59 @@ onMounted(() => { + + +
+
+

Safe Area Fix Test v2

+
+

✅ Using hardcoded fallback: -59px for Dynamic Island

+

✅ Using max() function for reliable fallbacks

+

✅ Supporting both env() and constant()

+

⚠️ Safari bug: env() returns 0 in portrait mode

+ +

Visual Test:

+

🔴 Red should be visible in the notch area

+

📝 This text should be below the notch

+ +

Debug Values:

+

Safe Area Top: checking...

+

Computed Top Padding: checking...

+

Viewport Height: checking...

+

User Agent: checking...

+ +

Workaround Status:

+

Using hardcoded fallback values

+
+ +
+

Try These Tests:

+

1. Rotate to landscape and back to portrait

+

2. Add to Home Screen for PWA mode

+

3. Check if red gradient extends to top

+
+
+ + + + \ No newline at end of file