Skip to content
WebViewGold Vibe Coding to App Store
English
Get WebViewGold

Native feature

Safe area and status bar for vibe-coded apps

Headers under the Dynamic Island and tab bars under the home indicator are the classic design rejection. Per-builder guides with the settings, CSS and status bar calls for your stack.

From $109 one-time per platform, or let our team do it all from $698.

  • Approval guarantee – or money back within 14 days
  • No coding needed
  • One-time payment, free updates
  • 24/7 human support
  • Made in Germany since 2014 · ISO 27001

The system areas your web app shares the screen with

Default: page inside the safe area

On iOS autoAdjustSafeAreaInsets is on, so the WebView starts below the status bar, notch or Dynamic Island. The bar takes statusBarBackgroundColor and statusBarTextColor (white or black), with darkModeStatusBarBackgroundColor and darkModeStatusBarTextColor for dark mode. On Android the color comes from colorPrimaryDark in style.xml and the text from blackStatusBarText.

Edge-to-edge: content behind the status bar

For a full-bleed hero image, map or video, set transparentStatusBar to true and autoAdjustSafeAreaInsets to false on iOS, or TRANSPARENT_STATUS_BAR on Android. From then on your CSS owns the insets: viewport-fit=cover plus env(safe-area-inset-*) on every fixed element.

The home indicator

Bottom bars built in CSS often sit under the iPhone home indicator. Pad them with env(safe-area-inset-bottom), or let WebViewGold add a native strip below the page with bottombar and bottombarBackgroundColor (iPadBottombar for iPads, safe area docs).

Android edge-to-edge

Google Play now requires new apps and updates to target Android 16 (API level 36), where apps can no longer opt out of edge-to-edge: the window extends behind the status and navigation bars and the app must handle the insets. The WebViewGold template keeps up with these platform changes (updates are free), so build from the current version and test the gesture bar area on a real phone.

Which setting fixes which symptom

SymptomiOS (Config.swift)Android (Config.java, style.xml)From your web app
Header hidden under the notch or Dynamic IslandKeep autoAdjustSafeAreaInsets on (default)Keep TRANSPARENT_STATUS_BAR offOnly when edge-to-edge: padding-top: env(safe-area-inset-top)
White status bar above a dark headerstatusBarBackgroundColor = header colorcolorPrimaryDark = header colorstatusbarcolor://R,G,B per page
Clock and battery unreadable in dark modedarkModeStatusBarBackgroundColor, darkModeStatusBarTextColorblackStatusBarText; statusbartextcolor://white at runtimeprefers-color-scheme; on Android also the injected isDarkMode variable
Tab bar under the home indicator or gesture barbottombar + bottombarBackgroundColorNavigation bar color via bottombarcolor://, text via navbartextcolor://padding-bottom: env(safe-area-inset-bottom)
Full-screen video, game or photo viewerhidebars://on: the status bar background turns transparent, the clock stayshidebars://on: status and navigation bars hide; a swipe from the top brings them backhidebars://off when the user leaves the screen

Frequently asked questions

Does WebViewGold handle the notch and Dynamic Island automatically?

Yes, by default. On iOS autoAdjustSafeAreaInsets keeps the page below the status bar area on every device shape, and the bar shows the color you configured. You only handle insets in CSS when you deliberately switch to a transparent status bar.

Can the status bar color change per page?

Yes. Navigate to statusbarcolor://R,G,B from JavaScript (for example statusbarcolor://15,23,42) and WebViewGold recolors the status bar, picks white or black text and adjusts the iOS bottom bar or Android navigation bar. statusbartextcolor://white or statusbartextcolor://black sets the text explicitly.

Why does env(safe-area-inset-top) return 0 in my app?

Either the viewport meta tag lacks viewport-fit=cover, or WebViewGold still places the page inside the safe area (the default), in which case 0 is correct and nothing overlaps. With transparentStatusBar on and autoAdjustSafeAreaInsets off, the values become real.

Three ways to get your app into the stores

Same result, different amount of work on your side. All three come with the approval guarantee and 24/7 human support.

Do it yourself

$109 per platform, one-time

The WebViewGold license: a finished Xcode or Android Studio project. Paste your URL, set name and icon, switch on features, build and submit. Free updates forever.

See plans on the main page

Cloud Builder

$349 per license, one-time add-on

No Mac, no Xcode, no Android Studio: configure in the browser, we build both apps in the cloud and hand them to App Store Connect and the Play Console.

How the Cloud Builder works Try the free demo

Full Service

$698 per platform $798

Send us your URL and icon. Our team configures, builds and delivers your app within 72 hours, white-label, with source projects. Both platforms for $1,158.

Full Service details Powered by WeSetupYourWebViewApp

Winter Sale prices valid until December 31, 2026.

Ready to ship your app?

App Store & Google Play approval guarantee – or your money back within 14 days

Rather hand it over? Full Service: we configure, build and deliver within 72 hours, from $698 per platform. Questions? Chat with us 24/7.

Refunds are granted under the conditions listed in our FAQ: a non-content rejection by Apple and/or Google, claimed within 14 days after purchase.