Square Plan: a loader for working a plan
A dot grid ticks forward, pauses, and steps on or back. A React loader for an AI agent working through and revising a plan.
Installation
Install with the shadcn CLI, or copy the component file. It only needs React.
npx shadcn@latest add https://oxyn.space/r/square-plan.jsonUsage
Updates live with the parameters you set.
import { SquarePlan } from "@/components/square-plan";
export function Thinking() {
return (
<SquarePlan />
);
}Props
| Prop | Type | Default | Description |
|---|---|---|---|
| dotShape | "round"|"square" | "round" | Shape of each dot. |
| dotSize | number | 2.5 | Resting dot size in px. |
| scale | number | 1.5 | How many times larger a dot grows at the peak of the animation. |
| density | number | 11 | Dots across the width of the sheet. |
| size | number | 160 | Width and height of the orb in px. |
| duration | number | 4 | Seconds the plan would take to tick the whole sheet; each move takes its share of that. |
| gap | number | 0.6 | Seconds the full sheet holds before it clears. |
| progress | number | 0.6 | How much of the plan is done, shown as that share of rows ticked. Leave the prop out in code to tick and clear on a loop. |
| minOpacity | number | 0.25 | Opacity of resting dots. Ticked dots are always fully opaque. |
| color | string | "#e4e4e7" | Dot color. |
| paused | boolean | false | Coast to a stop on the current frame without unmounting. Turning it off eases back up to speed. |
| label | string | "Thinking" | Accessible name; the wrapper is role="status". |
| className / style | — | — | Spread onto the wrapper div, along with any other div props. |
Switch states
Square Plan is one of the animations in Dot Square. Use the group when the agent's state changes, and it morphs between them.