3.3 KiB
3.3 KiB
description, model
| description | model |
|---|---|
| Create a new React component with TypeScript and modern best practices | claude-sonnet-4-5 |
Generate a new React component following 2025 best practices.
Component Specification
$ARGUMENTS
Modern React + TypeScript Standards
1. Function Components Only
- Use function components (not class components)
- React 19 patterns
- Server Components where appropriate (Next.js)
2. TypeScript Best Practices
- Strict typing (
strict: true) - Interface for props
- Proper TypeScript utility types (ComponentProps, ReactNode, etc.)
- NO
anytypes - Explicit return types for complex components
3. Component Patterns
Client Components (interactive, use hooks)
'use client'
import { useState } from 'react'
interface Props {
// typed props
}
export function Component({ }: Props) {
// implementation
}
Server Components (default in Next.js App Router)
interface Props {
// typed props
}
export async function Component({ }: Props) {
// can fetch data directly
}
4. State Management
useStatefor local stateuseReducerfor complex state- Zustand for global state
- React Context for theme/auth
5. Performance
- Lazy loading with
React.lazy() - Code splitting
use memo()for expensive computationsuseCallback()for callback functions
6. Styling Approach (choose based on project)
- Tailwind CSS - Utility-first (recommended)
- CSS Modules - Scoped styles
- Styled Components - CSS-in-JS
What to Generate
- Component File - Main component with TypeScript
- Props Interface - Fully typed props
- Styles - Tailwind classes or CSS module
- Example Usage - How to import and use
- Storybook Story (optional) - Component documentation
Code Quality Standards
Structure
- Feature-based folder organization
- Co-locate related files
- Barrel exports (index.ts)
- Clear file naming conventions
TypeScript
- Explicit prop types via interface
- Proper generics where needed
- Utility types (Pick, Omit, Partial)
- Discriminated unions for variants
Props
- Required vs optional props
- Default values where appropriate
- Destructure in function signature
- Props spread carefully
Accessibility
- Semantic HTML
- ARIA labels where needed
- Keyboard navigation
- Screen reader friendly
Best Practices
- Single Responsibility Principle
- Composition over inheritance
- Extract complex logic to hooks
- Keep components small (<200 lines)
Component Types to Consider
Presentational Components
- Pure UI rendering
- No business logic
- Receive data via props
- Easy to test
Container Components
- Data fetching
- Business logic
- State management
- Pass data to presentational components
Compound Components
- Related components working together
- Shared context
- Flexible API
- Example:
<Select><Select.Trigger/><Select.Content/></Select>
React 19 Features to Use
- use() API for reading promises/context
- useActionState() for form state
- useFormStatus() for form pending state
- useOptimistic() for optimistic UI updates
- Server Actions for mutations
Generate production-ready, accessible, and performant React components following Next.js 15 and React 19 patterns.