---
title: "Component library catalogue (verified 2026-09-16) (components)"
description: "How this was verified: licences were read from the actual LICENSE/LICENSING.md files, and registry URLs were probed with curl."
canonical: https://void-design.vercel.app/docs/components/catalogue
lastModified: 2026-09-16
---

# Component library catalogue (verified 2026-09-16)

How this was verified: licences were read from the actual `LICENSE`/`LICENSING.md` files, and registry URLs were probed with `curl`. The shadcn registry index (`https://ui.shadcn.com/r/registries.json`) lists 344 namespaces. This is an engineering summary, not legal advice.

**Legend**
- **Tier:** T0 static · T1 CSS animated · T2 JS/motion · T3 canvas 2D · T4 WebGL (see SKILL.md).
- **A11y:** ●●● WAI-ARIA-grade · ●● mostly semantic · ● decorative, little ARIA · ○ none or broken.
- **RM:** reduced-motion handling as measured on the live registry.
- **Use as:** `depend` (npm), `vendor` (copy MIT source + notice, then fix), `clean-room` (read for technique, write your own), `reference` (look only).

## 1. Behaviour primitives (depend on these; style with tokens)

| Library | Licence | Install | Best for | A11y | Maintenance | Notes |
|---|---|---|---|---|---|---|
| **Base UI** `@base-ui/react@1.8.0` | MIT | npm; shadcn `base` style, `@basecn` | Dialog, Popover, Menu, **Drawer, Toast, Combobox, Autocomplete, OTPField** | ●●● | very active (2026-09-15) | void's default. Animate with `data-starting-style`/`data-ending-style`, `var(--transform-origin)` and `[data-instant]` (`motion` recipes). |
| **Radix** `radix-ui@1.6.7` | MIT | npm | same set, huge ecosystem (shadcn default) | ●●● | slower (2026-08-08) | origin var `--radix-<comp>-content-transform-origin`. Fine if the project already uses it; don't mix with Base UI. |
| **React Aria Components** `react-aria-components@1.21.1` | Apache-2.0 | npm; shadcn `@react-aria` → `react-aria.adobe.com/registry/tailwind-<name>.json` | date/time pickers, i18n, drag-and-drop a11y, touch | ●●●+ | very active | best i18n and touch; heavier; keep NOTICE if vendoring. |
| **Ark UI** `@ark-ui/react@5.39.2` | MIT | npm | multi-framework (React/Solid/Vue/Svelte) | ●●● | very active | zag.js state machines. |
| **sonner** `sonner@2.0.8` | MIT | npm; shadcn `sonner` | toasts | ●● (`aria-live`) | active (2026-08-09) | token-wire it: the shadcn wrapper references `var(--popover)`, which only exists with `shadcn.css` imported. |
| **cmdk** `cmdk@1.1.1` | MIT | npm | ⌘K palettes | ●●● | slow (2025-03) | no open/close animation (keyboard-triggered). ~15 KB. |
| **vaul** `vaul@1.1.2` | MIT | npm | — | ●●● | **unmaintained** (README) | read its source as the reference drawer (drag velocity, `--ease-drawer`); ship Base UI Drawer. |
| **@number-flow/react** `0.6.2` | MIT | npm | animated numbers | ●● | active | handles locale, digit width and RM. Prefer it over any registry ticker. |
| **cobe** `2.0.1` | MIT | npm | rotating globe (T4, ~5 KB) | ● | active | 1 context; Magic UI's globe pins `cobe@^0.6`. |
| **torph** `0.1.3` | MIT | npm | text morphing | ● | new | on Emil Kowalski's recommended list. |
| **GSAP** `gsap@3.15.0` | standard no-charge licence, **all plugins free** (SplitText, ScrollTrigger, Inertia) | npm | agency scroll choreography with pinning | ● | active | licence is no longer an issue; ~25 KB core, ~70 KB with ScrollTrigger + `@gsap/react`, and a second runtime next to motion. Needs a written reason. |
| **ogl** `1.0.11` | Unlicense | npm | full-screen shader quads (10–14 KB) | — | stable | use with the `speed` §8 hook; never three for a quad. |

