Everyday Programmer
Work with Jimmy
Field Notes

Designing a Data-Heavy React Dashboard for Mobile

Responsive dashboards aren't shrunken desktop tables — they're reprioritized information and interaction for a smaller screen and a different context.

3 min readfield notes, react, mobile, design systems
Designing a Data-Heavy React Dashboard for Mobile

The worst mobile dashboards aren't badly coded — they're desktop tables mechanically compressed until nothing fits. Columns get hidden, fonts shrink, and the user pinch-zooms their way to an answer the desktop gets in one glance.

Real responsive design for data-heavy software starts with a different question.

Start with the mobile user's core decision

Ask: what decision does someone make on their phone? On a fleet dashboard, it's rarely "scan 30 columns." It's "is anything broken, and what needs me first?"

That reframes the whole layout. The phone doesn't need the table — it needs the answer.

Summary cards, not compressed tables

The pattern that works:

mobile-pattern.txt
text

Progressive disclosure replaces density. The table still exists — behind a tap, with its own mobile layout — but it's no longer the landing surface.

Mobile filtering and sorting

Desktop filter rows (dropdown, dropdown, datepicker, apply) don't survive 375px. What survives:

  • Bottom-sheet filters with a visible active-count badge
  • Sort as a single control on the primary metric, not a column-header menu with 8 targets
  • Persistent filter chips so users can see and remove active constraints

The details that separate good from broken

Concern

What works

Trends

Sparklines inside cards; full charts on detail views

Touch targets

44px minimum — data rows are links, not hover-tooltips

Loading

Skeletons shaped like the cards, not a global spinner

Live data

Batched updates (see Real-Time Frontends Don't Need to Re-render in Real Time) — a phone ticking every second drains battery and attention

Overflow

Know when horizontal scroll is acceptable (see below)

The reusable rule

For every desktop surface, write down:

  1. The one decision a mobile user needs to make
  2. The minimum data that decision requires
  3. What gets demoted to progressive disclosure

If you can't fill in line 1, the mobile experience will be a compressed desktop table no matter how good the CSS is.

Keep reading

Related articles