Media playlist

Use MediaPlaylist to pair thumbnail-backed media items with a shared playback or media area.

Ready to use
import {MediaPlaylist} from '@primer/react-brand'

Examples

Default

Loading

Component props

MediaPlaylist Required

NameTypeDefaultDescription
childrenReactNodeIncludes one required MediaPlaylist.Heading and one or more items
defaultSelectedIndexnumber0Default selected index for uncontrolled mode
selectedIndexnumberSelected index for controlled mode
onChange(selectedIndex: number) => voidCallback called when selected index changes

MediaPlaylist extends the HTML div element and supports all div props.

MediaPlaylist.Heading Required

NameTypeDefaultDescription
childrenReactNodeVisible playlist heading and accessible label for the playlist items
as'h2' | 'h3' | 'h4' | 'h5' | 'h6''h3'Semantic heading level
idstringOptional custom ID used for the tablist aria-labelledby relationship

MediaPlaylist.Heading renders a visible heading and active item counter.

MediaPlaylist.Item Required

NameTypeDefaultDescription
childrenReact.ReactElement[]Must include ItemHeading, ItemContent, and ItemMedia
thumbnailReactNodeThumbnail media displayed in the playlist item button
classNamestringOptional custom class

MediaPlaylist.ItemHeading Required

NameTypeDefaultDescription
titleReactNodeItem title text
descriptionReactNodeOptional metadata rendered under the title, such as a video duration
childrenReactNodeCustom item heading content when title/description props are not used

MediaPlaylist.ItemHeading renders as a span and extends the Text component, excluding the as prop.

MediaPlaylist.ItemContent Required

NameTypeDefaultDescription
childrenReactNodeItem body content

MediaPlaylist.ItemContent extends the HTML div element and supports all div props.

MediaPlaylist.ItemMedia Required

NameTypeDefaultDescription
childrenReact.ReactElementItem media

MediaPlaylist.ItemMedia extends the HTML div element and supports all div props.