Safari now adapts the top and bottom UI bars based on the background color, which can cause inconsistent behavior especially with modals and full-height menus where background colors shift.
A reliable fix is to control the background at the body level using JavaScript when toggling these elements.
Example: Full-height menu
When the menu toggle is triggered:
- Apply a white background to the <body>
- Set the <main> content opacity to 0
This ensures everything behind the open menu becomes white, which forces Safari’s toolbars to switch to white as well, creating a clean, edge-to-edge
Example: Modals with overlays
If the modal uses a semi-transparent overlay:
- Apply the same body-level styling (white background)
Safari will still limit the scrolling between the top and bottom bars.
Different workaround might he needed for different cases but in nutshell that’s how you get around this stupid liquid issue
I have implemented this here so if you click book now and or open all the items in the menu and scroll (not a full height menu but same concept) when you scroll it gives it the same look apple site menu does.
Can post the JS if need for this if any of the above made sense lol.
https://fynx-detailing.com/