Skip to content

Conversation

@AugustoL
Copy link
Collaborator

@AugustoL AugustoL commented Jan 14, 2026

Description

Implements mobile-first responsive design for the OpenScan explorer, making the application usable on mobile devices with proper touch targets, navigation, and layout adjustments.

Related Issue

Closes #114

Type of Change

  • Bug fix
  • New feature
  • Documentation update
  • Refactoring
  • Performance improvement
  • Other (please describe):

Changes Made

Phase 1: CSS Foundation

  • Standardized breakpoints (375px, 480px, 768px, 1024px, 1400px)
  • Visibility utilities (.hide-mobile, .show-mobile, etc.)
  • Layout utilities (.mobile-stack, .mobile-full-width)
  • Touch target utilities (44px minimum for WCAG compliance)
  • Responsive grid classes

Phase 2: Mobile Navigation

  • Hamburger menu button (visible on mobile only)
  • Full-screen mobile menu overlay with slide animation
  • Auto-close menu on route change
  • Body scroll lock when menu is open
  • Social links (GitHub, X) moved to mobile menu

Phase 3: Data Tables

  • Horizontal scroll with touch scrolling for tables
  • Minimum table width to prevent content compression
  • Reduced cell padding and font sizes on mobile
  • Aggressive truncation for hash/address cells
  • Smaller method and status badges
  • Touch-friendly pagination buttons
  • Hidden less important columns (Miner, Gas Limit, Size, Gas Price, Gas)

Phase 4: Detail Pages

  • tx-row stacks vertically (label on top, value below)
  • Block/transaction display headers stack on mobile
  • Smaller badges, buttons, and font sizes
  • Transaction logs stack vertically
  • Decoded input sections with compact padding
  • Address page header adjustments
  • Data grids collapse to single column

Other Improvements

  • Footer collapses vertically on mobile
  • Address hashes truncated to 0x1234...5678 format
  • Network card icon overflow fixed
  • Navbar network logo constrained on mobile

Checklist

  • I have run npm run format:fix and npm run lint:fix
  • I have run npm run typecheck with no errors
  • I have run tests with npm run test:run
  • I have tested my changes locally
  • I have updated documentation if needed
  • My code follows the project's architecture patterns

Additional Notes

This PR implements all 4 phases of mobile responsive design, making the explorer fully usable on mobile devices.

AugustoL and others added 12 commits January 13, 2026 12:03
- Update waitForLoad() to wait for blocksHeaderInfo which only appears
  when data is loaded, fixing race condition with loading state
- Use exact regex match for Gas column header to avoid ambiguity with
  Gas Price column
- Add dotenv to load environment variables from .env file
- Inject INFURA_E2E_API_KEY and ALCHEMY_E2E_API_KEY via localStorage
- RPC endpoints are prepended to mainnet for more reliable e2e tests
- Load .env file using dotenv for API keys
- Increase retries: 6 for CI, 3 for local
- Increase workers: 2 for CI (parallel execution)
- Add documentation for RPC API key env vars
- Add waitForNavigationLoad() method to TxsPage
- Wait for loading state to start AND finish after pagination clicks
- Wait for URL changes before checking button states
- Use exact regex match for Gas column to avoid ambiguity
- Wait for either address content or error page
- Pass test if error page shown (RPC flakiness, not test failure)
- Create responsive.css with standardized breakpoints (375px-1400px)
- Add visibility utilities (.hide-mobile, .show-mobile, etc.)
- Add layout utilities (.mobile-stack, .mobile-full-width)
- Add touch target utilities (44px minimum)
- Add responsive grid classes
- Add mobile spacing utilities
- Add navbar hamburger menu foundation styles
- Add scroll container utilities

Part of openscan-explorer#114
…/claude-gh-action

Create claude.yml gh workflow
- Add mobile menu state and hamburger button to Navbar
- Create full-screen mobile menu overlay with slide animation
- Include mobile search, network links, and global navigation
- Auto-close menu on route change
- Lock body scroll when menu is open
- Style mobile menu items with icons and touch targets (44px)
- Add responsive navbar adjustments for smaller screens

Part of openscan-explorer#114
- Stack footer content vertically on mobile
- Hide pipe separators on mobile screens
- Center-align footer links
- Make touch targets larger (36px for social icons)
- Reduce font size on small screens
- Hide 'Report a Bug' link on very small screens

Part of openscan-explorer#114
- Add social links (GitHub, X) to mobile hamburger menu
- Hide footer social icons on mobile (moved to menu)
- Truncate address hash on mobile (show 0x1234...5678)
- Fix network card icon overflow on mobile
- Hide network block logo in navbar on mobile
- Constrain navbar network logo size on mobile
- Reduce network title font size to fit on one line
- Remove top margin from network stats container
- Truncate transaction hashes more aggressively
- Adjust footer padding and link spacing
…st-race-condition

fix(e2e): resolve race condition in txs page tests
@github-actions
Copy link

github-actions bot commented Jan 14, 2026

🚀 Preview: https://pr-151--openscan.netlify.app
📝 Commit: 79a36340c4a9dffbcf774ccc1d088d1183dfce6e

- Add horizontal scroll with touch scrolling for tables
- Set minimum table width to prevent content compression
- Reduce cell padding and font sizes on mobile
- Truncate hash/address cells more aggressively
- Smaller method and status badges on mobile
- Touch-friendly pagination buttons
- Hide less important columns on mobile:
  - Blocks: Miner, Gas Limit, Size
  - Transactions: Gas Price, Gas
- Stack tx-row vertically on mobile (label on top, value below)
- Block/transaction display headers stack on mobile
- Smaller badges, buttons, and font sizes
- Transaction logs stack vertically
- Decoded input sections with compact padding
- Section headers and toggles resized
- Address page header adjustments
- Data grids collapse to single column
- Add vertical padding to dash-table on mobile
@AugustoL
Copy link
Collaborator Author

@claude review this PR

@MatiasOS
Copy link
Member

@MatiasOS MatiasOS self-requested a review January 16, 2026 13:53
Copy link
Member

@MatiasOS MatiasOS left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left some comments previously

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.

feat: Make explorer mobile-friendly and responsive

3 participants