Crucible

Atlas

Infinite pannable canvas — grab and throw a modulo-tiled grid of cards across an unbounded plane with weighted momentum, a faint coordinate grid that rises only while in motion, velocity parallax, and a soft edge vignette. Arrow-key panning and focusable tiles.

csspro

Installation

CLI

npx shadcn@latest add @crucible/atlas

Props

PropTypeDefaultDescription
itemsReact.ReactNode[]a built-in set of chart platesTile contents. Each node fills one cell; the set repeats forever across the plane.
cellSizenumber180Cell size in px (tiles are square).
gapnumber18Gap between cells in px.
frictionnumber0.92Momentum decay per frame at 60fps — lower stops sooner, higher glides longer. Tuned heavy by default: a table, not ice.
pausedbooleanfalseFreezes the physics loop (drag still pans 1:1).
labelstring"Pannable canvas"Accessible name for the region.
Also accepts all props of React.ComponentPropsWithoutRef<"div">they pass through to the underlying element.

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