From f434126c960fedbbb631f5a33b52d93bc319442d Mon Sep 17 00:00:00 2001 From: zv Date: Sat, 13 Jun 2026 22:31:55 +0200 Subject: [PATCH] fix: respect ios safe areas --- app/globals.css | 46 +++++++++++++++++++++- components/forecast/day-forecast-modal.tsx | 4 +- components/layout/app-shell.tsx | 6 +-- 3 files changed, 50 insertions(+), 6 deletions(-) diff --git a/app/globals.css b/app/globals.css index 506dcb9..b24390b 100644 --- a/app/globals.css +++ b/app/globals.css @@ -46,7 +46,7 @@ html { } body { - min-height: 100vh; + min-height: 100dvh; background: hsl(var(--background)); color: hsl(var(--foreground)); -webkit-font-smoothing: antialiased; @@ -89,12 +89,56 @@ select { scrollbar-gutter: stable; } + .app-header-safe { + padding-top: env(safe-area-inset-top); + } + + .app-main-safe { + padding-bottom: calc(7rem + env(safe-area-inset-bottom)); + } + + .mobile-nav-safe { + bottom: calc(0.75rem + env(safe-area-inset-bottom)); + left: calc(0.75rem + env(safe-area-inset-left)); + right: calc(0.75rem + env(safe-area-inset-right)); + } + .modal-overlay { position: fixed; inset: -1px 0 0; + box-sizing: border-box; + height: calc(100dvh + 1px); min-height: calc(100dvh + 1px); background: hsl(var(--foreground) / 0.55); } + + .modal-safe-area { + padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); + } +} + +@media (min-width: 640px) { + @layer utilities { + .modal-safe-area { + padding: + calc(1rem + env(safe-area-inset-top)) + calc(1rem + env(safe-area-inset-right)) + calc(1rem + env(safe-area-inset-bottom)) + calc(1rem + env(safe-area-inset-left)); + } + } +} + +@media (min-width: 1024px) { + @layer utilities { + .modal-safe-area { + padding: + calc(2rem + env(safe-area-inset-top)) + calc(2rem + env(safe-area-inset-right)) + calc(2rem + env(safe-area-inset-bottom)) + calc(2rem + env(safe-area-inset-left)); + } + } } @supports (-moz-appearance: none) { diff --git a/components/forecast/day-forecast-modal.tsx b/components/forecast/day-forecast-modal.tsx index 0d2e85e..3180c9c 100644 --- a/components/forecast/day-forecast-modal.tsx +++ b/components/forecast/day-forecast-modal.tsx @@ -88,7 +88,7 @@ export function DayForecastModal({ {day ? ( -
+
wtr. @@ -35,8 +35,8 @@ export function AppShell({ children }: { children: React.ReactNode }) {
-
{children}
-