Carousel Mode
modeConfig.carousel controls horizontal browsing behavior for featured content. Use carousel when items are best consumed as a swipeable sequence instead of a dense grid or table.
Shared Behavior
Pagination, search, static filtering, actions, groupings, and gestures work the same as other modes — see the reference pages:
- Content Config: Pagination and Search
- Content Config: Static Filtering
- Content Config: Actions and Interactions
- Content Config: Grouping
- Content Config: Shape for responsive, loading, and error fields
- Action Config for action placement and overflow behavior
Core Examples
Manual Navigation
This version uses fixed item sizing plus visible arrows and indicators.
A standard carousel with explicit item size and visible navigation controls.
const config = {
zones: {
content: {
mode: 'carousel',
modeConfig: {
carousel: {
itemWidth: 280,
itemHeight: 200,
gap: 16,
showIndicators: true,
showArrows: true,
infinite: true,
revolving: true,
autoPlay: false,
dragThreshold: 50,
},
},
item: {
fields: [
{ key: 'title', label: 'Title' },
{ key: 'summary', label: 'Summary' },
{ key: 'status', label: 'Status', renderAs: 'badge' },
],
layout: { type: 'auto' },
},
},
},
};
Auto-Playing Carousel
The controls below show the looping settings and automatic slide advance.
Auto-play with looping enabled, no dot indicators, and auto-sized item height.
const config = {
zones: {
content: {
mode: 'carousel',
modeConfig: {
carousel: {
itemWidth: 260,
itemHeight: 'auto',
gap: 12,
showIndicators: false,
showArrows: true,
infinite: true,
revolving: false,
autoPlay: true,
autoPlayInterval: 3000,
dragThreshold: 40,
},
},
item: {
fields: [
{ key: 'title', label: 'Title' },
{ key: 'summary', label: 'Summary' },
{ key: 'status', label: 'Status', renderAs: 'badge' },
],
layout: { type: 'auto' },
},
},
},
};
Grouping
zones.content.groupings works with carousel mode. Each group renders as a separate labeled carousel with an optional collapse control.
Items grouped by team, each group rendering as its own collapsible carousel.
zones: {
content: {
groupings: [
{
fieldKey: 'team',
collapsible: true,
renderer: (groupValue, count) => `${groupValue} · ${count} items`,
},
],
},
}
See Also
- Carousel Mode Config — full
modeConfig.carouseloptions, caveats, and coverage summary - Content Config
- Action Config
- Grid Mode