Skip to content

Reel

Edit on GitHub
@volvo-cars/css v2.3.0@volvo-cars/react-headless v0.24.7

The reel shows a collection of items that may be scrollable sideways using scrollbars and/or scroll buttons.

Reel anatomy showing slot area, native scrollbar, and scroll buttons

  1. Slot
  2. Native scrollbar
  3. Scroll buttons

The reel component is used for horizontal scrollable content with controls. It always shows partially visible content to indicate what’s coming next.

Reel scrolling animation showing frames moving horizontally

When all content of the reel fits within the viewport, frames are displayed side by side. However, if the reel’s contents exceed the viewport’s width, it becomes scrollable.

Two cards displayed side by side in a non-scrollable reel on a large viewport

2 cards becomes non-scrollable on larger viewport.

Two cards in a scrollable reel on a small viewport

2 cards becomes scrollable on smaller viewports.

The Reel may include scroll buttons and a native scrollbar to provide more visual affordance that the content is scrollable. The more critical the content, the more visual affordance should be provided.

You may use scroll buttons to make it clearer to the user that additional content is available and to provide more ways to navigate.

Reel with scroll buttons positioned below the content area

Scroll buttons should be positioned beneath the reel cards.

Start

In the start state, the left button is disabled and the right button is active, indicating that you can only scroll forward.

Scroll buttons in start state with left button disabled

Mid

In the mid state, both buttons are in their default state, indicating that you can scroll both backward and forward.

Scroll buttons in mid state with both buttons active

End

In the end state, the left button is active and the right button is disabled, indicating that you can only scroll backward.

Scroll buttons in end state with right button disabled

The native scrollbar is positioned beneath the reel cards. On browsers that support overlay scrollbars, the scrollbar becomes visible when interacting with the Reel.

Reel with native scrollbar visible beneath content

Model cards with fewer than three cards in small breakpoint

Model cards with fewer than three cards in sm breakpoint.

Model cards with fewer than three cards in large breakpoint

Model cards with fewer than three cards in lg breakpoint.

Model cards in small breakpoint

Model cards in sm breakpoint.

Model cards in large breakpoint

Model cards in lg breakpoint.

Interior cards in small breakpoint

Interior cards in sm breakpoint.

Interior cards in large breakpoint

Interior cards in lg breakpoint.

Gallery in small breakpoint

Gallery in sm breakpoint.

Gallery in large breakpoint

Gallery in lg breakpoint.

Model selector in small breakpoint

Model selector in sm breakpoint.

Model selector in large breakpoint

Model selector in lg breakpoint.

These are recommended card sizes when designing Reel content. The last frame in the view should always be partially visible.

sm (mobile)md (tablet)lg (desktop)
Small284px288px340px
Medium284px473px496px
Large284px596px1016px

If the content is very important, consider stacking the content instead of using a reel. With a reel or other components that require user interaction to disclose additional content, there’s always a risk that some users will miss the content that’s not visible by default.

Carousels work best when they contain interesting and relevant content presented in a clear context. If the content does not create engagement of a user outside of a carousel, inserting it in the reel will not improve its performance.

When the reel has fewer than 3 cards it will only be scrollable on sm breakpoints. On larger breakpoints both cards are visible and controls are removed.

When using items of varying sizes, ensure that the last item is partially visible across all major breakpoints.

Scroll buttons should always be hidden if all the content already fits on the screen.

Figma - Web Core Library

Storybook - Reel