---
url: /components/lists/guidelines.md
description: Lists are continuous, vertical indexes of text or images.
---

# Lists

Lists are continuous, vertical indexes of text or images.

[Overview](overview.md) · [Specs](specs.md) · **Guidelines** · [Accessibility](accessibility.md)

![3 list items show different layout options, with varying sizes of elements in the leading slot.](/assets/d8892b5e-miewlynz-01.CzGfYPOD.webp)

Lists can include a range of layout combinations:

1. Leading images, videos, icons, or avatars
2. Trailing text, icons, or icon buttons

## Usage

Lists are vertical groups of text, icons, images, and other elements, optimized for reading comprehension.

List items can contain multiple actions at once, like selection, icon buttons, overflow menus, and more.

![3 list items with avatars using different expressive shapes.](/assets/0173bf11-miewcuoc-02.NpbRd1w1.webp)

A clear visual hierarchy makes lists easy to scan and read

Use lists for communicating or selecting discrete items, such as choosing from a set of colors.

![A list of colors with Periwinkle selected.](/assets/b1c4f250-miewi9tz-03.-t2Y8hlr.webp)

Lists are an organized way to add imagery and supporting elements to selection. In this color selection example, the list contains color swatches, color names, and a checkbox action.

A list should be easy to scan. Any element can be used to anchor and align list item content.

Place supporting visuals and primary text in the same position in each list item.

Don’t vary the position of elements within a list.

![4 versions of the same list highlighting avatar and text alignment.](/assets/66065599-miewmxat-04.CbTxQNr2.webp)

1. Sample list
2. Content placement in a row
3. Supporting visuals are aligned for easy scanning
4. Primary text is aligned for easy scanning

List items can adapt to different lengths of text:

**Label text only<br>**&#x41; list item can contain a single line of label text. If the text doesn’t fit on one line, it can wrap or be truncated.

**Label text with supporting text<br>**&#x41; list item can include supporting text below the label text. Both the label and supporting text can wrap or be truncated.

![3 lists show items with label text only, label text with 1-line of supporting text, and label text with 2-lines of supporting text.](/assets/ac4d0db3-miewpdzm-05.IoPv6nxS.webp)

Three examples of list item sizes:

1. Label text only
2. Label text with supporting text on one line
3. Label text with supporting text that wraps to two lines

## Anatomy

![List diagram with 10 elements.](/assets/ca1dee22-miewsyte-06.CwoRpLni.webp)

Container and label text are required. All other elements are optional:

1. Container
2. Label text
3. Supporting text
4. Trailing text
5. Trailing icon
6. Trailing selection control - checkbox, radio button, switch
7. Leading avatar container
8. Leading avatar text
9. Leading icon
10. Leading media - image or video

### Container

