components
Use when building a frontend and the user wants a distinctive / animated / "wow" UI element in React + Tailwind - e.g. a laptop-opening-on-scroll, 3D tilt card, spotlight hero, animated beams/background, marquee, bento grid, interactive globe, meteor/particle background, shimmer button, or scroll/reveal motion. Fetches the showpiece component LIVE at build time from code libraries (Aceternity, Magic UI, Cult UI, ReactBits, 21st.dev) via their shadcn registry command (or WebFetch fallback), then adapts it to brand tokens. Also covers plain components (button, form, modal, table, etc.) as a fallback. Triggers on "make it pop", "something flashy", "animated [X]", "like [cool site]", "build a [showpiece] section". NOT for non-React stacks. Inspiration galleries (Dribbble/godly) are visual reference only - never code.
インストール方法を見る含まれるファイル(94)
- SKILL.md8.1 KB
- .editorconfig219 B
- .gitattributes19 B
- .github/CODEOWNERS507 B
- .github/dependabot.yml316 B
- .github/ISSUE_TEMPLATE/bug_report.yml1.4 KB
- .github/ISSUE_TEMPLATE/config.yml440 B
- .github/ISSUE_TEMPLATE/new_component.yml1.5 KB
- .github/labeler.yml652 B
- .github/PULL_REQUEST_TEMPLATE.md1.2 KB
- .github/workflows/build-agent-dirs.yml3.1 KB
- .github/workflows/cli-ci.yml2.0 KB
- .github/workflows/component-smoke-test.yml6.5 KB
- .github/workflows/deploy-gallery.yml2.3 KB
- .github/workflows/health-check.yml2.0 KB
- .github/workflows/label.yml320 B
- .github/workflows/media-size.yml1.9 KB
- .github/workflows/validate.yml639 B
- .gitignore712 B
- ATTRIBUTION.md6.0 KB
- CHANGELOG.md11.6 KB
- cli/bin/components-skill.js4.3 KB
- cli/package-lock.json355 B
- cli/package.json1.1 KB
- cli/PUBLISHING.md2.3 KB
- cli/README.md5.6 KB
- cli/scripts/check-version-sync.js1.8 KB
- cli/src/commands/add.js2.1 KB
- cli/src/commands/search.js2.8 KB
- cli/src/commands/tokens.js11.3 KB
- cli/src/commands/update.js2.9 KB
- cli/src/lib/dist.js1.2 KB
- cli/src/lib/layout.js2.3 KB
- cli/src/lib/manifest.js3.1 KB
- cli/test/add.test.js4.7 KB
- cli/test/search.test.js2.7 KB
- cli/test/tokens.test.js6.4 KB
- CODE_OF_CONDUCT.md2.3 KB
- components.json47.0 KB
- CONTRIBUTING.md7.7 KB
- docs/media/demo.gif2.0 MB
- docs/media/demo.mp42.1 MB
- docs/previews-audit.md9.3 KB
- gallery/.gitignore352 B
- gallery/components.json426 B
- gallery/index.html477 B
- gallery/package-lock.json86.2 KB
- gallery/package.json761 B
- gallery/scripts/fetch-showpieces.mjs11.2 KB
- gallery/src/App.tsx9.3 KB
- gallery/src/demos/Demo3dCard.tsx1.2 KB
- gallery/src/demos/DemoAnimatedShinyText.tsx275 B
- gallery/src/demos/DemoAurora.tsx752 B
- gallery/src/demos/DemoBackgroundBeams.tsx371 B
- gallery/src/demos/DemoBlurText.tsx305 B
- gallery/src/demos/DemoCanvasFractalGrid.tsx811 B
- gallery/src/demos/DemoCobeGlobeInteractive.tsx426 B
- gallery/src/demos/DemoCountUp.tsx387 B
- gallery/src/demos/DemoDecryptedText.tsx349 B
- gallery/src/demos/DemoDock.tsx479 B
- gallery/src/demos/DemoGlobe.tsx726 B
- gallery/src/demos/DemoHyperspeed.tsx541 B
- gallery/src/demos/DemoLetterGlitch.tsx795 B
- gallery/src/demos/DemoMarquee.tsx1.1 KB
- gallery/src/demos/DemoMatrixText.tsx165 B
- gallery/src/demos/DemoMeteors.tsx350 B
- gallery/src/demos/DemoParticlesWebgl.tsx543 B
- gallery/src/demos/DemoShaderLensBlur.tsx758 B
- gallery/src/demos/DemoShimmerButton.tsx192 B
- gallery/src/demos/DemoSplashCursor.tsx838 B
- gallery/src/demos/DemoSpotlight.tsx435 B
- gallery/src/demos/DemoTextureCard.tsx948 B
- gallery/src/demos/index.ts2.3 KB
- gallery/src/index.css1.8 KB
- gallery/src/lib/utils.ts169 B
- gallery/src/main.tsx232 B
- gallery/tsconfig.app.json529 B
- gallery/tsconfig.json165 B
- gallery/tsconfig.node.json336 B
- gallery/vite.config.ts493 B
- LICENSE9.9 KB
- README.md15.7 KB
- references/adaptation.md4.4 KB
- references/conventions.md2.1 KB
- references/dependencies.md2.5 KB
- references/handoff.md2.2 KB
- references/live-fetch.md8.2 KB
- scripts/_registry.py691 B
- scripts/build-agent-dirs.sh5.2 KB
- scripts/health-check.py14.4 KB
- scripts/smoke-test.mjs37.6 KB
- scripts/validate.py12.5 KB
- SECURITY.md1.4 KB
- TASTE.md4.3 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
components
Fetch flashy, proven, animated React+Tailwind components LIVE from code libraries instead of hand-writing complex motion. User describes an effect → match it → pull the real component at build time → adapt to brand.
What this is
- PRIMARY: showpiece live-fetch. Distinctive/animated components (laptop scroll, 3D card, beams, globe, marquee...) fetched live from code libraries via registry CLI / WebFetch.
- FALLBACK: plain components. Standard button/form/modal/table when no "wow" is asked.
- SOURCE layer only. After placing the component, hand off final polish/distinctiveness to
impeccable/frontend-designif installed - both are optional sibling skills, not dependencies of this repo. Seereferences/handoff.mdfor what to do when neither is available. - Galleries ≠ code. Dribbble, godly.website, Awwwards = visual reference ONLY. Never fetch components from them.
- Layout curation.
layouts[]are pre-composed arrangements (web sections or video beat patterns).TASTE.mdis the required-reading standard for picking or building one - read it before selecting a layout.
Decision flow
user wants a UI component (React + Tailwind)?
├─ is it a distinctive / animated / "wow" effect?
│ ├─ YES (primary path):
│ │ 1. match the described effect → showpiece[] entry (name or aliases)
│ │ 2. no direct match → search code_libraries[] live for the effect
│ │ (WebFetch the library's components page, find the closest)
│ │ 3. FETCH LIVE (see references/live-fetch.md):
│ │ - preferred: run the entry's `ref` registry command
│ │ e.g. `npx shadcn@latest add "https://ui.aceternity.com/registry/macbook-scroll.json"`
│ │ - fallback: WebFetch / Playwright the page, extract the code
│ │ 4. install listed `deps` (usually `motion` = framer-motion)
│ │ 5. ADAPT: brand tokens + prefers-reduced-motion + responsive
│ │ (references/adaptation.md)
│ │ 6. hand off polish → impeccable / frontend-design (optional, if installed)
│ └─ NO → fallback_basic[]: standard component, adapt to tokens.
How to fetch live
- Read
components.json. Find theshowpieceentry by name/alias, else pick acode_librariessource and search it live. - Target project is Vue or Svelte, not React? Check whether the matched entry has a
frameworks.vue/frameworks.svelteobject. If it does, use itsref/fetch/library/license/depsinstead of the entry's top-level (React) ones - the rest of this flow is unchanged. If it doesn't, say so; don't improvise a port. Coverage today: all 9 ReactBits entries have both Vue (Vue Bits) and Svelte (Svelte Bits) variants; the Aceternity and Magic UI entries with a verified Inspira UI equivalent have Vue variants. Everything else is React-only. - Show the user the registry command before running it (it pulls code into their project).
- Run
ref. If the registry shorthand fails (library changed it), open thesitepage, confirm the current command, retry. Last resort: WebFetch the page and write the code manually. (refis the display form of the entry'sfetchobject; if you are writing tooling, readfetch.url/fetch.cliand never parse the command string.) - Install
deps. Most needmotion(framer-motion). 3D globe needscobe; wavy bg needssimplex-noise.depsis not optional detail: it records peer dependencies the registry item itself does not declare, and the component will not compile without them (every Inspira UI variant needs@inspira-ui/pluginsforcn(), which its registry JSON omits). - Adapt (mandatory - never raw): map demo colors to brand tokens, wrap motion in
prefers-reduced-motion, check mobile. - Verify it compiles + renders, then hand off to a quality skill if one is installed
(
references/handoff.md). Otherwise the adapted component is already the final output.
Rules
- Live-fetch from code libraries only.
showpiece+code_librariesare curated pointers; the actual code is fetched at build time so it stays current. - Galleries are visual-ref only - no code lives there.
- Never paste raw. Adapt tokens + motion + responsive every time.
- Respect motion accessibility. Every animated component honors
prefers-reduced-motion. - Check license per source. Magic UI / Cult UI / ReactBits = MIT. Aceternity = free personal+commercial (verify). 21st.dev = per-component, verify before shipping; its registry endpoint also needs a 21st.dev account/API key, so use each entry's open-mirror
refor the page-fetch path. - Safety: registry commands run code installs - show the command, prefer official namespaces, don't blindly run unknown-registry URLs.
Troubleshooting (fetch failed?)
Registries change. Recover in this order - never leave the user stuck:
- Command 404 / "unknown registry" → open the entry's
sitepage, confirm the current command, retry. Make sureshadcn@latestis used (not an old pinned version). - Still failing → WebFetch the component's docs page, extract the code block, write the file(s) manually, install the listed
deps. - Code is behind JS/tabs → use the
playwrightskill to read the rendered code panel. - Network/registry down → fall back to the closest
fallback_basicentry or a hand-composed version, and tell the user the showpiece source is unreachable. Do not block the build on a dead registry.
No vendoring, by design:
componentsships pointers only and never bundles upstream code, so when an upstream is unreachable the showpiece is temporarily unavailable. Degrade gracefully per step 4 (closestfallback_basic, or hand-compose) rather than erroring out. Staying pointer-only keeps the skill permanently clear of any redistribution licensing.
Limitations
- Primarily React + Tailwind, and the target project must already be
shadcn-initialised (hascomponents.json+ a registry-awarenpx shadcnsetup). Vue and Svelte support is narrow and per-entry, not general: see step 2 of "How to fetch live" for which showpieces carry a verifiedframeworks.vue/frameworks.sveltevariant. Everything else, and plain HTML, is React-only. - No vendoring. Showpieces are pointers fetched live; if an upstream registry endpoint changes or goes down, that showpiece is temporarily unavailable (see Troubleshooting) rather than silently served from a stale local copy.
- 21st.dev entries route around the official registry (which needs an account/API key)
via open mirrors or page-fetch - slightly more fragile than a direct
npx shadcncall. - License compliance is per-source, not blanket.
components.jsonrecords each entry's license, but verifying it's still accurate before commercial redistribution is on the user (see Sources & licenses /ATTRIBUTION.md). - Not a design-quality skill. It sources and adapts a component; it doesn't judge whether
the result fits the page's visual system - that's
impeccable/frontend-design's job.
Maintenance
showpiece/code_libraries are pointers, so they rot slowly. Quarterly: confirm registry namespaces + library sites still resolve. Update ref patterns if a library changes its CLI. See CONTRIBUTING.md.
レビュー
まだレビューはありません。使ってみた感想をお寄せください。