Skip to content

feat(responsive): make the wallet usable on mobile & tablet#227

Open
deepanshutr wants to merge 2 commits into
mainfrom
feat/responsive-mobile
Open

feat(responsive): make the wallet usable on mobile & tablet#227
deepanshutr wants to merge 2 commits into
mainfrom
feat/responsive-mobile

Conversation

@deepanshutr

Copy link
Copy Markdown
Contributor

The app previously hard-blocked every viewport below 768px with a "Please open the app on a Tab or Larger device" screen (components/Layout.js). This makes it work on phone and tablet.

What changed

  • Unblocked small screens — removed the d-none d-md-block gate and the block screen so the app renders at all widths.
  • Bottom tab bar (components/MobileTabBar.jsx) for < xl: 5 primary tabs (Transact/Stake/Vote/Bridge) + a "More" sheet holding the rest (Trade/Earn/Farm + external links). Active state tracks the route; iOS safe-area handled. The desktop top nav is unchanged at xl+; Connect stays visible in the mobile header.
  • Natural mobile flow — the desktop shell uses a fixed-viewport-height layout where each section scrolls on its own; below lg that's relaxed so the page flows and scrolls normally and sections stack.
  • All 7 pages reflow — the hard-coded col-8/col-4 two-column layouts become col-12 col-lg-8 / col-12 col-lg-4, stacking on phone/tablet and splitting at lg+.
  • Data tables (validators, proposals) keep a min-width on mobile and scroll horizontally inside their own container; the page body never scrolls horizontally.

Verified in-browser (Chrome, real dev build)

  • Desktop 1440 — top nav, 3-column Wallet Balances / Send / Receive, everything unchanged. No regression.
  • Mobile 390 — app renders; header (logo + Connect) + bottom tab bar; Transact stacks Send → Receive; Stake validator list renders and the table scrolls horizontally; document.documentElement.scrollWidth === innerWidth (no horizontal page overflow).

Honest remaining polish (follow-up)

  • Per-page fine-tuning on the deeper pages (Vote/Bridge/Trade/Earn/Farm) beyond the column stacking — I verified Transact and Stake in-browser; the others got the same structural fix but a per-page visual pass is worth doing.
  • The mobile data-table UX is horizontal-scroll; a card-per-row treatment would be nicer on a phone (bigger change, deferred).
  • A tablet (768) and a landscape spot-check.

Uses Bootstrap's existing responsive grid/utilities and the app's own SCSS tokens — no new dependencies, no visual-identity change. Not merged; for your review.

- remove the d-none d-md-block gate + 'open on a larger device' screen so
  the app renders at all viewports
- add a bottom tab bar (5 primary + More sheet) for < xl; keep the desktop
  top nav for xl+; Connect stays visible in the mobile header
- relax the fixed-viewport-height shell below lg so pages flow and scroll
  naturally instead of each section scrolling independently
- Transact: stack Send/Receive (col-12 col-lg-8 / col-12 col-lg-4)
Verified: desktop 1440 unchanged; mobile 390 unblocked + stacks.
Same fix as Transact across the remaining pages: the hard-coded col-8/col-4
two-column layouts become col-12 col-lg-8 / col-12 col-lg-4 so they stack
below lg and split at lg+. Data tables (validators/proposals) keep a
min-width on mobile so they scroll horizontally inside their existing
overflow wrapper instead of squishing columns until content clips; the page
body itself never scrolls horizontally (verified).
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