-
🔍 GitHubコード検索
- プログラミング言語ファイルの自動フィルタリング
- 3文字以上で自動検索開始
- デバウンス処理による最適化(500ms)
- 30件ごとの無限スクロール(最大1000件)
-
⌨️ キーボードショートカット
/
キーで検索フォーカスEnter
で即時検索実行
-
🎨 モダンなUI/UX
- ダークモード対応
- スムーズなアニメーション効果
- スケルトンローディング
- レスポンシブデザイン
-
Framework
- React 18.3.1
- TypeScript 5.5.3
- Vite 5.4.2
-
Styling
- TailwindCSS 3.4.1
- clsx/tailwind-merge(条件付きクラス)
-
UI/UX
- framer-motion(アニメーション)
- lucide-react(アイコン)
- Prism.js(シンタックスハイライト)
src/
├── animations/ # アニメーションレイヤー
│ ├── constants/ # アニメーション定数
│ │ └── spring.ts # スプリングアニメーション設定
│ ├── variants/ # アニメーションバリアント
│ │ ├── container.ts # コンテナアニメーション
│ │ ├── fade.ts # フェードアニメーション
│ │ └── skeleton.ts # スケルトンアニメーション
│ └── index.ts # 一元的なエクスポート
├── components/ # Reactコンポーネント
│ ├── CodeResult/ # コードスニペット表示
│ ├── SearchBar/ # 検索入力
│ ├── SearchHero/ # メインビジュアル
│ ├── SearchResults/ # 検索結果一覧
│ └── Settings/ # 設定画面
├── context/ # Reactコンテキスト
│ ├── GitHubTokenContext.tsx # トークン管理
│ └── SearchSettingsContext.tsx # 検索設定
├── hooks/ # カスタムフック
│ └── useCodeSearch.ts # 検索ロジック
├── layouts/ # レイアウト
├── styles/ # スタイル定義
├── types/ # 型定義
└── utils/ # ユーティリティ
アニメーションレイヤーは、アプリケーション全体のアニメーションを一元管理します:
-
constants/ - 再利用可能なアニメーション定数
- spring.ts: スプリングアニメーションの基本設定
-
variants/ - Framer Motionのアニメーションバリアント
- container.ts: レイアウトアニメーション
- fade.ts: フェードイン/アウトアニメーション
- skeleton.ts: スケルトンローディングアニメーション
使用例:
import { fadeIn, springTransition } from '@/animations';
// コンポーネントでの使用
<motion.div {...fadeIn}>
<YourContent />
</motion.div>
- 依存パッケージのインストール:
npm install
# または
bun install
- GitHubトークンの設定:
- GitHubのPersonal Access Tokensページで新しいトークンを生成
- 以下のいずれかの方法でトークンを設定:
a. 環境変数による設定(開発時):
.env.local
ファイルをプロジェクトルートに作成VITE_GITHUB_TOKEN=your_token_here
を追加 b. アプリケーションの設定画面でトークンを入力(実行時)
- 開発サーバーの起動:
npm run dev
# または
bun dev
- GitHubトークンを設定
- 検索キーワードを入力(3文字以上)
- 自動的に検索が開始
- 必要に応じて非プログラミングファイルの除外設定を調整
- ファイル名とパスの表示
- リポジトリ情報の表示
- コードスニペットのシンタックスハイライト
- 無限スクロールによる追加読み込み
- GitHubトークン: 検索機能を利用するために必要
- 非プログラミングファイルの除外: 検索結果から設定ファイルやドキュメントを除外
npm run build
# または
bun build
npm run lint
# または
bun lint
MIT License