crucıble

Rolling Mill

A scroll-scrubbed container rotator with a beveled slab face: a gunmetal plate starts tilted back in 3D perspective and rotates flat while scaling up as it scrolls through the viewport, header text traveling in coordinated motion, cool white edge-light glowing at max tilt and dimming upright, and a neutral reflection band sliding down the plate face with the angle.

motionpro

Installation

CLI

npx shadcn@latest add @crucible/rolling-mill

Manual — install dependencies, then copy the source

npm install motion

Props

PropTypeDefaultDescription
titleReact.ReactNodeHeader content that travels in coordinated motion above the plate.
childrenReact.ReactNodea stat sheetContent rendered on the plate face.
tiltnumber24Backward tilt in degrees at the start of the scroll.
scale[number, number][0.94, 1.05][from, to] scale of the plate across the scroll.
scrollContainerReact.RefObject<HTMLElement | null>Scroll container to track instead of the window. Pass a ref to an internal overflow-y-auto element (this component's own demo does).
heatnumber0.850–1: strength of the edge-light and the reflection band.
colors[string, string][edgeLight, sheen] — the bright edge color and the counter-sheen it dims toward.
Also accepts all props of Omit<React.ComponentPropsWithoutRef<"section">, "title">they pass through to the underlying element.

Honors prefers-reduced-motion with a designed static fallback, and passes className through.