diff --git a/src/mobile/mobile.css b/src/mobile/mobile.css index f75d0c0..c53197c 100644 --- a/src/mobile/mobile.css +++ b/src/mobile/mobile.css @@ -55,8 +55,17 @@ --tap: 48px; /* Android's own insets: the status bar above, the gesture handle below. */ - --inset-top: env(safe-area-inset-top, 0px); - --inset-bottom: env(safe-area-inset-bottom, 0px); + /* A floor, for the same reason as --inset-bottom. Landscape reports the + cutout on the side and the top as 0, but the status bar is still drawn + across the top there — without this the clock sits on the page's own + kicker and the battery icons sit on the floating ⋯. Portrait reports 51 + (the punch-hole included) and keeps it. */ + --inset-top: max(env(safe-area-inset-top, 0px), 24px); + /* A floor, because this WebView reports the bottom inset as 0 while it + reports the top as 51 — and the gesture pill is still drawn down there, + straight across the nav's "Library". A device that reports its own + inset keeps it; only one that reports nothing gets the floor. */ + --inset-bottom: max(env(safe-area-inset-bottom, 0px), 18px); /* landscape moves the cutout and the gesture pill to the SIDES, and viewport-fit=cover puts our content under both */ --inset-left: env(safe-area-inset-left, 0px); diff --git a/src/mobile/shell.css b/src/mobile/shell.css index 57cdeb7..cdf6741 100644 --- a/src/mobile/shell.css +++ b/src/mobile/shell.css @@ -628,7 +628,7 @@ html[data-material="solid"] .card, html[data-material="solid"] .group { backgrou align-items: center; gap: 11px; padding: 0 10px 26px 8px; /* 4 above the lane, 16 of lane, 6 below */ - background: rgba(28, 28, 33, 0.94); + background: #1c1c20; /* opaque for the same reason as .nav */ box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.09), 0 10px 28px -10px rgba(0, 0, 0, 0.9); overflow: hidden; transition: transform var(--m-sheet), opacity 200ms ease; @@ -654,7 +654,9 @@ html[data-material="solid"] .mini { background: #1c1c20; backdrop-filter: none; height: calc(var(--nav-h) + var(--inset-bottom)); padding-bottom: var(--inset-bottom); display: flex; - background: rgba(16, 16, 19, 0.92); + /* opaque: glass is off by default, so there is no blur for an alpha to + sit on — 0.92 here let album titles read through the nav */ + background: #101013; box-shadow: 0 -1px 0 rgba(255, 255, 255, 0.06); transition: transform var(--m-sheet); } @@ -892,7 +894,7 @@ html[data-material="solid"] .nav { background: #101013; backdrop-filter: none; - display: flex; flex-direction: column; border-radius: var(--r-sheet) var(--r-sheet) 0 0; - background: rgba(26, 26, 30, 0.97); + background: #1a1a1e; /* opaque for the same reason as .nav */ box-shadow: 0 -14px 40px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.1); transform: translateY(102%); transition: transform var(--spd-spatial-default) var(--sp-spatial-default);