Skip to content
Onycx-ui
ESC

Ring Carousel

Browse portraits and headlines around a rotating dashed ring in a pinned scroll section.

Dependencies
gsap
Size
337 lines
Controls
6 controls

Installation

CLI · shadcn registry

npx shadcn@latest add https://ui.onycx.dev/r/ring-carousel.json

1 · Dependencies

npm install gsap

2 · Copy the source

components/onycx/ring-carousel.tsx

Requires React 19 and Tailwind CSS v4. Copy the source from the ring-carousel.tsx tab after tweaking: your values are baked in as the new defaults. Exported image examples use portable sample artwork. Replace it with your own media as needed.

Props

PropTypeDefaultDescription
slidesRingSlide[]—{ word, image, imageAlt? } per slide; the ring turns 360 / slides.length per slide.
calloutsRingCallout[]—{ label, top, left?, right?, align? } boxes placed inside the ring box (lg+ only); they rotate with the ring like the original.
titlestring"Aesthetic Curation"Thin, 0.15em-tracked title with its glowing accent bar; centred on phones, top-right from 768px.
cardLabel / cardTextstring—Static blurred info card shown below 1024px.
stepDistancenumber1000Pinned scroll per slide (px); total pin is n × stepDistance.
scrubnumber1Seconds of smoothing.
accentstring"#ff0000"Ring, ticks, glow, callouts and title bar.