react-bits について
react-bitsは、ReactやNext.jsのプロジェクトでアニメーション付きコンポーネントを導入、カスタマイズ、開発するためのスキルです。インストール、アニメーション設定、性能面の注意点、リポジトリへの貢献手順を扱います。
主な機能
- 01アニメーション付きReactコンポーネントの導入ガイド
- 02ViteとTailwind CSS v4との統合
- 03GSAPとThree.jsのカスタマイズ指針
- 04コンポーネント生成と貢献手順
活用シーン
- 01Reactプロジェクトにテキストや背景のアニメーションを追加
- 02GSAPタイムラインやThree.jsキャンバス設定のデバッグ
- 03新しいコンポーネントの作成と貢献
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ akillness/ jeo-skills --skill react-bitsインストール後、Claude Code で/react-bitsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
SKILL.toonevals/evals.jsonreferences/contributing-focus.mdlocal-setup.mdproject-structure.mdscripts/fetch-docs.sh詳細
react-bits
バージョン 1.0.0
DavidHDev/react-bits
2026年1月
注記:
このスキルでは、アニメーション付き React コンポーネントの最大かつ最も独創的なライブラリである
react-bitsの統合、カスタマイズ、コントリビューションに関するガイダンスを提供します。
Vite 4/5/6、Tailwind CSS v4、Three.js/Fiber、GSAP、Framer Motion との統合を扱います。
このスキルを使用する場面
- テキストアニメーション、背景エフェクト、インタラクティブな UI 要素など、独創性の高いアニメーション付き React コンポーネントを React/Next.js プロジェクトに統合する必要がある場合。
- 既存の
react-bitsコンポーネントをカスタマイズまたはデバッグする必要がある場合(例:GSAP のタイムライン、Three.js のキャンバス設定、Tailwind クラスの調整)。 feat/<feature-name>ブランチの規約に従って、react-bitsリポジトリに新しいアニメーション付きコンポーネントをコントリビュートする場合。
このスキルを使用しない場面
- 標準的なアニメーションなしの UI コンポーネントを使う場合(代わりに Radix、Shadcn、Tailwind UI などの標準的なコンポーネントライブラリを使用してください)。
- バンドルサイズに厳しい制約があり、対象プロジェクトで重量のあるアニメーションライブラリ(Three.js、GSAP、Framer Motion)をサポートできない場合。
プロジェクトの構成
- スタック:React、Vite、Tailwind CSS v4、GSAP、Three.js(
@react-three/fiber、@react-three/drei)、Framer Motion(motion)、jsrepo(レジストリ管理用)。 - レジストリ:コンポーネントのビルドと配布に
jsrepoを使用します。 - スクリプト:
npm run dev:jsrepo build --watchと Vite のドキュメントサーバーを並行して実行します。npm run build:レジストリをビルドし、LLM テキストとサイトマップを生成して、Vite サイトをビルドします。npm run new:component:scripts/generateComponent.jsを使って新しいコンポーネントのテンプレートを生成します。npm run lint:ESLint を使ってコードベースをリントします。npm run format:Prettier を使ってコードベースをフォーマットします。
手順
ステップ 1:コンポーネントの統合とインストール
react-bitsカタログから目的のコンポーネントを選びます(例:テキストアニメーション、背景、UI コンポーネント)。- 対象プロジェクトに必要なピア依存関係をインストールします(例:コンポーネントに応じて
gsap、motion、@react-three/fiber、lucide-react)。 - コンポーネントのソースコードをコピーするか、対象プロジェクトで設定済みであれば
jsrepoを使用します。
ステップ 2:カスタマイズとパフォーマンスの最適化
- Tailwind CSS:Tailwind CSS が設定されていることを確認します(ソースリポジトリでは Tailwind v4 を使用しています)。
- GSAP コンテキスト:GSAP アニメーションをカスタマイズする場合、メモリリークや React 18/19 Strict Mode での二重実行を防ぐため、
useLayoutEffect内でタイムラインやトゥイーンを必ずクリーンアップするか、@gsap/reactのuseGSAPフックを使用してください。 - Three.js キャンバス:
<Canvas>コンポーネントのサイズが適切に設定されていることと、WebGL コンテキストを解放するためにアンマウントされることを確認します。
ステップ 3:新しいコンポーネントのコントリビュート
npm run new:componentを実行して、新しいコンポーネントのひな形を作成します。- クリーンな React パターンを使って、コンポーネントを
src/components/に実装します。 - ローカルのドキュメントサーバー(
npm run dev)でコンポーネントが動作することを確認します。 - コミット前に
npm run lintとnpm run formatを実行します。 feat/<feature-name>という名前のブランチを作成し、mainに PR を提出します。
ベストプラクティス
- GSAP のクリーンアップ:メモリリークを防ぐため、アンマウント時に GSAP のタイムラインやトゥイーンを必ずクリーンアップしてください。
- 自己完結型コンポーネント:ユーザーが
jsrepo経由でコンポーネントをインストールしたときに利用できない内部ユーティリティを、コンポーネントがインポートしないようにしてください。 - ブランチ名:すべてのプルリクエストで
feat/<feature-name>のブランチ命名規約に従ってください。
例
例 1:安全な GSAP アニメーションコンポーネント
import { useRef } from 'react';
import gsap from 'gsap';
import { useGSAP } from '@gsap/react';
export default function AnimatedBox() {
const container = useRef<HTMLDivElement>(null);
useGSAP(() => {
gsap.to('.box', { rotation: 360, duration: 2, repeat: -1, ease: 'linear' });
}, { scope: container });
return (
<div ref={container}>
<div className="box w-16 h-16 bg-blue-500 rounded" />
</div>
);
}
参考資料
| ファイル | 用途 |
|---|---|
package.json | プロジェクトの依存関係(GSAP、Three.js、Tailwind v4)とスクリプト |
CONTRIBUTING.md | ブランチ命名規約(feat/)と PR のガイドライン |
jsrepo.config.ts | コンポーネント配布用のレジストリ設定 |
コメント
Markdown 対応