SmoothUI
registryfree~200 free MIT motion components + 34 blocks (React, Tailwind, motion/react) by Eduardo Calvo — the strongest free set of AI/agent components (approval, tool call, task list, reasoning, context meter), plus tabs, navbars, carousels, transitions and text effects. Mostly shadcn tokens; most items honour reduced motion.
npx shadcn@latest add @smoothui/<name>SmoothUI (by Eduardo Calvo)
Use it for: AI products first — ai-approval, ai-tool-call, ai-task-list, ai-reasoning, ai-loader,
ai-context-meter, ai-prompt-input are theme-token components with considered motion (the shimmer only runs while
streaming, decisions collapse the alternatives, status rings draw a check). Also the gaps other free sources leave:
a size-matching skeleton-loader, animated-tabs (underline/pill/segment), a shrink/hide-on-scroll
floating-navbar, coverflow-carousel, card-swipe-deck, a four-variant scroll-progress, button-copy.
Don't use it for: stock app primitives (its dialog, select, combobox, pagination duplicate shadcn/Origin UI)
or brand-new visual identity — the creative effects (shaders, dither, ASCII) are fine but OriginKit/React Bits go further.
Install
# @smoothui is in shadcn's built-in registry directory — resolves with no components.json entry
# (the CLI adds "@smoothui": "https://smoothui.dev/r/{name}.json" itself on first install)
npx shadcn@latest add @smoothui/ai-approval @smoothui/animated-tabs
Items land in components/smoothui/<name>/index.tsx (default export), so they never clash with same-named files from
other registries. Direct URLs also work: npx shadcn@latest add https://smoothui.dev/r/<name>.json.
Machine access
https://smoothui.dev/llms-components.json— every component + block with category, tags,animationType(spring/tween/gesture/scroll/none),complexity,hasReducedMotion, dependencies, install command and docs URL.pnpm sync smoothuireads it →catalog/generated/smoothui.json(198 components + 34 blocks).- Registry index
https://smoothui.dev/r/registry.json(201registry:ui+ 35 blocks + 6 themes,tokens,lib,shared,data, askillitem); per itemhttps://smoothui.dev/r/<name>.json. The index also hasai-core(shared AI state + motion presets),cli, the deprecatedai-inputalias and achat-templateblock — not in llms-components.json, so not catalogued. pnpm scan-motion --only smoothuireads every item's source for code-level motion signals.llms.txtwith one line per item; docs athttps://smoothui.dev/docs/components/<name>(blocks: one page per group, e.g./docs/blocks/cta).
Gotchas
-
tokens.jsonand--brand. 66 items pullhttps://smoothui.dev/r/tokens.json(aregistry:theme), which adds--color-brand(defaults to pink,oklch(0.72 0.2 352.53)), asmooth-50…1000grey ramp and blue/green/amber button families. 48 items usebg-brand/text-brand/border-brand(tab underlines, focus rings, stat values, scroll-progress). Add--brand: var(--primary);to:rootinglobals.cssonce and they follow the theme. -
Custom
smooth-Npalette: 5 items style with thesmooth-*ramp instead of shadcn tokens —header-1,inline-testimonials,job-listing-component,pixel-flow-field,smooth-button(and anything that installssmooth-button, e.g.coverflow-carousel's prev/next buttons). Neutral greys, so mostly harmless; check them under coloured themes. -
Hard-coded hex: 25 items contain hex colours (not counting #fff/#000); 10 have three or more —
liquid-metal(38),theme-toggle(15),pixel-brush-canvas(10),ransom-note,wallet-card(7),grid-loader,job-listing-component(5),header-1(4),mac-terminal,unlock-face-id(3).basic-toast,dynamic-island,stats-2andpricing-1use raw Tailwind palette classes (bg-emerald-50,bg-black…) instead. AI status accents (ai-tool-call,ai-task-list,ai-context-meter) are fixed oklch green/amber/red. -
Reduced motion: the
hasReducedMotionflag is accurate when true (132 items) but under-reports — the code handles it in ~213 of 232 items (e.g.coverflow-carousel,dock,border-beamare flagged false but useuseReducedMotion). The catalog takes both: the flag (as areduced-motiontag) and the scan.skeleton-loaderreally doesn't (Tailwindanimate-pulse) — addmotion-reduce:animate-none. -
Relative imports: AI items import
../ai-core; keepcomponents/smoothui/*together.apple-inviteslists@smoothui/dataas an npm dependency, but no such npm package exists (404) — it's the registrydataitem; expect the npm step to fail and add it withnpx shadcn@latest add @smoothui/data. -
floating-navbarisabsolute-positioned (passclassName="fixed"); several blocks import@/components/smoothui/shared(auto-installed). -
Name collisions (29) with other sources — ids stay unique (
smoothui/…), but pick deliberately:name also in prefer dockmagicui, motion-primitives, cult-ui, react-bits magicui / motion-primitives (navigation playbook) border-beammagicui, librariesdev oc/beam-card(librariesdev, theme-tinted)progressive-blurmagicui, motion-primitives motion-primitives scroll-progressmagicui, motion-primitives smoothui for ring/number/segmented variants; magicui for a plain bar code-blockkibo-ui, cult-ui, aceternity, beautifui kibo-ui (shiki, theme-aware) animated-tabscult-ui smoothui (keyboard, three variants) floating-navbaraceternity smoothui (theme tokens, reduced motion) animated-listmagicui, react-bits magicui infinite-slider,text-morph,dialogmotion-primitives motion-primitives ( dialog: stock shadcn first)dynamic-islandcult-ui, aceternity cult-ui (SmoothUI's hard-codes black/white) file-tree,tweet-cardmagicui magicui combobox,contribution-graphkibo-ui kibo-ui magnetic-button,animated-tooltipaceternity smoothui for theme tokens; aceternity for its look animated-input,dither-image,morph-surfacecult-ui compare live orbreact-bits compare live liquid-metal,cursor-image-trailoriginkit (metered) smoothui is free — compare live notification-badgetransitions (recipe) transitions for a CSS-only badge context-menu,cursor-follow,scroll-image-reveal,tilt-cardmotion (examples) different things — Motion's are recipes
Best picks
See ★ entries: grep '★ .*smoothui/' catalog/CATALOG.md. Short list: ai-approval, ai-tool-call, ai-task-list,
ai-reasoning, ai-loader, ai-prompt-input, ai-context-meter, skeleton-loader, animated-tabs,
floating-navbar, coverflow-carousel, card-swipe-deck, scroll-progress, button-copy.