One payment of $4.99, yours forever. Use it in unlimited personal and commercial projects; no resale.
React component with TypeScript types — slides in, onChange out
Helix, Wave and Arc layouts: a rising spiral, a ring that breathes on a travelling wave, and a shallow cover-flow arc
The vanilla Web Component with every layout, a demo page, README and license
Attributes & props
Name
Type
Default
Description
<img> children
src, alt, data-title, data-tag
—
Each child image is a slide; title and tag become the caption on the front card.
size
number (px)
220
Card width; the height is 1.32×. The ring scales down to fit narrow containers.
theme
'light' | 'dark'
'light'
Fade colour for distant cards, shadows and the reflection.
autoplay
seconds
0
Advance every n seconds; pauses on hover, focus and drag. 0 = off.
speed
number
1
Snappiness of the spring (and the pace of Wave).
controls
'true' | 'false'
'true'
The prev / next pill with a counter.
label
string
'Photo carousel'
Accessible name of the carousel.
change
event
—
`detail.index` when another photo comes to the front (React: onChange).
preset Pro
'ring' | 'helix' | 'wave' | 'arc'
'ring'
Layout. Free build ships Ring only.
Drag or swipe to spin — release with speed and it coasts, then springs onto the nearest card; tap a side card to bring it forward. A sideways trackpad scroll (or Shift + wheel) spins it too, while a normal vertical scroll still scrolls the page. Arrow keys, Home and End work once it has focus, and screen readers hear each photo as it settles. Pure CSS 3D, no WebGL; it stops animating when it’s at rest or off-screen, and honours reduced motion.