Spring Carousel
Slides that glide with real weight and settle softly
Create a spring carousel. A horizontal carousel whose slides move with physical weight: each transition uses a spring (stiffness ~320, damping ~32), so the track accelerates, overshoots a hair, and settles, instead of a flat linear slide. Implementation: a clipping viewport (overflow: hidden, fixed width) containing a flex track of full-width slides. Navigation sets an index; the track animates to transform: translateX(-index * slideWidth) with the spring. Prev/next arrow buttons (circular, hairline border) disable at the ends (or wrap, pick one); below, dot indicators where the active dot stretches into a 16px pill in the accent color (width transition 300ms). Extras worth adding: swipe/drag support on touch (drag the track, snap to the nearest slide by offset and velocity on release), keyboard arrows when the carousel has focus, and aria-live='polite' announcing 'Slide 2 of 3'. Under prefers-reduced-motion, switch slides with a crossfade instead of movement. Build the component, not this demo of it. - Ambient motion that IS the component may loop: a drifting background, a marquee, a spinner while something is genuinely loading. - Do not add any timer, interval, loop or script that performs a person's action by itself. No auto-hover, no auto-click, no cycling through states, no pretend submitting, no replaying the interaction on a schedule. - Every state that answers a person waits for a real event from that person. - Placeholder copy and sample content are welcome. Simulated behaviour is not.