UI draws under the status and navigation bars #26

Open
opened 2026-09-13 17:06:07 +00:00 by icub3d · 0 comments
Owner

The UI draws underneath the system bars. On the roster screen the "Story" heading sits
behind the status bar, and content at the bottom runs under the navigation bar.

bevy_ui lays out against the full window, and on Android the window includes the
regions the system draws over. Nothing currently accounts for that.

Android reports the insets — the spike's logcat shows
WindowInsets changed: 2560x1600 statusBars:[0,72,0,0] navigationBars:[0,0,0,64] — so
the values are available; they need to reach layout.

Notes

  • This wants to be one place that knows the safe area, not a padding constant sprinkled
    through every screen. src/theme/ already owns the spacing ladder and is the obvious
    home for a safe-area resource the screens read.
  • Insets change at runtime: rotation, keyboard, gesture-navigation versus button
    navigation. Reading them once at startup will look correct on one device and wrong on
    the next.
  • Desktop has no insets and must keep laying out exactly as it does now.

Done when

No UI element is obscured by the status or navigation bar on the tablet, in either
orientation, and desktop layout is unchanged.

The UI draws underneath the system bars. On the roster screen the "Story" heading sits behind the status bar, and content at the bottom runs under the navigation bar. `bevy_ui` lays out against the full window, and on Android the window includes the regions the system draws over. Nothing currently accounts for that. Android reports the insets — the spike's logcat shows `WindowInsets changed: 2560x1600 statusBars:[0,72,0,0] navigationBars:[0,0,0,64]` — so the values are available; they need to reach layout. ## Notes - This wants to be one place that knows the safe area, not a padding constant sprinkled through every screen. `src/theme/` already owns the spacing ladder and is the obvious home for a safe-area resource the screens read. - Insets change at runtime: rotation, keyboard, gesture-navigation versus button navigation. Reading them once at startup will look correct on one device and wrong on the next. - Desktop has no insets and must keep laying out exactly as it does now. ## Done when No UI element is obscured by the status or navigation bar on the tablet, in either orientation, and desktop layout is unchanged.
Sign in to join this conversation.
No description provided.