A turning wheel of cards that sweeps into an arc
| Name | Type | Default | Description |
|---|---|---|---|
items | { src: string; alt: string; title?: string; subtitle?: string; href?: string }[] | built-in scene collection | Images for the cards. They repeat when there are more cards than items. Title and subtitle caption the card at the top of the arc; href makes clicking it navigate. |
count | number | 18 | Number of cards around the wheel, up to 72. It is rounded to a whole number of passes through the items so the sequence never jumps. |
defaultView | "ring" | "arc" | "ring" | Start on the whole wheel, or zoomed into the arc at its top. |
spin | number | 8 | Rotation speed of the ring view, in degrees per second. Negative values turn it the other way. |
autoplay | boolean | true | In the arc view, bring the next card to the top every interval seconds. |
interval | number | 3.5 | Seconds between autoplay steps. |
arc | number | 1 | Size of the wheel in the arc view relative to the cards. Larger values flatten the arc and add space between cards; smaller values curve it more tightly. |
apex | number | 0.42 | Vertical position of the top card in the arc view, from 0 (top) to 1 (bottom). |
aspect | number | 0.8 | Card width divided by height. Below 1 is portrait, above 1 is landscape. |
radius | number | 0.07 | Corner rounding as a fraction of the card width. |
gap | number | 0.18 | Space between neighbouring cards as a fraction of their spacing. |
tilt | boolean | true | Lean each card along the wheel. When off, cards stay upright like frames on a Ferris wheel. |
flipWave | boolean | true | Turn the cards over in a wave that runs out from the top when the view changes, and every few seconds in the ring view. |
accentColor | string | "#5227FF" | Colour of the card backs revealed by the flip wave. |
backgroundColor | string | "transparent" | Background of the component. Captions and controls adapt to it. |
captions | boolean | true | Show the title and subtitle of the top card in the arc view. |
controls | boolean | true | Show previous and next buttons with a counter in the arc view. |
draggable | boolean | true | Drag to turn the wheel: around the centre in the ring view, sideways in the arc view, snapping to a card. |
wheel | boolean | true | Scroll to turn the reel: it spins the ring, and in the arc view glides through the cards and settles on the nearest one. Set false to leave page scrolling untouched. |
pauseOnHover | boolean | true | Stop the rotation and autoplay while the pointer is on a card. |
zoomOnClick | boolean | true | Clicking a card in the ring view zooms into the arc with it at the top. Clicking the background or pressing Escape zooms back out. |
paused | boolean | false | Stops rotation, autoplay and the flip wave. Reduced-motion users always get this. |
ariaLabel | string | "Orbit reel…" | Accessible description of the reel and how to use it. |
onViewChange | (view) => void | — | Called when the reel zooms between the ring and the arc. |
onActiveChange | (item, index) => void | — | Called when a different card reaches the top. |
onSelect | (item, index) => void | — | Called when the card at the top of the arc is clicked or Enter is pressed. |
ref | { next, previous, goTo, setView } | — | Imperative controls for stepping, jumping to a card and changing the view. |
children | ReactNode | — | Content centred inside the ring. It fades out when the reel zooms into the arc. |
className | string | — | Classes for the root element. It fills its parent, with a 420px minimum height. |
style | CSSProperties | — | Inline styles for the root element. |
items{ src: string; alt: string; title?: string; subtitle?: string; href?: string }[]Images for the cards. They repeat when there are more cards than items. Title and subtitle caption the card at the top of the arc; href makes clicking it navigate.
built-in scene collectioncountnumberNumber of cards around the wheel, up to 72. It is rounded to a whole number of passes through the items so the sequence never jumps.
18defaultView"ring" | "arc"Start on the whole wheel, or zoomed into the arc at its top.
"ring"spinnumberRotation speed of the ring view, in degrees per second. Negative values turn it the other way.
8autoplaybooleanIn the arc view, bring the next card to the top every interval seconds.
trueintervalnumberSeconds between autoplay steps.
3.5arcnumberSize of the wheel in the arc view relative to the cards. Larger values flatten the arc and add space between cards; smaller values curve it more tightly.
1apexnumberVertical position of the top card in the arc view, from 0 (top) to 1 (bottom).
0.42aspectnumberCard width divided by height. Below 1 is portrait, above 1 is landscape.
0.8radiusnumberCorner rounding as a fraction of the card width.
0.07gapnumberSpace between neighbouring cards as a fraction of their spacing.
0.18tiltbooleanLean each card along the wheel. When off, cards stay upright like frames on a Ferris wheel.
trueflipWavebooleanTurn the cards over in a wave that runs out from the top when the view changes, and every few seconds in the ring view.
trueaccentColorstringColour of the card backs revealed by the flip wave.
"#5227FF"backgroundColorstringBackground of the component. Captions and controls adapt to it.
"transparent"captionsbooleanShow the title and subtitle of the top card in the arc view.
truecontrolsbooleanShow previous and next buttons with a counter in the arc view.
truedraggablebooleanDrag to turn the wheel: around the centre in the ring view, sideways in the arc view, snapping to a card.
truewheelbooleanScroll to turn the reel: it spins the ring, and in the arc view glides through the cards and settles on the nearest one. Set false to leave page scrolling untouched.
truepauseOnHoverbooleanStop the rotation and autoplay while the pointer is on a card.
truezoomOnClickbooleanClicking a card in the ring view zooms into the arc with it at the top. Clicking the background or pressing Escape zooms back out.
truepausedbooleanStops rotation, autoplay and the flip wave. Reduced-motion users always get this.
falseariaLabelstringAccessible description of the reel and how to use it.
"Orbit reel…"onViewChange(view) => voidCalled when the reel zooms between the ring and the arc.
—onActiveChange(item, index) => voidCalled when a different card reaches the top.
—onSelect(item, index) => voidCalled when the card at the top of the arc is clicked or Enter is pressed.
—ref{ next, previous, goTo, setView }Imperative controls for stepping, jumping to a card and changing the view.
—childrenReactNodeContent centred inside the ring. It fades out when the reel zooms into the arc.
—classNamestringClasses for the root element. It fills its parent, with a 420px minimum height.
—styleCSSPropertiesInline styles for the root element.
—