Control Room
A live monitoring feature grid: a hairline-bordered 2×2 of living data vignettes — a giant odometer-rolling uptime stat, a self-drawing latency chart, a pulsing world map with landing arcs, and a scrolling activity feed — booting in a diagonal stagger from the headline stat, then settling to a low idle intensity. Composed from Tally, Plotter, Mercator, and Wire; panels accept custom children.
The preview is live. The source is Pro.
One purchase, lifetime access: every pro component's source, CLI install with your own registry token, and all future drops.
Installation
CLI
npx shadcn@latest add @crucible/control-roomManual — install dependencies, then copy the source
npm install motionProps
| Prop | Type | Default | Description |
|---|---|---|---|
| heading | string | Optional h2 rendered above the grid. Omitted by default. | |
| description | string | Optional lede under the heading. | |
| panels | ControlRoomPanel[] | the four-vignette monitoring room: headline uptime stat, self-drawing latency chart, pulsing world map, scrolling activity feed | The panels, in grid order. |
| columns | 1 | 2 | 3 | 2 | Grid columns at md and up (always 1 column on mobile). |
| bootStagger | number | 0.5 | Seconds between boot waves. Panels boot diagonally outward from the headline stat — the number lands first, the evidence draws in around it. |
| threshold | number | 0.3 | IntersectionObserver threshold that boots the section. |
| idleIntensity | number | 0.3 | Global activity multiplier (0–1) applied once the boot moment has played: the feed's interval is divided by it and the map's arc frequency is multiplied by it, so the section settles to a quiet hum instead of fighting the page's real CTA. 1 keeps full intensity forever. |
| colors | ControlRoomColors | Per-vignette accent hues (a panel's own accent wins). | |
| borderColor | string | "rgba(255,255,255,0.08)" | Hairline color for the outer border and internal dividers. |
| paused | boolean | false | Render every vignette at its final, static frame — no boot, no loops. |
Also accepts all props of Omit<React.ComponentPropsWithoutRef<"section">, "children"> — they pass through to the underlying element. | |||
Honors prefers-reduced-motion with a designed static fallback, and passes className through.