Skip to content

Registry

npx shadcn add

Every block and page is published as a shadcn registry item, so the tool you already use can install them. Nothing to sign up for and no key to configure — the registry is public, like the rest of the catalog.

Point your project at it

Add the registry to components.json. The {name} placeholder is filled in by the CLI — leave it exactly as written.

components.json
{
  "registries": {
    "@hoverlab": "https://hoverlab5.netlify.app/r/{name}.json"
  }
}

Then install the design system once, so the tokens every block references actually exist:

terminal
npx shadcn add @hoverlab/hoverlab

That writes the light and dark CSS variables, the radius scale and the icon library into your stylesheet. Skip it and blocks will install fine but render against whatever --primary your project already had.

Or install a whole design system

@hoverlab/hoverlab gives you this site’s own look. If you want a different one, there are 5 named presets — each a complete token set covering colour, corner radius, spacing density and the type ramp, in one install.

terminal
npx shadcn add @hoverlab/preset-console
PresetWhat it reads asSuits
preset-hoverlabWhat this site wears — a green brand over faintly warm neutrals, 12px corners, standard gutters.The catalog as it ships. Start here if you like how the blocks look on this site.
preset-consoleAlmost no chroma anywhere, square corners, tighter gutters and slightly smaller type.Developer tools and anything data-heavy, where colour should mean something rather than decorate.
preset-studioA warm brand over warm neutrals with large corners and generous spacing.Marketing sites and consumer products — the shape that reads as calm rather than capable.
preset-cockpitCool violet accent, small corners, tight gutters, smaller type throughout.Dashboards and admin panels that have to show a lot at once without shouting.
preset-signalHigh-chroma amber on lightly tinted neutrals, at the catalog’s own proportions.Consumer apps and launches — the one that looks least like a developer tool.

These are registry:base items — the same document a shadcn preset code resolves to, published at a URL you can install by name. They are not preset codes: those are minted by ui.shadcn.com/create and only shadcn can issue one, so shadcn apply --preset will not take these. The payload and the effect on your project are the same.

Install one before your blocks, and only one. Each preset replaces the same variables, so a second install overwrites the first rather than merging with it. To adjust one instead of adopting it whole, open the theme generator — it emits the same kind of item from your own values.

Install a block or a page

Items are addressed by the same id the catalog uses, so anything you can open on this site you can install by name.

terminal
npx shadcn add @hoverlab/hero-split
npx shadcn add @hoverlab/saas-landing-page

A page brings its blocks with it. saas-landing-page declares twelve of them as registry dependencies, so one command writes the route and every section it renders.

Item typeCountWhere it lands
registry:block307components/{id}.tsx
registry:page126app/{id}/page.tsx
registry:item1,126your stylesheet, as rules — an effect has no file
path-{slug}11every block in a guided path — no file of its own
preset-{name}5a whole design system — @theme, :root and .dark
registry:base1your stylesheet’s :root and .dark

The path- items are the 11 guided paths, published as packs. Each one is nothing but a list of registry dependencies, so npx shadcn add @hoverlab/path-landing-page writes all 8 blocks of that path in one pass — and a block fixed here is fixed in every pack that references it, because a pack holds no copies. The paths themselves carry the part a registry item cannot: why each block sits where it does.

Blocks land directly in components/, not a nested folder, because pages import them as @/components/{id}. If you already have a file by that name the CLI will ask before overwriting.

From an agent

Once the registry is in components.json, the shadcn MCP server that ships with CLI v4 can search and install from it without you typing a command — ask for a pricing section from the @hoverlab registry and it resolves the item, its dependencies and its install command on its own.

This sits alongside Hoverlab’s own MCP server, which goes further: it searches all four tiers, scaffolds whole templates, and matches a Figma frame against the catalog. Use the shadcn registry when you want the standard tool; use ours when you want the rest of the ladder.

The endpoints

URLWhat it returns
/registry.jsonEvery item — names, types, descriptions, dependencies. No file contents.
/r/{name}.jsonOne item, with its source inlined. This is what the CLI fetches.

Both are CORS-open and cacheable, and neither needs a token. If you would rather not use shadcn at all, the same catalog is available through the public API and npx hoverlab.

Installing an effect

An effect is a class and the rules behind it, not a file, so it installs into your stylesheet rather than into components/. The command is the same as everything else:

terminal
npx shadcn add @hoverlab/btn-gradient

That writes the rules — including any @keyframes and @property the effect needs — straight into the stylesheet your project already has, and prints the markup to paste. There is nothing to import and no dependency to install: effects are CSS, so they work in React, Vue, Svelte or a plain HTML file.

The rules land where the CLI puts CSS, unwrapped by any cascade layer, exactly as the catalog serves them. If your project uses layers and you want the effect inside one, move the block after install — the classes are self-contained and nothing else references them.

What is not in it

Templates are not registry items. A template is a whole project rather than a thing you add to one, and npx hoverlab init already scaffolds it — including the config, the routes and the dependencies a shadcn add has nowhere to put.

Something wrong or missing here? Browse the catalog — every page in it links back to the source it documents.