Skip to main content
For pages that display a collection people browse and filter — events, articles, locations, transactions.

Anatomy

  1. Page header — title, description, primary action
  2. Filter bar — search, category filters, sort
  3. Content — a table or a card grid
  4. Pagination
  5. Empty state — for when nothing matches

Layout

Table or card grid

Table

A wide table scrolls inside its own container. It must never push the page sideways — a horizontally scrolling page on a phone is how a reader loses the navigation.

Card grid

Filtering

Empty states

Say what the reader can do, not only that there is nothing here.
Distinguish “no results for this filter” from “nothing here yet”. They need different words and different actions, and showing the first when the second is true reads as a bug.

Loading

Skeletons should match the shape of what is coming, so the layout does not jump when it arrives.