# Naming Conventions — JavaScript / TypeScript

- **Files (components):** PascalCase → `UserCard.tsx`, `OrderList.tsx`
- **Files (utils/hooks):** camelCase → `useUserList.ts`, `formatDate.ts`
- **Components:** PascalCase → `UserCard`, `OrderDetail`
- **Functions/methods:** camelCase, verb-first → `getUser()`, `handleSubmit()`, `formatDate()`
- **Variables:** camelCase, descriptive → `userId`, `orderList`, NOT `u`, `ol`
- **Constants:** UPPER_SNAKE_CASE → `MAX_RETRY`, `API_TIMEOUT`
- **Types/Interfaces:** PascalCase → `User`, `CreateUserRequest`, `ApiResponse<T>`
- **Boolean variables:** `is/has/can` prefix → `isLoading`, `hasError`, `canEdit`
- **Event handlers:** `handle` prefix → `handleDelete`, `handleFormSubmit`
- **Custom hooks:** `use` prefix → `useUserList`, `useAuth`, `useModal`
- **Enums:** PascalCase → `OrderStatus.Pending`
- **CSS classes:** kebab-case → `user-card`, `nav-item`
