agentleFS
Fractal-TessFractal-Tess/agents/skills/react-bits-pro/SKILL.md

react-bits-pro

Skill1 starsChanged 3 months agoMITView on GitHub

Install and integrate React Bits Pro premium UI components, page-section blocks, and landing-page templates into React/Next.js apps via the shadcn registry CLI with license-key authentication. Use this skill whenever the user wants to add animated components (WebGL/shader backgrounds, GSAP and Motion animations, 3D effects, cursor trails, text animations, cards, carousels, galleries), pre-built page sections (hero, features, pricing, navigation, footer, FAQ, CTA, auth, stats, blog, contact, social proof, about, waitlist, showcase, how-it-works, download, ecommerce, profile, 404), or full landing-page templates. Also use when the user mentions "react bits", "reactbits", "@reactbits-starter", or "@reactbits-pro", or asks for premium animated React components, even if they do not name the library directly.

  • Reads credentials
  • Installs packages

2 other projects use a version of this, 1 of them edited.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

17 rules. About 0 are common, 6 are distinctive, and 11 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈6

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 11

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  • could be automatic: a setting could enforce it
  1. Very specific:

    The license key is a secret: Put it in .env.local, never commit it, never hardcode it.

    line 39
  2. Very specific:

    Never delete the "use client" directive: Every component and block is a client component.

    line 40
  3. Very specific:

    If components.json already has the @reactbits-starter registry, you can also pull this skill into the project as a local file:

    line 68
  4. Distinctive:

    Use it when the user wants to:

    line 79
  5. Distinctive:

    Add React Bits Pro components, blocks, or templates to a project.

    line 81
  6. Very specific:

    Add animated UI (shaders, particles, 3D, WebGL, cursor effects, text/Motion/GSAP animations).

    line 82
  7. Distinctive:

    Do not use it to build generic shadcn/ui primitives (button, dialog, etc.) — those come from the standard shadcn registry, not React Bits …

    line 87
  8. Distinctive:

    Every component exists in two functionally identical variants.

    line 116
  9. Distinctive:

    Use this whenever the project uses Tailwind.

    line 119
  10. Very specific:

    components.json at the project root: If missing:

    line 144
  11. Very specific:

    If missing: npm install clsx tailwind-merge, then create the file above.

    line 157
  12. Very specific:

    Add the key to .env.local at the project root:

    line 168
  13. Very specific:

    Never commit .env.local: Ensure .gitignore includes it (shadcn's init does this by default).

    line 174
  14. Very specific:

    If the CLI cannot find the variable, export it in the shell before running add:

    line 176
  15. Distinctive:

    If you cannot open the file, use this table.

    line 288
  16. Very specific:

    Every component and block begins with "use client".

    line 517
  17. Very specific:

    All are export default. Components described as shader/WebGL/3D/particle render to a canvas — give them a sized parent and consider ssr: …

    line 595

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

React Bits Pro Integration

You are integrating React Bits Pro — a premium, shadcn-compatible registry of 101 animated components, 238 page-section blocks (21 categories), and 11 landing-page templates for React/Next.js apps. Items install as real source files into the user's project; the user owns and can edit them.

This document is the single source of truth. Follow it literally. Where it says "verify," verify — do not guess.


Golden rules (read first, never break these)

  1. Never guess a block's import statement. Block files use a mix of export default and named export styles, and the identifier does not reliably follow the slug (404-3 exports NotFound3; cta-3 exports CTA3 but cta-4 exports Cta4). After installing a block, read its export line and import accordingly. See Importing installed items.
  2. Components use a -tw or -css suffix; blocks use no suffix. silk-waves-tw is a component; hero-1 is a block. Mismatched names return 404.
  3. The license key is a secret. Put it in .env.local, never commit it, never hardcode it.
  4. Never delete the "use client" directive. Every component and block is a client component.
  5. WebGL/shader components need an explicitly sized parent (a container with width and height).
  6. Do not overwrite the user's existing components.json fields — only merge in registries.
  7. Templates are downloads, not CLI installs. They come as .zip files from the website. See Templates.

TL;DR — fastest correct path

# 0. (once) Ensure the project is a shadcn project with the cn() helper.
npx shadcn@latest init            # only if components.json is missing

# 1. Add the license key to .env.local (never commit it):
#    REACTBITS_LICENSE_KEY=rbp...-your-key

# 2. Merge the two registries into components.json (see Step 3 below).

# 3. Install items (components take -tw/-css; blocks take no suffix):
npx shadcn@latest add @reactbits-starter/silk-waves-tw
npx shadcn@latest add @reactbits-pro/hero-1

# 4. Open the installed file, read its `export` line, then import it:
#    components/react-bits/silk-waves.tsx  -> export default  -> import SilkWaves from "@/components/react-bits/silk-waves"
#    components/blocks/hero-1.tsx          -> export function Hero1  -> import { Hero1 } from "@/components/blocks/hero-1"

If components.json already has the @reactbits-starter registry, you can also pull this skill into the project as a local file:

npx shadcn@latest add @reactbits-starter/skill   # writes ./SKILL.md to the project root

When to use this skill

Use it when the user wants to:

  • Add React Bits Pro components, blocks, or templates to a project.
  • Add animated UI (shaders, particles, 3D, WebGL, cursor effects, text/Motion/GSAP animations).
  • Drop in pre-built page sections (hero, pricing, features, navigation, footer, FAQ, CTA, etc.).
  • Assemble a landing page quickly from premium blocks.
  • Mention "react bits", "reactbits", "@reactbits-starter", or "@reactbits-pro".

Do not use it to build generic shadcn/ui primitives (button, dialog, etc.) — those come from the standard shadcn registry, not React Bits Pro.


Architecture overview

React Bits Pro ships through the shadcn registry protocol over two license-authenticated registries:

RegistryContainsInstall prefix
@reactbits-starter101 animated components (each in 2 variants)@reactbits-starter/<slug>-tw or -css
@reactbits-pro238 page-section blocks (21 categories)@reactbits-pro/<slug>

This installation has the Ultimate tier, so every component, block, and template is available.

Items are written into the codebase as editable source files — they are not npm packages.

Three product types — do not confuse them

TypeSourceSuffixDelivery
Component@reactbits-starter-tw / -css (required)shadcn CLI
Block@reactbits-prononeshadcn CLI
Templatewebsite downloadn/a.zip download (login required)

Component variants (-tw vs -css)

Every component exists in two functionally identical variants. Pick exactly one per install.

  • -tw (Tailwind) — styles via Tailwind utility classes and the cn() helper. Default choice. Use this whenever the project uses Tailwind.
  • -css (vanilla CSS) — ships a co-located .css file, no Tailwind required. Use only when the project does not use Tailwind.

Blocks have no variants — they are Tailwind-only, single-file.

Where files are installed

Paths follow the user's components.json aliases (and src/ dir if present). With defaults:

ItemOn-disk pathImport alias
Component (-tw)components/react-bits/<slug>.tsx@/components/react-bits/<slug>
Component (-css)components/react-bits/<slug>.tsx + <slug>.css@/components/react-bits/<slug>
Blockcomponents/blocks/<slug>.tsx@/components/blocks/<slug>
Skill file./SKILL.md (project root)n/a

The shadcn CLI auto-installs each item's npm dependencies and any registry dependencies.


Step 1 — Verify prerequisites

Confirm the project has all of the following before installing:

  1. components.json at the project root. If missing:
    npx shadcn@latest init
  2. The cn() helper at lib/utils.ts (required by every -tw component):
    import { clsx, type ClassValue } from "clsx";
    import { twMerge } from "tailwind-merge";
    
    export function cn(...inputs: ClassValue[]) {
      return twMerge(clsx(inputs));
    }
    If missing: npm install clsx tailwind-merge, then create the file above.
  3. Tailwind CSS configured (for -tw components and all blocks). Tailwind v4 is strongly recommended — many blocks use v4-renamed utilities such as bg-linear-to-br (the v3 name is bg-gradient-to-br).
  4. A valid license key. The user must have purchased a React Bits Pro plan. If they have not set one up, ask them for it (or point them to https://pro.reactbits.dev/pricing).

Step 2 — Configure the license key

Add the key to .env.local at the project root:

REACTBITS_LICENSE_KEY=rbpu-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  • Never commit .env.local. Ensure .gitignore includes it (shadcn's init does this by default).
  • The shadcn CLI reads this value to fill the ${REACTBITS_LICENSE_KEY} placeholder in components.json.
  • If the CLI cannot find the variable, export it in the shell before running add:
    export REACTBITS_LICENSE_KEY=rbpu-...
  • This license is the Ultimate tier (prefix rbpu-), which unlocks everything.

Step 3 — Configure components.json

Merge the registries object into the existing components.json. Add only this key — do not touch $schema, style, tailwind, aliases, or any other existing field.

{
  "registries": {
    "@reactbits-starter": {
      "url": "https://pro.reactbits.dev/api/r/starter/{name}.json",
      "headers": {
        "Authorization": "Bearer ${REACTBITS_LICENSE_KEY}"
      }
    },
    "@reactbits-pro": {
      "url": "https://pro.reactbits.dev/api/r/pro/{name}.json",
      "headers": {
        "Authorization": "Bearer ${REACTBITS_LICENSE_KEY}"
      }
    }
  }
}

The {name} token is replaced by the slug you pass to add. ${REACTBITS_LICENSE_KEY} is read from the environment / .env.local. Configure @reactbits-starter even if you only plan to use blocks — it is also how you install this skill file.


Step 4 — Install items

Components require a -tw or -css suffix. Blocks take no suffix.

# Component — Tailwind variant (default choice)
npx shadcn@latest add @reactbits-starter/silk-waves-tw

# Component — vanilla-CSS variant (non-Tailwind projects only)
npx shadcn@latest add @reactbits-starter/silk-waves-css

# Block
npx shadcn@latest add @reactbits-pro/hero-1

# Several at once (components + blocks can be mixed)
npx shadcn@latest add @reactbits-starter/silk-waves-tw @reactbits-starter/animated-list-tw @reactbits-pro/hero-1 @reactbits-pro/pricing-2

Optional — inspect an item before installing:

npx shadcn@latest view @reactbits-starter/silk-waves-tw

Importing installed items

This is the step agents most often get wrong. Get the export style right and the import follows.

Components — always a default export

Every @reactbits-starter component is export default. Import it with any local name you like (no braces):

import SilkWaves from "@/components/react-bits/silk-waves";
import AnimatedList from "@/components/react-bits/animated-list";

Blocks — mixed export styles, so verify every time

Block files are not consistent: some are export default function X() and some are export function X(). The identifier also does not reliably match the slug. Always confirm the export line, then import accordingly.

One reliable command to reveal it:

grep -E "^export (default )?function " components/blocks/<slug>.tsx

Apply this rule to the result:

Export line in the fileImport to write
export default function Anything()import AnyName from "@/components/blocks/<slug>"; (default import — name is your choice)
export function Hero1()import { Hero1 } from "@/components/blocks/<slug>"; (named import — must match exactly)

Examples:

// hero-1.tsx contains:  export function Hero1()      -> NAMED import, exact identifier
import { Hero1 } from "@/components/blocks/hero-1";

// 404-3.tsx contains:   export default function NotFound3()  -> DEFAULT import, free name
import ErrorPage from "@/components/blocks/404-3";

// pricing-2.tsx contains: export default function Pricing2()  -> DEFAULT import
import Pricing from "@/components/blocks/pricing-2";

Block import reference (verified)

If you cannot open the file, use this table. Named-export blocks must be imported with the exact identifier in braces. Default-export blocks can be imported with any name (the listed identifier is the file's own name, shown for reference). Watch the irregular casing.

Named exports → import { Identifier } from "@/components/blocks/<slug>":

CategorySlugsIdentifiers
Authauth-1..6Auth1 … Auth6
Blogblog-1..5, blog-8..11Blog1 … Blog5, Blog8 … Blog11
Downloaddownload-1..3, download-6..8Download1 … Download3, Download6 … Download8
Featuresfeatures-1..5, features-10..13Features1 … Features5, Features10 … Features13
Footerfooter-5, footer-6Footer5, Footer6
Herohero-1..24Hero1 … Hero24 (all heroes are named)
How It Workshow-it-works-1..3, how-it-works-7..9HowItWorks1..3, HowItWorks7..9
Navigationnavigation-2..8Navigation2 … Navigation8
Pricingpricing-5, pricing-6Pricing5, Pricing6
Showcaseshowcase-1..3, showcase-6..8Showcase1..3, Showcase6..8
Social Proofsocial-proof-7..9SocialProof7, SocialProof8, SocialProof9

Default exports → import AnyName from "@/components/blocks/<slug>":

CategorySlugsFile identifiers
404404-1..8NotFound1 … NotFound8 ⚠️ not "404…"
Aboutabout-1..12About1 … About12
Blogblog-6, blog-7Blog6, Blog7
Comparisoncomparison-1..8Comparison1 … Comparison8
Contactcontact-1..12Contact1 … Contact12
CTActa-1..14CTA1..3, then Cta4 … Cta10, then CTA11..14 ⚠️ irregular casing
Downloaddownload-4, download-5Download4, Download5
Ecommerceecommerce-1..11Ecommerce1 … Ecommerce11
FAQfaq-1..9FAQ1..3, then Faq4, Faq5, then FAQ6..9 ⚠️ irregular casing
Featuresfeatures-6..9Features6 … Features9
Footerfooter-1..4, footer-7..12Footer1 … Footer4, Footer7 … Footer12
How It Workshow-it-works-4..6HowItWorks4, HowItWorks5, HowItWorks6
Navigationnavigation-1, navigation-9..15Navigation1, Navigation9 … Navigation15
Pricingpricing-1..4, pricing-7..15Pricing1 … Pricing4, Pricing7 … Pricing15
Profileprofile-1..6Profile1 … Profile6
Showcaseshowcase-4, showcase-5Showcase4, Showcase5
Social Proofsocial-proof-1..6, social-proof-10..16SocialProof1 … SocialProof6, SocialProof10 … SocialProof16
Statsstats-1..15Stats1 … Stats15
Waitlistwaitlist-1..6Waitlist1 … Waitlist6

If this table ever disagrees with the installed file, trust the file and re-run the grep check above.

Using an installed component

import SilkWaves from "@/components/react-bits/silk-waves";

export default function Page() {
  return (
    // WebGL/shader components require a sized parent:
    <div className="h-screen w-full">
      <SilkWaves
        speed={1}
        scale={2}
        colors={["#0d1326", "#162a52", "#1e407e", "#2657aa", "#2e6ed5", "#3785ff", "#5092ff", "#69a0ff"]}
      />
    </div>
  );
}

Using an installed block

import { Hero1 } from "@/components/blocks/hero-1";   // named export → braces

export default function LandingPage() {
  return (
    <main>
      <Hero1 />
    </main>
  );
}

Blocks render full-width sections and take no props — customize them by editing the source file.


Composing a landing page from blocks

npx shadcn@latest add \
  @reactbits-pro/navigation-1 \
  @reactbits-pro/hero-1 \
  @reactbits-pro/features-1 \
  @reactbits-pro/social-proof-1 \
  @reactbits-pro/pricing-1 \
  @reactbits-pro/faq-1 \
  @reactbits-pro/cta-1 \
  @reactbits-pro/footer-1
// Imports below mix default and named — verified per the reference table above.
import Navigation1 from "@/components/blocks/navigation-1";      // default export
import { Hero1 } from "@/components/blocks/hero-1";              // named export
import { Features1 } from "@/components/blocks/features-1";      // named export
import SocialProof1 from "@/components/blocks/social-proof-1";   // default export
import Pricing1 from "@/components/blocks/pricing-1";            // default export
import Faq1 from "@/components/blocks/faq-1";                    // default export (file identifier: FAQ1)
import CTA1 from "@/components/blocks/cta-1";                    // default export (file identifier: CTA1)
import Footer1 from "@/components/blocks/footer-1";              // default export

export default function LandingPage() {
  return (
    <>
      <Navigation1 />
      <Hero1 />
      <Features1 />
      <SocialProof1 />
      <Pricing1 />
      <Faq1 />
      <CTA1 />
      <Footer1 />
    </>
  );
}

Then edit each block's source to replace placeholder copy, images (/svg/placeholder.svg), and links; adjust colors/spacing; and wire up forms and buttons.


Combining components with blocks

Standalone components can sit behind or alongside blocks (e.g. an animated background):

import SilkWaves from "@/components/react-bits/silk-waves";
import { Hero1 } from "@/components/blocks/hero-1";

export default function LandingPage() {
  return (
    <div className="relative">
      <div className="absolute inset-0 -z-10">
        <SilkWaves speed={0.5} opacity={0.3} />
      </div>
      <Hero1 />
    </div>
  );
}

Customizing

Everything installs as editable source — customize freely.

Components accept rich props. Example (SilkWaves):

<SilkWaves
  speed={1.5}
  scale={3}
  distortion={0.8}
  curve={1.2}
  contrast={1}
  colors={["#1a0533", "#2d1b69", "#4a2c8a", "#6b3fa0", "#8b52b8", "#ab65d0", "#cb78e8", "#eb8bff"]}
  rotation={45}
  brightness={1.2}
  opacity={0.9}
  complexity={1.5}
  frequency={1.2}
  className="absolute inset-0"
/>

For deeper changes, edit the installed .tsx directly: animation timing, breakpoints, new props, color schemes, data/state wiring, API integration. Blocks are designed to be edited — they take no props, so all customization happens in the file.


Dark mode

Blocks and most components support dark mode via Tailwind's dark: class strategy. Ensure a theme provider toggles a dark class on <html> (e.g. next-themes):

// app/layout.tsx
import { ThemeProvider } from "next-themes";

export default function RootLayout({ children }: { children: React.ReactNode }) {
  return (
    <html lang="en" suppressHydrationWarning>
      <body>
        <ThemeProvider attribute="class" defaultTheme="system" enableSystem>
          {children}
        </ThemeProvider>
      </body>
    </html>
  );
}

A few components read the active theme via next-themes and adapt their defaults automatically.


Dependencies

The shadcn CLI installs each item's npm dependencies automatically. Know them for troubleshooting:

PackageUsed byNotes
threeAll shader / WebGL / 3D componentsImport as import * as THREE from "three". Needs a WebGL-capable browser and a sized container.
@react-three/fiber, @react-three/dreiSome 3D componentsReact renderer + helpers for Three.js.
motionMost components and many blocksMotion v11. Import from motion/react, not framer-motion.
gsap, @gsap/reacttext-path, 3d-text-reveal, click-stack, some blocksScrollTrigger is registered inside the component.
lucide-reactMost blocksIcon set.
matter-js404-52D physics.
lenisabout-5Smooth scrolling (loaded dynamically).
next-themesTheme-aware componentsDark-mode provider.

There is no d3 or framer-motion dependency in the distributed items — always use motion/react.

Edge case: a few blocks load a package via a dynamic import() (e.g. about-5 → lenis). The CLI may not auto-install these. If a block throws "module not found" at runtime, install the named package manually (e.g. npm install lenis).

"use client" is required

Every component and block begins with "use client". In the Next.js App Router you can import them directly into Server Components — Next.js handles the client boundary. Never remove "use client".


Templates

Templates are full landing-page projects delivered as .zip downloads — they are not installed through the shadcn CLI. There is no @reactbits-pro/<template> install command.

To obtain a template, the user must:

  1. Be logged in at https://pro.reactbits.dev.
  2. Download the .zip from the template's page.
  3. Unzip it and follow its own README to install and run.
TemplateSlug
SaaS Landingsaas-landing
AI SaaS Landingai-saas-landing
Minimal Landingminimal-landing
Finance Landingfinance-landing
Agency Siteagency-site
Shader Templateshader-template
Wireframe Templatewireframe-template
8 Bit Template8-bit-template
AI App Templateai-app-template
Security Templatesecurity-template
Portfolio Templateportfolio-template

The Ultimate license (as configured here) unlocks all of these templates.


Troubleshooting

The registry API returns clear JSON errors. Map them as follows:

Symptom / errorCauseFix
Unknown registry @reactbits-starterregistries missing from components.jsonAdd it per Step 3.
401 Unauthorized — License key requiredREACTBITS_LICENSE_KEY not set / not readable by the CLIAdd it to .env.local, or export it in the shell.
401 Unauthorized — Invalid license keyWrong, expired, or revoked keyVerify the key; check it is active in the Polar customer portal.
403 Forbidden — Insufficient tierKey is not for the Ultimate tier, or access to the item isn't coveredVerify the key is the active Ultimate license; it should cover all components, blocks, and templates.
Component 404 — must end with -css or -twMissing variant suffixUse silk-waves-tw or silk-waves-css, never bare silk-waves.
Block 404 — does not existWrong slug or an accidental suffixBlocks take no suffix: hero-1, not hero-1-tw. Check the slug exists in the catalog.
Import error / "X is not exported"Wrong import style for a blockRe-check the file's export line; named exports need braces, default exports do not.
cn is not definedMissing helpernpm install clsx tailwind-merge and create lib/utils.ts (Step 1).
WebGL component renders blankNo size, or no WebGLGive the parent explicit width/height; ensure three installed; the browser must support WebGL.
Block gradients/utilities look brokenProject on Tailwind v3Blocks use Tailwind v4 utility names (e.g. bg-linear-to-*). Upgrade to v4, or rename classes (bg-linear-to-r → bg-gradient-to-r).
Blocks completely unstyledTailwind not scanning the filesEnsure Tailwind is configured and globals.css imports it (@import "tailwindcss"; in v4).
GSAP scroll effects don't fireCustom scroll containerThese expect the default document scroll unless you rewire ScrollTrigger.

Alternative auth (if env substitution is unavailable): the API also accepts an X-License-Key: <key> header or a ?license_key=<key> query parameter.


Best practices

  1. Verify the export line before importing a block — this is the #1 source of breakage.
  2. Pick one component variant project-wide — use -tw for Tailwind projects (smaller, better integrated); reserve -css for non-Tailwind projects.
  3. Wrap WebGL components in a sized container, and lazy-load heavy ones below the fold:
    import dynamic from "next/dynamic";
    const SilkWaves = dynamic(() => import("@/components/react-bits/silk-waves"), { ssr: false });
  4. Treat blocks as starting points — edit copy, images, links, and styles directly in the source.
  5. Keep the license key in env vars — never hardcode or commit it.
  6. Prefer Tailwind v4 so block utilities render correctly out of the box.
  7. Install this skill locally for offline reference: npx shadcn@latest add @reactbits-starter/skill.

Appendix A — Component catalog (@reactbits-starter, 101)

Install any of these as @reactbits-starter/<slug>-tw (Tailwind) or <slug>-css (vanilla CSS). All are export default. Components described as shader/WebGL/3D/particle render to a canvas — give them a sized parent and consider ssr: false.

Text & typography (8)

SlugNameDescription
staggered-textStaggered TextFeature-rich staggered text reveals
glitch-textGlitch TextCanvas sticky glitch text reacting to the cursor
text-pathText PathText animated along an SVG path (GSAP)
3d-text-reveal3D Text RevealScroll-triggered 3D text animation (GSAP)
particle-textParticle TextInteractive 3D WebGL particle text
text-scatterText ScatterInteractive letter-scatter effect
3d-letter-swap3D Letter SwapStaggered 3D letter swap
blur-highlightBlur HighlightBlur-in paragraph with auto text highlighting

Cursor effects (7)

SlugNameDescription
smooth-cursorSmooth CursorCanvas smooth cursor trail with spring physics
custom-cursorCustom CursorCursor with smooth target morphing
dither-cursorDither CursorPixelated dithering trail
ascii-cursorAscii CursorASCII-character trail cursor
glass-cursorGlass CursorGlass cursor with refraction and blur
cursor-waveCursor WaveGrid of shapes reacting to cursor and clicks
user-cursorUser CursorCursor with a follower name tag

Cards & interactive (9)

SlugNameDescription
shader-cardShader CardCard with animated WebGL shader background
chroma-cardChroma CardCard with chromatic color shifting
credit-cardCredit Card3D credit card with parallax tilt
depth-cardDepth CardPerspective depth reacting to the mouse
modal-cardsModal CardsCards expanding into full-screen modals
rotating-cardsRotating CardsDraggable 3D circular card carousel
parallax-cardsParallax CardsLayered cards with mouse-driven parallax
click-stackClick StackClick-to-cycle animated card stack (GSAP)
warped-cardWarped CardImage card with mouse-following bulge shader

Backgrounds, shaders & visual effects (57)

SlugNameDescription
silk-wavesSilk WavesSmooth flowing silk-like waves
shader-wavesShader WavesAnimated wave patterns with noise
chroma-wavesChroma WavesWave shader with noise distortion
aurora-blurAurora BlurEthereal aurora-borealis blur
gradient-blobGradient BlobMorphing 3D blob with cursor interaction
ai-blobAI BlobAnimated 3D blob with glow
dither-waveDither WaveWave with retro dithering
radial-liquidRadial LiquidRadial shader waves with distortion
grain-waveGrain WaveGrainy wave texture
glass-flowGlass FlowFlowing glass-like blur
falling-raysFalling RaysRays falling like rain of light
light-dropletsLight DropletsFalling light streaks with glow
lightspeedLightspeedHyperspace light-streak effect
rising-linesRising LinesAscending lines/particles with a laser beam
liquid-barsLiquid BarsLiquid bars with smooth wave motion
liquid-linesLiquid LinesFlowing liquid lines
shadow-barsShadow BarsAnimated shadow bars with depth
color-loopsColor LoopsColorful orbital loops
mosaicMosaicMosaic over an animated wave or video
flickerFlickerFlickering particle grid
vortexVortexSpinning 3D tunnel with particles
portalPortalCircular portal shader with particles
perspective-gridPerspective GridInfinite 3D perspective grid (WebGL)
glitter-warpGlitter WarpStarfield warp tunnel
star-burstStar BurstStar-burst particle explosion
rotating-starsRotating StarsOrbiting star particles
dot-shiftDot ShiftShifting grid of animated dots
synaptic-shiftSynaptic ShiftNeural-network connection animation
ascii-wavesAscii WavesWaves rendered as ASCII characters
squircle-shiftSquircle ShiftMorphing squircle animation
center-flowCenter FlowRadial flow from the center
warp-twisterWarp TwisterTwisting warp distortion
neon-revealNeon RevealNeon bar sweep
agentic-ballAgentic Ball3D orb with swirl and glow
black-holeBlack HoleGravitational particles with color cycling
blurred-raysBlurred RaysFlickering vertical light beams with bloom
flame-pathsFlame PathsFlame-like wave effect
frame-borderFrame BorderAnimated noise-textured border
gradient-barsGradient BarsAnimated striped gradient bars
halftone-vortexHalftone VortexCursor-reactive halftone dot vortex
halftone-waveHalftone WaveHalftone dot grid with noise
liquid-asciiLiquid AsciiFluid simulation as ASCII characters
metallic-swirlMetallic SwirlMetallic swirl shader
retro-linesRetro LinesRetro perspective grid with scrolling waves
rubber-fluidRubber FluidRubbery fluid distortion shader
simple-swirlSimple SwirlConcentric swirl with glow
square-matrixSquare MatrixAnimated dot grid with wave presets
star-swipeStar SwipeConformal star-warp shader
swirl-blendSwirl BlendIterative swirl shader with palette controls
text-cubeText CubeCursor-following 3D text cube
watercolorWatercolorWatercolor noise shader, two-color blend
fog-sphereFog SphereSoft swirling sphere of fog
ascii-tilesASCII TilesGlassy tiles of glowing ASCII characters
twilight-linesTwilight LinesGlowing lines pulsing with a warm sweep
chroma-blindsChroma BlindsDiagonal stripes bending toward the cursor
glass-tilesGlass TilesShimmering colorful glass tiles
blinking-squaresBlinking SquaresGrid of quietly twinkling squares

Galleries, carousels & layout (10)

SlugNameDescription
circle-galleryCircle GalleryDraggable circular carousel with inertia
gradient-carouselGradient Carousel3D carousel with dynamic gradient extraction
circlesCirclesRotating orbital rings with images
draggable-gridDraggable GridPannable grid with drag and momentum
animated-listAnimated ListList with multiple entrance animations
comparison-sliderComparison SliderBefore/after image comparison
hover-previewHover PreviewImage previews on hovering target words
infinite-galleryInfinite Gallery3D infinite scrolling gallery with parallax
parallax-carouselParallax CarouselDraggable image carousel with parallax
circle-stackCircle StackTilted cycling stack of circular images

Images & reveals (5)

SlugNameDescription
shader-revealShader RevealInteractive liquid image reveal
liquid-swapLiquid SwapImage transition via a liquid glass ball
pixelate-hoverPixelate HoverCursor-controlled pixelation reveal
pixel-revealPixel RevealImage revealed through a pixel sweep
magic-transformMagic TransformDocuments fly in and resolve into results

Other / utility (5)

SlugNameDescription
globeGlobeInteractive 3D globe with animated arcs
deviceDeviceCSS device mockup with custom content
simple-graphSimple GraphAnimated, customizable line graph
preloaderPreloaderAnimated loading screens, multiple variants
parallax-pillsParallax PillsBouncy labeled pills drifting with the cursor

Appendix B — Block catalog (@reactbits-pro, 238)

Install as @reactbits-pro/<slug> (no suffix). Slugs are sequential within each category starting at 1. See Block import reference for the per-slug export style.

CategorySlug rangeCountWhat it covers
Herohero-1 … hero-2424Headers/heroes: split, centered, video, carousel, WebGL, animated
Featuresfeatures-1 … features-1313Feature grids, tabs, marquees, auto-cycling carousels
Social Proofsocial-proof-1 … social-proof-1616Logos, testimonials, reviews, marquees, video
Contactcontact-1 … contact-1212Contact forms and split/card layouts
Footerfooter-1 … footer-1212Footers with links, newsletter, branding
Comparisoncomparison-1 … comparison-88Feature/pricing comparison tables and charts
Navigationnavigation-1 … navigation-1515Top/side/bottom navs and mobile menus
Authauth-1 … auth-66Sign-in / sign-up layouts
Call To Actioncta-1 … cta-1414CTAs with parallax, cursor trails, video masks
FAQfaq-1 … faq-99Accordion, chat-style, tabbed FAQs
Pricingpricing-1 … pricing-1515Pricing tables with toggles and comparisons
Statsstats-1 … stats-1515Metrics with charts, maps, animations
404404-1 … 404-88Creative error pages
Profileprofile-1 … profile-66User profile cards and sections
Aboutabout-1 … about-1212Story, timeline, team, metrics
Waitlistwaitlist-1 … waitlist-66Pre-launch signup sections
Showcaseshowcase-1 … showcase-88Portfolio and product display
How It Workshow-it-works-1 … how-it-works-99Step-by-step process sections
Downloaddownload-1 … download-88App/file download sections
Blogblog-1 … blog-1111Blog listings and article layouts
Ecommerceecommerce-1 … ecommerce-1111Product pages, catalogs, storefronts

Quick reference

  • Install component: npx shadcn@latest add @reactbits-starter/<slug>-tw (or -css)
  • Install block: npx shadcn@latest add @reactbits-pro/<slug>
  • Install this skill: npx shadcn@latest add @reactbits-starter/skill
  • Component import: import AnyName from "@/components/react-bits/<slug>" (always default)
  • Block import: open the file → export default ⇒ default import · export function X ⇒ import { X }
  • Reveal a block's export: grep -E "^export (default )?function " components/blocks/<slug>.tsx
  • License: Ultimate — every component, block, and template is available
  • Live catalogs: https://pro.reactbits.dev/components · /blocks · /templates

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.