## 2. Styled registries and effect libraries

| Library | Licence (exact) | Registry URL format | Typical deps → tier | A11y | RM | Maintenance | Best for | Use as |
|---|---|---|---|---|---|---|---|---|
| **shadcn/ui** + blocks | MIT | `npx shadcn add <name>`; blocks `sidebar-07`, `login-03` | Radix or Base UI, lucide, `tw-animate-css` → T0/T1 | ●●● | via tw-animate | very active (`shadcn@4.21.0`) | the baseline: primitives, dashboard/auth blocks, charts | vendor |
| **Magic UI** | MIT ("Copyright (c) Magic UI") | `https://magicui.design/r/<name>.json` (`@magicui`), `.json` optional | `motion`, `cobe`, `canvas-confetti`, `next-themes` → T1/T2; 8 of 78 C2D/GL | ●–●● | **5/78** | very active (2026-09-13) | marquee, terminal, bento, beams, number/text effects | vendor after audit; v4-native (`cssVars.theme` + `css` keys) |
| **React Bits** | **MIT + Commons Clause**: no selling, sublicensing or redistribution "alone, in a bundle, or as a ported version" | `https://reactbits.dev/r/<Name>-<TS\|JS>-<TW\|CSS>.json` (`@react-bits`) | `ogl`, `three` + R3F (+drei, postprocessing), `gsap` (+SplitText/ScrollTrigger/Inertia), `motion`, `face-api.js` → T2–T4 | ● | **3/56 backgrounds** | very active (2026-09-15), ~47k★, 171 comps | hero backgrounds, text effects, cursor toys | **clean-room** in OSS; apps may install it. Add `'use client'` (none of the 171 files have it); WebGL behind `next/dynamic({ ssr:false })`. Plasma is the hygiene reference. Avoid GridScan (face-api ~700 KB), Hyperspeed, LiquidEther and Silk as shipped. |
| **Aceternity UI** | no OSS licence; terms: no redistribution of "the Item … or its source" | `https://ui.aceternity.com/registry/<name>.json` (`@aceternity`); Pro → 401 | `motion`, `three`, `@react-three/*`, `cobe`, `simplex-noise` → T2–T4; 17 of 118 C2D/GL | ○–● | **3/118** | active, no public repo | hero spotlights and beams, 3D cards | **clean-room**. Items ship **no `css`/`cssVars`**, so custom `animate-*` classes are dead on v4. 26 of 118 call `Math.random()` (hydration risk). |
| **Skiper UI** | free tier: "Free to use and modify … Attribution to Skiper UI is required" (comment in every file); Pro $129/$549 | `https://skiper-ui.com/registry/skiperN.json` (old `/r/skiperN.json` also 200), `@skiper-ui`; Pro needs `Authorization: Bearer` → "Missing license key" | `framer-motion`, `lenis`, `gsap`, `swiper`, `@number-flow/react`, `media-chrome`, `use-sound` → T2 | ● | rare | active; 106 comps (37 free), N in 1–107 | scroll set pieces, micro-interactions, "inspired rebuilds" of cursor.com/vercel.com | clean-room (or keep the licence comment in an app). Codemod `framer-motion` → `motion/react`; demos reference unshipped `/images/lummi/*`. |
| **motion-primitives** | MIT (`LICENCE.md`) | `https://motion-primitives.com/c/<name>.json` (429 bot challenge) → `raw.githubusercontent.com/ibelick/motion-primitives/main/public/c/<name>.json` | `motion` only → T2 | ●● | few | active (2026-09-12) | text effects, in-view gate, morphing dialog, tilt, magnetic | vendor; `text-effect` must use `per="word"`. |
| **Animate UI** | **MIT + Commons Clause** ("in their original form") | `https://animate-ui.com/r/<name>.json`, e.g. `components-backgrounds-stars` (`@animate-ui`), 580 items | `motion` (366 items), `radix-ui`, `@base-ui-components/react` (**renamed package**), `@headlessui/react` → T2 | ●● | partial | repo 2025-12-31; registry healthy | animated Radix/Base primitives, animated icons | clean-room; 17 items pull the pre-1.0 Base UI package (duplicate install). |
| **coss ui** (ex-Origin UI) | repo AGPL-3.0; **`apps/ui/` and `apps/origin/` MIT** per `LICENSING.md` | `https://coss.com/ui/r/<name>.json` (`@coss`); legacy `coss.com/origin/r/<name>.json` | `@base-ui/react`, `@headless-tree` → T0 | ●●● | n/a | active (2026-09-08) | Base UI primitives and form controls, ~600 examples | vendor registry items; never Cal.com app code. **Corrects** older notes that called Origin UI AGPL. |
| **kibo-ui** | MIT (`shadcnblocks/kibo`) | `https://www.kibo-ui.com/r/<name>.json` (`@kibo-ui`) | shiki, dnd-kit, TipTap, Sandpack, jotai → T0 | ○–●● | none | slowing (2026-05-04) | dev-tool blocks: `snippet`, `code-block` (RSC), kanban | vendor `snippet`/`code-block/server`; avoid `tree` (zero ARIA), `gantt`, `relative-time`, `editor` (350–500 KB), `sandbox` (1 MB+). |
| **Cult UI** | MIT | `https://www.cult-ui.com/r/<name>.json` (429) → raw GitHub `nolly-studio/cult-ui/main/apps/www/public/r/<name>.json` | `motion`, `react-use-measure` → T2 | ●● | none | 2026-07-22 | texture cards, dynamic island, mock browser | vendor after audit (`direction-aware-tabs` hardcodes `layoutId`). |
| **Tailark** | MIT (`tailark/blocks`); hosted `/r/` blocks 401 | index `https://tailark.com/r/registry.json` (Base UI) + `/r/radix/registry.json`; source `registry/bases/{base,radix}/{dusk,mist,veil}/blocks/*` | `motion`, Base UI or Radix → T1/T2 | ●● | none | 2026-07-29 | **marketing blocks**: 92 heroes, 44 features, pricing, auth | layout reference / vendor from GitHub; skip its `tailwindcss-animate` plugin, `progressive-blur` (8 backdrop layers) and ungated `infinite-slider`. |
| **smoothui** | MIT | `https://smoothui.dev/r/<name>.json` (`@smoothui`), 178 items | `motion` (144), `usehooks-ts` → T2 | ●● | partial | 2026-09-12 | micro-interactions with Emil-adjacent taste | vendor after audit. |
| **Kokonut UI** | MIT | `https://kokonutui.com/r/<name>.json` (`@kokonutui`) | `motion` → T2 | ● | rare | 2026-08-20 | AI-app flourishes, cards | vendor after audit. |
| **Eldora UI** | MIT | `https://eldoraui.site/r/<name>.json` (`@eldoraui`) | `motion` → T2 | ● | rare | 2026-04-18 | Magic-UI-like text and background effects | vendor after audit. |
| **Luxe** | MIT | copy-paste (not in the shadcn index) | Radix, `motion` → T1/T2 | ●● | partial | 2026-09-04 | restrained buttons, inputs, OTP | vendor. |
| **RareUI** | MIT (`swamimalode07/rare-ui`) | `https://www.rareui.com/r/<kebab>.json` (slug ≠ docs slug) | `motion`, raw WebGL → T2/T4 | ● | none | very active (2026-09-15) | orbs, grid reveal, sidebar rail | vendor after audit; FluidOrb = one WebGL context per instance (never in lists); HookSidebar springs `top`/`height`. |
| **opensourceui** | MIT (`bidyut10/opensourceui`) | **no registry**: `raw.githubusercontent.com/bidyut10/opensourceui/main/components/<cat>/<name>.tsx` | clsx, tailwind-merge, lucide → T0 | ●● | n/a | 2026-09-11 | static structure, API contract (`data-slot`, `cn` last), docs search/TOC | vendor; all 207 backgrounds are static. |
| **uiverse.io** | MIT (Copyright 2023 Uiverse.io; `uiverse-io/galaxy`), per-author posts | none (HTML/CSS + Tailwind snippets) | none → T1 | ○–● | rare | site active, repo 2024-09 | CSS-only buttons, loaders, toggles to study | vendor with notice + author credit; usually needs a11y fixes. |
| **ReUI** | MIT (free `registry:ui`); Pro blocks 401 | `https://reui.io/r/<name>.json` | varies | ●● | none | active | tree, data grid | free items only; `scrollspy` and `frame` are broken. |
| **Hover.dev** | proprietary: "may not be redistributed without the written consent of Hover.dev" | none (copy from the site; Pro $49) | `framer-motion` → T2 | ● | rare | active | hover/scroll interaction studies | **reference only**. |
| **21st.dev** | ToS (2026-07-20): view and use "solely through the official 21st.dev platform"; per-author licences | `/r/<author>/<component>` → 403 without auth; official MCP `@21st-dev/magic` needs an API key | varies, often `framer-motion` + v3 config keyframes → T2–T4 | varies | rare | active | **visual search** across authors | reference; if building on an item, follow its author's licence and credit them. |
| **shadcnblocks** (paid) | proprietary | — | — | — | — | — | — | nothing in public repos (also ships a phantom `cn` dependency). |

