← スキル一覧に戻る

react-component-dev
by corvo007
react-component-devは、other分野における実用的なスキルです。複雑な課題への対応力を強化し、業務効率と成果の質を改善します。
⭐ 133🍴 13📅 2026年1月23日
SKILL.md
name: react-component-dev description: React/TypeScript component development guidelines for Gemini-Subtitle-Pro. Use when creating components, pages, modals, forms, or working with TailwindCSS, hooks, and React 19 patterns. Covers component architecture, styling with Tailwind, state management, performance optimization, and accessibility.
React Component Development Guidelines
Purpose
Establish consistency and best practices for React components in Gemini-Subtitle-Pro using React 19, TypeScript 5.8, and TailwindCSS 4.
When to Use This Skill
Automatically activates when working on:
- Creating or modifying React components
- Building pages, modals, dialogs, forms
- Styling with TailwindCSS
- Working with React hooks
- Implementing state management
- Performance optimization
Quick Start
New Component Checklist
- Location: Place in
src/components/[feature]/ - TypeScript: Define proper props interface
- Styling: Use TailwindCSS with
clsxandtw-merge - Path Aliases: Use
@components/*,@hooks/*, etc. - State: Use appropriate state pattern (local, context, etc.)
- i18n: Use
useTranslationfor all user-facing text
Component Architecture
File Organization
src/components/
├── common/ # Shared components (Button, Modal, etc.)
├── layout/ # Layout components (Header, Sidebar, etc.)
├── subtitle/ # Subtitle-related components
├── settings/ # Settings components
├── workspace/ # Workspace components
└── [feature]/ # Feature-specific components
Naming Conventions
- Components:
PascalCase-SubtitleEditor.tsx - Hooks:
camelCasewithuseprefix -useSubtitleParser.ts - Utils:
camelCase-formatTimestamp.ts
Core Principles
1. Always Use Path Aliases
// ❌ NEVER: Relative paths
import { Button } from '../../components/common/Button';
// ✅ ALWAYS: Path aliases
import { Button } from '@components/common/Button';
import { useWorkspace } from '@hooks/useWorkspace';
import { SubtitleEntry } from '@types/subtitle';
2. Define Props Interface
// ✅ ALWAYS: Clear prop types
interface SubtitleEditorProps {
entries: SubtitleEntry[];
onUpdate: (index: number, entry: SubtitleEntry) => void;
isReadOnly?: boolean;
}
export function SubtitleEditor({ entries, onUpdate, isReadOnly = false }: SubtitleEditorProps) {
// ...
}
3. Use TailwindCSS with clsx
import { clsx } from 'clsx';
import { twMerge } from 'tailwind-merge';
// ✅ Conditional classes
<div className={twMerge(clsx(
'rounded-lg p-4',
isActive && 'bg-blue-500 text-white',
isDisabled && 'opacity-50 cursor-not-allowed'
))}>
4. Use i18n for All Text
import { useTranslation } from 'react-i18next';
export function SettingsPanel() {
const { t } = useTranslation();
return (
<h1>{t('settings.title')}</h1>
);
}
Resource Files
For detailed guidelines, see the resources directory:
- component-patterns.md - Component design patterns
- styling-guide.md - TailwindCSS styling patterns
- hooks-patterns.md - Custom hooks patterns
- performance.md - Performance optimization
スコア
総合スコア
85/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
✓LICENSE
ライセンスが設定されている
+10
✓説明文
100文字以上の説明がある
+10
✓人気
GitHub Stars 100以上
+5
✓最近の活動
1ヶ月以内に更新
+10
✓フォーク
10回以上フォークされている
+5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
✓タグ
1つ以上のタグが設定されている
+5
レビュー
💬
レビュー機能は近日公開予定です

