Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 09:08:22 +08:00
commit a25d9dfcd0
28 changed files with 3680 additions and 0 deletions

View File

@@ -0,0 +1,138 @@
---
description: Create a new React component with TypeScript and modern best practices
model: 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 `any` types
- Explicit return types for complex components
### 3. **Component Patterns**
**Client Components** (interactive, use hooks)
```typescript
'use client'
import { useState } from 'react'
interface Props {
// typed props
}
export function Component({ }: Props) {
// implementation
}
```
**Server Components** (default in Next.js App Router)
```typescript
interface Props {
// typed props
}
export async function Component({ }: Props) {
// can fetch data directly
}
```
### 4. **State Management**
- `useState` for local state
- `useReducer` for complex state
- Zustand for global state
- React Context for theme/auth
### 5. **Performance**
- Lazy loading with `React.lazy()`
- Code splitting
- `use memo()` for expensive computations
- `useCallback()` 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
1. **Component File** - Main component with TypeScript
2. **Props Interface** - Fully typed props
3. **Styles** - Tailwind classes or CSS module
4. **Example Usage** - How to import and use
5. **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.

BIN
commands/ui/page-new.md Normal file

Binary file not shown.