### Watch list (2026 shadcn index, not audited)

| Namespace | What | Why watch |
|---|---|---|
| `@ai-elements`, `@assistant-ui`, `@prompt-kit`, `@tool-ui`, `@agents-ui`, `@elevenlabs-ui` | AI/agent chat and voice UI | the agent transcript is the 2026 "hero object" |
| `@basecn`, `@diceui`, `@intentui` | Base UI / React Aria component sets | Radix-era alternatives |
| `@lucide-animated`, `@heroicons-animated`, `@hugeicons-animated` | animated icon sets | micro-interactions; check RM first |
| `@motiq` (MIT) | claims "accessible, reduced-motion-safe, RSC-safe" | verify before trusting |
| `@vue-bits`, `@svelte-bits` | React Bits ports | proof the "ported version" clause matters |

## 3. Where to look for what

| Need | Look at (inspiration) | Ship |
|---|---|---|
| Hero backdrop mood | React Bits backgrounds, Aceternity, 21st.dev | `PatternBackdrop` / `AuroraBackdrop` / `HeroSpotlight`; a shader only per `speed` §8 |
| Headline entrance | React Bits SplitText/BlurText, motion-primitives text-effect | `RevealText`, or `motion` §10 masked lines |
| Logo wall | Magic UI marquee | `Marquee` |
| Feature grid flourish | React Bits SpotlightCard, Magic UI magic-card, Aceternity card-spotlight | `SpotlightCard` (one grid) |
| "Recommended" plan | Magic UI border-beam / shine-border | `BeamBorder` |
| Stats | Magic UI number-ticker | `@number-flow/react` or `NumberTicker` |
| Marketing blocks (hero, pricing, FAQ) | Tailark GitHub, shadcn blocks, coss ui | template primitives + `website` section archetypes |
| Scroll set pieces | skiper-ui, hellohello-style sites | `motion` §5–6 (`view()` timelines, one `useScroll`) |
| Button/loader micro-interactions | uiverse.io, smoothui, Hover.dev | `motion` recipes |
| Dev-tool UI (code, terminal, file tree) | kibo-ui, Magic UI terminal | kibo `code-block/server`, `@headless-tree/react` |
| Agent/chat UI | `@ai-elements`, `@assistant-ui` | vendor after audit |

## 4. Weight reference (gzip)

`motion` component +46 KB, `LazyMotion` + `m` + `domAnimation` +32 KB (measured on Next 16.3.5) · `gsap` ~25 KB, ~70 KB with ScrollTrigger + react · `three` 140–160 KB (+R3F 40–50, drei 15–60, postprocessing 50–70) · `ogl` 10–14 KB · `cobe` ~5 KB · `lenis` ~10 KB + permanent rAF (don't) · `swiper` ~40 KB (use embla) · `face-api.js` ~700 KB (ban) · `cmdk` ~15 KB · `thinking-orbs` 7.5 KB (shared-clock canvas done right).
