Twin sweep
Cold pass, then working temperature. The drift between them is the record.
KQ-572 · SNAP/CAROUSEL
A carousel on native scroll-snap, so the gesture is the browser's own and the component only decides where it lands. The dot for the settled slide stretches into a pill on snap — a layout animation, so one shape travels and widens rather than a second dot blinking on elsewhere — while the next slide peeks past the edge. Autoplay is a chain of timeouts keyed to the settled index, standing down on hover, on focus inside the carousel and whenever the tab is hidden; the scroller is focusable, Left and Right move a slide, Home and End jump, and the dots carry a roving tabindex.
Slide 1 / 4
One command — the source lands in your repo. Or copy it from the Code tab.
$ pnpm dlx shadcn@latest add @kinetiq/snap-carousel
| Prop | Type | Default | Description |
|---|---|---|---|
| slides | { id: string; content: React.ReactNode }[] | — | Slides, left to right. |
| autoplay | number | — | Milliseconds between advances; omit to disable autoplay. |
| loop | boolean | true | Wrap past the ends. |
| label | string | Carousel | Names the carousel. |
| onIndexChange | (index: number) => void | — | Fires when the settled slide changes. |