Logo GH

Lists and grids: UX comparison

1) When list, when grid (rule 5 questions)

Ask yourself:

1. User goal: quickly compare parameters (list) or choose by visual/cover (grid)?

2. Data form: structure fields (table/text) → list; visual objects (skins, photos) → grid.

3. Density vs overview: need maximum items per screen (list) or uniform showcase (grid)?

4. Default action: open/details (list) or instant "Play/Buy" from the card (grid)?

5. Device context: mobile portrait - usually a 2-in-a-row grid for cards; reports/tables on desktop - list/table.

Short: compare - list; choose with your eyes - the grid.

2) Content model and IA

row-first-The main signal is text/fields. Suitable for: logs, transaction histories, reports, attribute search results.
Card-first: The main signal is the cover/preview. Suitable for: games/products, media, collections.
Hybrid: "adaptive line cards" (on mobile - a card, on a desktop - a line with columns) with the same data source.

3) Design of elements: row vs card

Row (list row)

Structure: icon/thumbnail (optional), title, 1-3 key fields, meta (date/status), contextual actions (⋮).
Strengths: readability, high density, good sortable set of columns.

UX tips: fix the height; Align to grid hide minor fields in the "reveal."

Grid card

Structure: Cover, Title, Caption/Labels (New/Jackpot), One Main CTA + Extra Action in.... ""

Strengths: Visual choice, quick action, emotional context.
UX-tips: keep aspect-ratio (e.g. 4: 3/1: 1), same heading heights, text clipping with tooltip.

4) Navigation, sorting and filters

General: filters and sorts are nearby and stable (without jumps). Active conditions - chips over results.
List: support many columns + "freeze" headers; sorting by click on the header.
Grid: sorting by drop-down list; filters - by chips/panel. For "visual" search - preview on hover/long-press.

5) Mobile vs desktop

Mobile:
  • Grid: 2-in-a-row (phone), 3-in-a-row (tablet). Large CTAs in the thumb area.
  • List: compact lines (56-72dp), collapsible meta-fields.
Desktop:
  • Grid: 4-6-in-a-row at ≥1200px, auto-fill with 'min' card width.
  • List: table/rows, column resize, quick table search.

6) States and downloads

Skeletons: skeleton lines (minimum 3-5), skeleton cards with cover and text plugs.
Empty: explain why empty and suggest presets/remove filters.
Errors: save user selection and position; give retry.

Reload: "Show more" (hybrid) is preferable to endless tape in catalogs; for logs - you can auto-scroll with "Pause."

7) Performance

Targets: INP ≤ 200ms, CLS ≤ 0.1, scroll-jank <1%.

List: string virtualization, fixed heights, deferred calculations.
Grid: lazy images (AVIF/WebP), 'srcset/sizes', predictable sizes, in "batches" of 20-60 cards.
General: 'content-visibility: auto', preview cache, load priorities for hero elements.

8) Affordability

List: tables with correct semantics ('table/thead/tbody', 'aria-sort'), focus on rows/cells.
Grid: 'role = "grid"' or list with 'role = "list"'; order in DOM = visual; captions for images.
Keyboard: arrows/Tab; Enter - open; Space - "to favorites" (if appropriate).
Click sizes: ≥ 44px; AA contrast; explicit signatures on icons.

9) Metrics and telemetry

Events:
  • `view_switch(list|grid)`, `sort_change`, `filter_apply`, `card_quick_action`,
  • `row_open`, `compare_open`, `results_load_batch`, `error_retry`.
KPI:
  • Time-to-First-Action (TTFA), qCTR results, Scroll Depth, Zero-Result Rate,
  • Compare Rate (for lists), Quick-Action Rate (for grids), Latency p95.

10) A/B experiments (what to test)

Default view (list/grid) for new/returnees.
Number of items per screen, row height, card size.
Order of filters/sorting; chips vs sidebar.
Quick actions on the card (icons/text, one vs two CTAs).
Guardrails: INP/CLS, complaints about layout "jumps," Zero-Result growth.

11) Examples for iGaming

Games Lobby (B2C): Grid - Cover + Play/Demo, New/Jackpot Labels, Chip Filters (Provider/Category/Mechanics).
Provider catalog: grid of logos with the number of games; by click - provider's page (inside - also a grid of games).
Reports/Finance (B2B): list/table - NGR/GGR/FTD/CR columns, title fixing, export.
Transaction history: list - dense series, statuses, search by amount/ID/date; Expand string for parts.

Promotions/tournaments: Banner grid with dates and CTAs, sorted by "Going Now/Coming Soon."

12) Flexible switches and personalization

Give the user the "List ↔ Grid" radio button and remember the selection (per user/tenant).

Offer presets of the performance: "Tight," "Usually," "Large."

Contextual logic: for the first time - a grid in the lobby; from search - a list for exact comparison.

13) Antipatterns

Grid without fixed aspect ratio → "dancing" cards and high CLS.
A list with too many columns is a horizontal scroll without need.
Duplication of action buttons both in the card and in the hover with different behavior.
Mixing sorts/filters at each load (breaks focus).
Hidden active filters - users "lose" results.

14) Implementation checklist (step by step)

1. Define whether the screen is selected by visual or attribute comparison.
2. Define the model: list/grid/hybrid; agree IA and data sources.
3. Design a row or card with fixed key zone dimensions.
4. Sorting/filters: visible chips, stable sorting control.
5. Loading/empty/error: skeletons, friendly texts and retry.
6. Performance: lazy/virtualization, 'content-visibility', p95 goals.
7. A11y: semantics, keyboard, contrast, tap-target sizes.
8. Telemetry: TTFA, qCTR, Zero-Result, Latency p95.

9. A/B default view, dimensions, quick actions

10. Select Memory: Keep view mode and last filters.

15) The bottom line

Lists and grids are tools for different tasks.

When attributes and comparison are important, take a list.
When the visual decides and quick actions - take the grid.
Define a goal, capture dimensions and behavior, keep the interface fast and accessible - and users will achieve results in fewer steps, without unnecessary cognitive noise.

Contact

Get in Touch

Reach out with any questions or support needs.We are always ready to help!

Start Integration

Email is required. Telegram or WhatsApp — optional.

Your Name optional
Email optional
Subject optional
Message optional
Telegram optional
@
If you include Telegram — we will reply there as well, in addition to Email.
WhatsApp optional
Format: +country code and number (e.g., +380XXXXXXXXX).

By clicking this button, you agree to data processing.