Skip to content

fix(ui): respect navigation-bar inset on full-screen routes - #15

Merged
jvsena42 merged 1 commit into
mainfrom
fix/nav-bar-padding
Jun 18, 2026
Merged

fix(ui): respect navigation-bar inset on full-screen routes#15
jvsena42 merged 1 commit into
mainfrom
fix/nav-bar-padding

Conversation

@jvsena42

Copy link
Copy Markdown
Owner

Problem

Under enableEdgeToEdge() content draws behind the system bars, and each full-screen route must consume the bars itself. Several screens were cut off by the system navigation bar — most visibly Deck Detail, whose "Start studying" button was drawn behind the nav bar.

Changes

  • DeckDetailScreen — the custom Scaffold bottomBar (the study button) is not auto-inset by Material3, and being a fixed bar it couldn't scroll into view. Added WindowInsets.navigationBars padding. (the reported bug)
  • SettingsScreen, PublishDeckScreen, FriendProfileScreen — these full-screen routes applied statusBars only, so bottom-most actions could sit under the nav bar on 3-button devices. Switched to systemBars (top + bottom), matching OnboardingScreen / StudySessionScreen.

Already correct (verified, untouched)

  • Pager tabs (Home, Decks, Discover, Profile): bottom owned by ShortNavigationBar, which natively consumes the nav inset; statusBars for the top is correct.
  • Paste / Triage / DeckEditor / EditCard / TriageEditCard: Scaffold with topBar only → bottom nav inset auto-applied via innerPadding.

Testing

./gradlew :composeApp:compileDebugKotlin passes. Not yet visually verified on an emulator.

🤖 Generated with Claude Code

Under enableEdgeToEdge() content draws behind the system bars. Several
full-screen routes leaked the bottom navigation bar:

- DeckDetailScreen: the custom Scaffold bottomBar ("Start studying") is
  not auto-inset by Material3 and, being fixed, couldn't scroll into
  view — it rendered behind the nav bar. Apply navigationBars inset.
- Settings / PublishDeck / FriendProfile: applied statusBars only, so
  bottom-most actions could sit under the nav bar on 3-button devices.
  Switch to systemBars to inset top and bottom, matching Onboarding and
  Study.

Pager tabs (ShortNavigationBar consumes the nav inset) and topBar-only
Scaffolds (auto bottom inset via innerPadding) were already correct.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jvsena42
jvsena42 enabled auto-merge June 18, 2026 23:23
@jvsena42
jvsena42 merged commit 9c2ef8c into main Jun 18, 2026
2 checks passed
@jvsena42
jvsena42 deleted the fix/nav-bar-padding branch June 18, 2026 23:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant