Focus Stack
A coil of pills that keeps one item in focus and lets the rest twist away, turned either by a timer or by the page scroll.
@joinui — open-code component registry
Accessible, animated React components for Next.js. Install them with the shadcn CLI, copy the source, or hand the generated prompt to your coding agent.
Install
Join UI is a shadcn-compatible registry. Point the CLI at the @joinui namespace and it resolves dependencies, writes the files and leaves the rest of your codebase alone.
pnpm dlx shadcn@latest add @joinui/<component>Principles
The CLI writes real files into your repository. Read them, edit them, delete the parts you do not need — there is no wrapper package to fight.
Every component page ships a structured prompt with props, accessibility rules and the full source, generated from the same metadata that builds the page.
Keyboard paths, focus management, live regions and reduced-motion fallbacks are part of each component, not a later pass.
Transform and opacity only, listeners scoped to the viewport, and every effect degrading to a static state when motion is turned down.
Namespaced items, resolved dependencies and validated schemas — installable by name or by URL, from any project.
Strict TypeScript with exported prop types. No `any`, no ambient globals, no build-time surprises.
Featured
The components most projects reach for first.
A coil of pills that keeps one item in focus and lets the rest twist away, turned either by a timer or by the page scroll.
A colour-coded step tracker for orders, deployments and onboarding, still at rest and animated only when a step advances.
Catalog
Every category that currently holds at least one component.
Recently added
The most recent additions, newest first.
A coil of pills that keeps one item in focus and lets the rest twist away, turned either by a timer or by the page scroll.
A colour-coded step tracker for orders, deployments and onboarding, still at rest and animated only when a step advances.
For agents
One button copies a structured brief: the stack, the install path, dependencies, every supported prop, the accessibility and motion requirements, and the complete source. Built from the same metadata as the component page, so it can never describe a prop that does not exist.
prompt.txt
Add the <Component> component to my existing Next.js application. Project stack: - Next.js (App Router) - React 19 with Server Components - TypeScript in strict mode - Tailwind CSS v4 with CSS-variable design tokens Requirements: - Install all required dependencies. - Place the component at components/joinui/<component>.tsx. - Use the project's existing `cn` utility … - Respect `prefers-reduced-motion: reduce`. - Do not modify unrelated files.