Table of Contents
Note

This documentation describes the Carousel Vue component for native UI views for Xml templates see carousel.

Carousel

Displays a collection of items in a paginated, optionally auto-scrolling carousel. Wraps PrimeVue Carousel.

Import

import { Carousel } from '@neos/design-system'

Props

Prop Type Default Description
source unknown[] Required. Array of items to display
pageSize number 1 Number of items visible per page
scrollStep number 1 Number of items to scroll per navigation step
autoScrollInterval number 0 Auto-scroll interval in milliseconds. 0 disables auto-scroll
circular boolean undefined Enable circular navigation (wraps around)
navigationArrows boolean true Show previous/next arrow buttons
paginationIndicators boolean true Show pagination dot indicators

Slots

Slot Scope Description
item { context: item } Template for each carousel item

Usage Examples

<Carousel :source="images" :page-size="1" :circular="true">
  <template #item="{ context }">
    <img :src="context.url" :alt="context.caption" style="width: 100%" />
  </template>
</Carousel>
<Carousel :source="products" :page-size="3" :scroll-step="1">
  <template #item="{ context }">
    <Card>
      <Heading :level="4">{{ context.name }}</Heading>
      <Text>{{ context.price }}</Text>
    </Card>
  </template>
</Carousel>

Auto-scrolling with circular mode

<Carousel
  :source="announcements"
  :auto-scroll-interval="4000"
  :circular="true"
  :navigation-arrows="false"
>
  <template #item="{ context }">
    <Message severity="info">{{ context.text }}</Message>
  </template>
</Carousel>