List containers hold all list items and their elements. List item size is determined by the tallest element within the list item. [See layout measurements](specs.md#1824b94d-7d17-4a29-889f-d277037a1313)  

When a list item features an image, consider customizing the container color to use a content-based color scheme. This should be applied to either the enabled state or for an interaction.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fmiewwh4p-GM3%20-%20Expressive%20-%20Guidelines%2007%20-%20v02.mp4?alt=media" aria-label="A song list with a leading images. When selected, a list item’s container matches the image’s color scheme."></video>

A list item can include a leading image and a vibrant color

### Label & supporting text

Keep label text brief.   <br><br>To ensure list items are scannable:

* Limit supporting text to one to three lines
* Truncate supporting text, depending on screen size

[See adaptive guidance](#561cc637-aa43-4055-be1e-0716faeef7af)

![A list item with a leading image, concise label text “Art events”, and 2 lines of truncated supporting text.](/assets/c3da22c2-miex0v5m-08.DAtEqu6g.webp)

Limit supporting text to one to three lines

### Icons

**Leading icon**<br>A leading icon should provide a quick visual cue that relates to the item's label text, helping people scan the list.

**Trailing icon**<br>A trailing icon is often used to communicate status or indicate an action, like **Show more**.

![Leading icons should relate to the label text A list of items with leading and trailing icons on a mobile device.](/assets/44b28ae5-miexc5t2-9.CTxrG5kb.webp)

1. Leading icons should relate to the label text
2. Trailing icons can communicate an action

### Leading media

List items can contain a leading avatar, image, or video. Anchor visuals to the leading edge of the list to improve scannability.

Leading video thumbnails can open a video player or even play within the list.

::: tip Do
![A list of plants with images at leading edge.](/assets/0c355b0b-miexhs7r-10.BqKDSNtf.webp)

Place supporting visuals, like thumbnails, at the leading edge of a row to improve scannability
:::

::: warning Caution
![A list of plants with an image in the middle of the row makes it difficult to align the name and price.](/assets/c0263e9f-miexip9k-11.DM7YgzZZ.webp)

Avoid placing visuals in the center of a row because it makes the list difficult to scan
:::

#### Avatars

List items can include images in circular or expressive shapes to represent a person or entity.

Use square or rectangular images for other content, such as products or videos.

![List of contacts with avatars with a circular, expressive crop to indicate a person.](/assets/696cdbe4-miexkoay-12.BF2A32Lq.webp)

Use an expressive, circular avatar to represent a person or entity

#### Primary & secondary actions

Use spacing to draw attention to the most important aspect of the list item, usually the primary action area or key content.

![A folder icon in the primary action area takes up the full height of the list item.](/assets/53d9ad7f-miexnuvs-13.B30JhAh2.webp)

The primary action takes up more space:

1\. Primary action area

2\. Secondary action area

![A list item has an avatar in the more distinguishing content position on the left, and “15 min” trailing text on the right.](/assets/deb7bc91-miexoaw7-14.DUARz6KV.webp)

Align content by importance:

1\. More distinguishing content

2\. Less distinguishing content

### Trailing text

Trailing text can provide additional meta-information about a list item, such as a price, count, or other details.

![The date “Nov 17” as trailing text in a concert ticket list item.](/assets/c5d73ff2-miextt91-15.CgurxJjO.webp)

Use trailing text for supplemental details, like a price, count, or date

### Selection controls

[Selection](../../foundations/interaction/selection.md "Selection lets users choose specific items to act on.") controls display list item actions. Position controls at the leading or trailing end of a list item:

* Use [checkboxes](../checkbox/overview.md "Checkboxes let users select one or more items from a list, or turn an item on or off.") to select multiple items
* Use [switches](../switch/overview.md "Switches toggle the state of an item on or off.") to toggle settings on or off
* Use [radio buttons](../radio-button/overview.md "Radio buttons let people select one option from a set of options.") to select a single item

![3 lists with different selection controls.](/assets/bbf3336f-miexzfsy-16.CChlnWBa.webp)

List items with: 

1. Checkboxes
2. Switches 
3. Radio buttons

<a id="9e96fd72-5bf3-49df-9baf-e025dcca344d"></a>

### Gaps & dividers

Gaps or dividers can separate lists into items and groups:

* Use **gaps** for contained lists. Gaps leverage expressive shape and containment tactics.
* Limit **dividers** to uncontained or complex lists, only when a stronger visual separation is necessary.

::: tip Do
![Filled list items in an inbox separated by gaps.](/assets/b6c9e049-miezuscb-17_do.DYdeCTj9.webp)

Use **segmented gaps** and filled list items to define a list group
:::

::: warning Caution
![An uncontained list with city names separated by dividers.](/assets/7f0251e2-miezvi6d-18caution.DC7flODN.webp)

Limit the use of **dividers** to uncontained lists
:::

<a id="561cc637-aa43-4055-be1e-0716faeef7af"></a>

## Adaptive design

### Line length

In fluid [layouts](../../foundations/layout/layout-overview/overview.md "Layout is the visual arrangement of elements on the screen."), avoid excessively long lines of text when expanding containers and text-heavy components. This often means changing [margins](../../styles/spacing/overview.md#753cb18a-b6ba-4727-87b3-cb1b7b497a9a "Margins are the spaces between the edge of a nested element and its parent element, such as the space between a button's label text and the edge of its container.") and typography properties as the container scales.

::: tip Do
![4 list items with 2-line supporting text have adjusted margins to preserve readability.](/assets/a205e772-miezxs4c-19_do.C0hEblbh.webp)

Adjust margins to create a more comfortable line length for reading
:::

Adapt the width of the list container based on a line’s length, or by switching to a multi-column layout.

::: tip Do
![List items in a 2-column layout, with each item showing text preview.](/assets/a2b8588a-miezzrzc-20_do.DnbrrtKr.webp)

A multi-column layout can help break up content when needed
:::

The ideal line length for text is typically between 40 to 60 characters, but large-screen devices can accommodate up to 120 characters per line. If a line of text is close to 120 characters in length, consider increasing the line height to improve readability .

::: danger Don't
![List items with elongated line length.](/assets/fe292d93-mif01yxf-21_dont.CYY6qhyt.webp)

Don’t scale components without adjusting other affected areas of the screen, such as text length. This can result in line lengths that make reading difficult.
:::

A list with a [compact breakpoint](../../foundations/layout/breakpoints/compact.md "Window widths smaller than 600dp, such as a phone in portrait orientation.") can become part of a two-column layout at an [expanded breakpoint](../../foundations/layout/breakpoints/expanded.md "Window widths 840dp to 1199dp, such as a tablet or foldable in landscape orientation, or desktop."), adjusting the amount of information shown in each list item.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fmif043uk-GM3%20-%20Expressive%20-%20Guidelines%2022%20-%20v02.mp4?alt=media" aria-label="Animation of a list on mobile and the same list adapted into a 2-column layout on desktop."></video>

Reduce the amount of information shown at compact breakpoints

### Adapt list elements & layout

Lists can change their layout to adapt to different [breakpoints](../../foundations/layout/breakpoints/overview.md "Breakpoints are opinionated window sizes where a layout changes to match available space, device conventions, and ergonomics (previously window size classes)."). This affects the size and placement of content.

For example, a list at a compact breakpoint can adjust margins, spacing, or density to better fit an expanded window.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fmif0dffm-GM3%20-%20Expressive%20-%20Guidelines%2023%20-%20v02.mp4?alt=media" aria-label="Photo list on mobile expands to allow larger images and longer descriptions on a tablet."></video>

On larger screens, lists can show more content, like supporting text and larger imagery

### Swap components

Lists are just a compact composition of images, text, and actions. Other components, like cards and carousels, use the same elements but take up more space.   

At larger breakpoints, consider swapping a list to a component with a similar purpose to take advantage of available space.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fmif0fb1t-GM3%20-%20Expressive%20-%20Guidelines%2024%20-%20v02.mp4?alt=media" aria-label="A mobile photo list changes into cards in a larger window."></video>

Information displayed in list items on mobile can change to cards on tablet and desktop

### Compact breakpoints

Lists should extend edge-to-edge in compact windows. Selecting a list item should open a page with the details.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fmif0hg20-GM3%20-%20Expressive%20-%20Guidelines%2025%20-%20v01.mp4?alt=media" aria-label="When opened, a mobile photo list item expands to fill the width of the screen."></video>

On small screens, people can navigate between lists and full-screen detailed views

### Medium & expanded breakpoints

[Medium](../../foundations/layout/breakpoints/medium.md "Window widths from 600dp to 839dp, such as a tablet or foldable in portrait orientation.") and [expanded breakpoints](../../foundations/layout/breakpoints/expanded.md "Window widths 840dp to 1199dp, such as a tablet or foldable in landscape orientation, or desktop."), such as tablet and desktop screens, can display primary and secondary content in the same view.

For example, a list and the detailed information can appear side-by-side.

![A larger screen displays list items and a detailed expansion of one item on the same screen.](/assets/3a199c75-mif0jzwl-26.BPjYV0Ve.webp)

On larger screens, a list-detail view can be more appropriate

At a larger breakpoint, a list may transform into a carousel.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fmif0mtl7-GM3%20-%20Expressive%20-%20Guidelines%2027%20-%20v02.mp4?alt=media" aria-label="A photo list with thumbnails in a compact window expands into a carousel with large images in an expanded window."></video>

Lists can transform into carousels in expanded windows

Lists can also show more or less content as they scale up and down in size.

For example, a list item can reveal more content when the component expands.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fmif0onle-GM3%20-%20Expressive%20-%20Guidelines%2028%20-%20v02.mp4?alt=media" aria-label="A list expands from a compact to a medium window. The expanded items show supporting text."></video>

List items reveal supporting text at expanded breakpoints

## Behavior

### List selection modes

The selected state applies to the entire list item. For example, when an item with a checkbox is selected, both the list item and the checkbox show a selected state.

#### Single-select

Lists can feature a single-selection component such as a [radio button](../radio-button/overview.md "Radio buttons let people select one option from a set of options.").

Single-select list items:

* Don’t support multi-actions
* Can’t have secondary nested actions
* Shouldn’t use checkboxes

![A 3-item list with radio buttons, with 1 item selected.](/assets/1d2247e6-mielqxgm-29.AfzNfNvp.webp)

Use radio buttons to allow a single selection in a list

#### Multi-select

Multi-select lists allow for multiple list items to be toggled on.

Multi-select list items:

* Pair well with checkboxes and switches
* Can’t have secondary nested actions
* Shouldn’t use radio buttons

![A 3-item list with checkboxes and 2 items selected.](/assets/42158a90-mielw5u4-30.CTpSSgH-.webp)

Use checkboxes or switches for multi-select lists

<a id="3e45f939-457a-44a8-8551-a2354c521d26"></a>

#### Single-action

In a single-action list, the entire list item performs one action, such as navigating to a new page.

Single-action list items:

* Can’t have secondary nested actions
* Can’t be toggled into a persistent selected state

![A 3-item list where each item is a single tappable area.](/assets/f2914267-mielzpxu-31.B_roJ3ZX.webp)

Use a single-action list for a primary action, like navigation

<a id="db85439b-0e67-43b0-a2dc-61395738af64"></a>

#### Multi-action

Multi-action lists can support multiple nested actions within a list item.

The primary action should take up the majority of the space in the leading and content positions.

Place supplementary actions, like a bookmark or menu, in the trailing position.  

[More on multi-action accessibility](accessibility.md#b69b89a9-7ca0-4249-b25b-2d0c85a41dc0)

![A 3-item song list where each item has 2 trailing icons: a bookmark and overflow menu.](/assets/af018400-miem2107-32.D84MdUWN.webp)

Place supplementary actions in the trailing position of a list item

#### Non-interactive

Non-interactive lists can organize information in a scannable way. They don’t perform any actions and can’t be selected.

![A 3-item non-interactive list showing a historic timeline of space travel.](/assets/c52bf303-miem457u-33.CaQr8y4K.webp)

Use non-interactive lists to make information easy to scan

### List interactions

<a id="90a236ee-b587-4361-8911-34006f25a6f1"></a>

#### Expand & collapse

List items containing other list items can expand and collapse in a folder-like manner, to reveal or hide content. 

Tapping a list item expands it vertically across the entire screen using a container transform transition pattern.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fmiem9cox-GM3%20-%20Expressive%20-%20Guidelines%2034%20-%20v02.mp4?alt=media" aria-label="On a to do list, an item expands, revealing nested child items."></video>

To expand a list item, display a parent-child transition

<a id="01204f7d-ce32-4739-aece-e95db24858c9"></a>

#### Swipe

On Android, list items can reveal buttons on swipe. Use a mix of button styles for visual interest and hierarchy.  

The primary action must be the final end-aligned option. A full swipe triggers this action, clearing the list item and all other actions off-screen. 

Swipeable list items should include alternative ways to access hidden actions, such as a more icon.

[More on swipe accessibility](accessibility.md#32f5115c-b15e-4af6-8c1a-4807bee2bf7a)

![List of recipes with “Fresh baked breads” swiped to reveal a archive icon.](/assets/8dec2d3f-mshq8qm6-35-key03.DSdwmZ8D.webp)

When a list item is swiped, it can be archived or reveal more actions
