fix: Navigation button overlap and keyboard layout issues #59
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pull Request Title
fix(formplayer): fix navigation button overlap and mobile keyboard layout issues
Type of Change
Component(s) Affected
Related Issue(s)
Closes/Fixes/Resolves:
Related: Closes #7
Description
Summary
Fixed navigation button overlap and mobile keyboard layout issues by implementing a sticky bottom navigation layout with proper scrollable content area.
Changes Made
FormLayout.tsxcomponent with sticky navigation and scrollable content areaSwipeLayoutRenderer.tsxto use new FormLayout component instead of absolute-positioned buttonsApp.tsxto use dynamic viewport height (100dvh) instead of100vhfor mobile keyboard supportindex.cssto remove fixed height constraints from.swipelayout_screenclassRationale / Context
Problem:
Previous/Next navigation buttons were absolutely positioned and floated over form content, blocking form fields. On mobile devices, when the on-screen keyboard appeared, the layout broke and users couldn't scroll to some inputs. The fixed viewport height (
100vh) didn't adapt when the keyboard appeared.Solution:
Implemented a robust MUI-based layout architecture with:
100dvh) that adapts when mobile keyboard appears/disappearsTesting Instructions
Prerequisites
formulus/android/app/src/main/assets/formplayer_dist/Expected Behavior
Test Coverage
Test Results
Manually tested on Android device. Navigation buttons no longer overlap content, and mobile keyboard layout works correctly.
Breaking Changes
If breaking changes, please describe:
Migration Steps:
Documentation Updates
Files Updated:
New Documentation:
Screenshots / Videos
Before
Navigation buttons floated over form content using absolute positioning. On mobile, keyboard appearance broke the layout.
After
Navigation buttons are in a sticky bottom bar that never overlaps content. Layout adapts correctly when keyboard appears.
Screen.Recording.2025-12-10.at.15.01.49.mov
Performance Impact
Details:
Security Considerations
Details:
Checklist
Code Quality
Testing
Linting & Formatting
npm run lint/go fmt/ etc.)Git & PR Standards
main(or target branch)Documentation
Review Readiness
Additional Notes
The FormLayout component is designed to be reusable for other form layouts in the future. It follows MUI best practices and provides a clean, maintainable solution for form navigation.
Reviewer Notes
Suggested Reviewers:
Priority: