---
url: /components/carousel/guidelines.md
description: >-
  Carousels show a collection of items that can be scrolled on and off the
  screen. Contain visual items like images or video, along with optional label
  text.
---

# Carousel

Carousels show a collection of items that can be scrolled on and off the screen. Contain visual items like images or video, along with optional label text.

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

![Carousel items adapting dynamically to device size by shrinking and reducing in number.](/assets/36e0d512-lwusb1kq-1.R4qYN610.webp)

Carousel items adapt dynamically based on breakpoint

## Usage

Carousels display a scrollable list of items. Carousel items emphasize visuals, but can also contain brief text that adapts to the item size.

There are four carousel layouts:

* Multi-browse
* Uncontained
* Hero
* Full-screen

All of these layouts can be centered, though center-aligned hero is the most common centered carousel.

Carousels can scroll in two ways:

* **Default**: Standard scrolling. Recommended for uncontained layouts.
* **Snap-scrolling**: Scrolled items snap to the carousel's layout. Recommended for multi-browse, hero, and full-screen layouts

![Contained carousel with a large, medium, and small item. Text is hidden on the small item.](/assets/6816f189-lwusbuoo-2.BeaS1Ypp.webp)

A carousel can contain different sized items

Choose the best carousel layout for your product. Some layouts are more visual-focused, while others are more customizable.

|                               Layout                               |                                           Best used for                                           |
| :----------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------: |
|       [*Multi-browse*](#d95cefa4-53df-45e2-bbb2-3aeeecbe9639)      |                 Browsing many visual items at once (like photos), dynamic designs                 |
|       [*Uncontained*](#96c5c157-fe5b-4ee3-a9b4-72bf8efab7e9)       | Highly-customized or text-heavy carousels, stacked imaged and text, traditional carousel behavior |
|           [*Hero*](#5991f961-79aa-4955-b86e-3e15432108e6)          |                Spotlighting very large visual items (like a movie or featured app)                |
| [*Center-aligned hero*<br>](#a9f8dcde-e5c5-464f-b488-d9ded9ae4a4a) |                                    Centered, large visual items                                   |
|     [*Full-screen*<br>](#ae0f1566-a956-4c4b-b153-d50ee20c32e7)     |                  Vertically-scrolling video or image feeds, immersive experiences                 |

Carousel items must be fully visible on-screen (except for the uncontained layout). When scrolled, items automatically change size and snap into place to maintain the same layout.

::: tip Do
![Multi-browse carousel with all images and text easily legible.](/assets/80bc8da4-lwuscosc-3-do.p4wLieyj.webp)

Set the large carousel item size to ensure the images and text are easy to read and recognize
:::

::: danger Don't
![Multi-browse carousel with a very thin small item, making the image unrecognizable.](/assets/850adb48-lwusd3wu-3-don-t.Bx5F91gM.webp)

Avoid setting carousel items so small that the image isn't recognizable
:::

### Accessibility requirements on scrolling pages

On vertically-scrolling pages, carousels require an accessible way to view all the items without horizontally scrolling. (This requirement doesn't apply to full-screen carousels.)

Material recommends adding a **Show all** button below the carousel, which opens a dedicated vertically-scrolling page of all carousel items.

If the carousel has a header, you can use an arrow icon button instead. 

View the [*accessibility tab*](accessibility.md) for more details and alternate solutions.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flwutlc75-GM3-Components-Carousel-Guidelines-1-v01.mp4?alt=media" aria-label="Carousel on mobile has a &quot;show all&quot; button that opens a page with all carousel items."></video>

Make sure users can scroll vertically through all carousel items

<a id="d95cefa4-53df-45e2-bbb2-3aeeecbe9639"></a>

### Multi-browse

The multi-browse layout is best for browsing many items at once, like photos or event feeds. Snap-scrolling is recommended to ensure items are recognizable and consistently sized.

On larger screens, more large and medium items are visible in this layout.

Avoid using this layout if the carousel items need lots of text or have complicated imagery.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flwutm3x8-GM3-Components-Carousel-Guidelines-2-v01.mp4?alt=media" aria-label="Swiping a multi-browse carousel with snap-scrolling. Items adjust size to fit the layout."></video>

A multi-browse layout has different sized items within the carousel

At [compact breakpoints](../../foundations/layout/breakpoints/compact.md "Window widths smaller than 600dp, such as a phone in portrait orientation."), only show up to three carousel items if they have text.

If you need to show more than three items, make sure the images and content are easy to understand and recognize.

::: warning Caution
![Carousel on a phone. 2 large, 1 medium, and 1 small item are fully visible but thin. The items don't have text.](/assets/66a18385-lwusga4v-6.BGQnDW3l.webp)

At compact breakpoints, only show more than three items if the items are easy to understand and recognize
:::

<a id="96c5c157-fe5b-4ee3-a9b4-72bf8efab7e9"></a>

### Uncontained

The uncontained layout is most similar to a traditional carousel, where items are a single size and flow past the edge of the screen.

Both default scrolling and snap-scrolling work well with this layout.

Since items don't change size, this layout can be customized to show more text or other UI above or below each item without the text being masked or cropped.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flwutpwf6-GM3-Components-Carousel-Guidelines-3-v01.mp4?alt=media" aria-label="Swiping an uncontained carousel with default scrolling. Items scroll to the edge and can stop anywhere."></video>

Carousel items are all the same size in an uncontained layout

### Uncontained multi-aspect ratio

The uncontained multi-aspect ratio carousel has the same layout as the uncontained carousel but contains items of various sizes.

Item widths can range anywhere between 9:16 for min width size to 16:9 for max width.

Only use this carousel layout if the items have various widths.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fmgtvndn1-GM3_Expressive_Carousel_Guidelines%2008_IA_v02.mp4?alt=media" aria-label="Swiping an uncontained carousel with default scrolling. Items scroll to the edge and can stop anywhere."></video>

Carousel items are of various sizes in an uncontained multi-aspect ratio layout

<a id="5991f961-79aa-4955-b86e-3e15432108e6"></a>

### Hero

The hero layout is best for spotlighting content that needs more attention, like movie, shows, or other media thumbnails. It highlights one large image to focus on, while providing a sneak peek of what’s next. 

On larger screens, more large items are visible.

Use snap-scrolling so users can easily cycle through items one at a time.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flwutqti0-GM3-Components-Carousel-Guidelines-4-v01.mp4?alt=media" aria-label="Swiping a hero carousel with snap-scrolling. Items adjust size to fit the layout."></video>

A hero carousel at a compact breakpoint should show one large item and one small item

<a id="a9f8dcde-e5c5-464f-b488-d9ded9ae4a4a"></a>

### Center-aligned hero

When the hero layout is center-aligned, it adds an additional previewed item on the leading edge, making the large carousel item centered.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flwuts7ja-GM3-Components-Carousel-Guidelines-5-v01.mp4?alt=media" aria-label="Swiping a center-aligned hero carousel with snap-scrolling. Items adjust size to fit the layout."></video>

A centered hero carousel has two small carousel items, with a large item centered

<a id="ae0f1566-a956-4c4b-b153-d50ee20c32e7"></a>

### Full-screen

The full-screen layout is best used for immersive experiences like video articles, featured headlines, or items that are visually rich. It can contain text and other UI elements on top of the image.

This layout works best with content that is taller than it is wide, and scrolls vertically. It only works in portrait orientation in compact and [medium breakpoints](../../foundations/layout/breakpoints/medium.md "Window widths from 600dp to 839dp, such as a tablet or foldable in portrait orientation."). Don't use this layout in landscape orientation.

Use snap-scrolling for full-screen layouts. Don't use default scrolling.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flwutt19y-GM3-Components-Carousel-Guidelines-6-v01.mp4?alt=media" aria-label="Vertically swiping a full-screen carousel with snap-scrolling. Items fit edge-to-edge."></video>

Full-screen carousels fill the entire content area of the screen

## Anatomy

![4 elements of a carousel.](/assets/0e9c7c0d-lwushw0z-11.i-Ex2Rhg.webp)

Multi-browse carousel (left) and hero carousel (right):

1. Container
2. Large carousel item
3. Medium carousel item
4. Small carousel item

### Container

The carousel container holds all carousel items. The number of carousel items visible in the container can change based on the carousel [layout](../../foundations/layout/layout-overview/overview.md "Layout is the visual arrangement of elements on the screen.") and [breakpoint](../../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).").

![An empty rectangle representing a carousel container.](/assets/577ead1e-lwusikhn-12.CKw4fa7s.webp)

The carousel container is a rectangle. It can be used in many ways and stretched to any size.

### Carousel items

Carousel items hold content. A carousel item has no fixed width; it changes width depending on the breakpoint or its position in the carousel's layout. There are three dynamic widths an item can be: **large**, **medium**, and **small**.

![3 sizes of carousel items.](/assets/8f85d250-lwusj1ii-13.Bc9chUok.webp)

1. Large carousel item
2. Medium carousel item
3. Small carousel item

Large items have a max width that can be adjusted. This changes how all other large, medium, and small carousel items fit on screen. Large items must remain big enough to be easy to understand and recognize.

Medium items adjust width dynamically to the carousel size and available space. 

Small items have a width range of 40–56dp.

![2 sizes of carousel items for hero layouts.](/assets/b8a0041d-lwusjjti-14.BEGtY56v.webp)

1. Large item
2. Small item

When the large item's max width is narrow enough, more items can be shown on screen at once. At compact breakpoints, this is only recommended for carousels with simple imagery.

![3 sizes of carousel items for multi-browse layouts. 2 large items are visible.](/assets/2c650891-lwuslefr-15.DThvqmkb.webp)

1. Large item
2. Medium item
3. Small item

### Item text (optional)

Carousel items are primarily visual. Item text is optional and should be brief. 

If your carousel items require a lot of text, consider using the **uncontained layout**, which can show more information, or use a series of [cards](../cards/overview.md "Cards display content and actions about a single subject.") instead.

::: warning Caution
![Contained carousel items with 5 lines of content: a title, a description, and a label.](/assets/7715364e-lwusmns4-16.Dle0X10i.webp)

Avoid exceeding two lines of text in carousel items at compact breakpoints unless the background is simple, like a single color
:::

Content within a carousel item can adapt dynamically based on the container and breakpoint. 

Text should always be understandable at each size. Consider adapting the text to use brief labels on smaller carousel items.

![A carousel item at 3 different sizes to show how text changes at each size.](/assets/3940ae4a-lwusqbrm-17.CCyXNQ1y.webp)

1. Large carousel item with the full title and label text
2. Medium carousel item hiding the title text
3. Small carousel item abbreviating the label text

## Adaptive design

As the carousel container size increases, so do the number of carousel items visible at a time.

At [compact breakpoints](../../foundations/layout/breakpoints/compact.md "Window widths smaller than 600dp, such as a phone in portrait orientation."), carousels can comfortably show up to three carousel items at once.

At larger breakpoints, more carousel items are added and scale in size.

Full-screen carousels only ever show one item at once.

![8 carousel items visible at once on a tablet in landscape orientation.](/assets/47a47c88-lwuso0q8-18.BACrYx3k.webp)

Carousels can show more items at once on larger screens

## Behavior

### Scrolling

Carousel items have a parallax effect when they're scrolled.

The **default** scrolling behavior doesn't snap items to a layout grid. They can stop anywhere in the container. Only use this for the uncontained layout.

The **snap-scrolling** behavior aligns carousel items to the layout grid after they're scrolled. Items snap to the grid when released. Use this for multi-browse, hero, and full-screen layouts.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flwutupr4-GM3-Components-Carousel-Guidelines-7-v01.mp4?alt=media" aria-label="Multi-browse carousel with snap-scrolling. Items slot into the layout once scrolled."></video>

Carousel items with snap-scrolling maintain the same layout when released

In full-screen layouts, make sure the carousel items snap to the edges of the carousel container. Avoid letting them scroll freely or stop halfway.

Full-screen layouts must use snap-scrolling.

::: danger Don't
![Full-screen carousel with items stopping halfway off screen once scrolled.](/assets/8611bc37-lwuspl2g-20-don-t.IDHQfan0.webp)

Avoid scrolling freely on full-screen carousels
:::
