# HeroUI 使用指南

## 已完成的配置

✅ 安装了 HeroUI 核心包：
- `@heroui/react` - React 组件库
- `@heroui/theme` - 主题系统
- `framer-motion` - 动画库

✅ 升级到 Tailwind CSS 4

✅ 更新配置文件：
- `tailwind.config.ts` - 添加了 HeroUI 插件和内容路径
- `postcss.config.mjs` - 更新为使用 `@tailwindcss/postcss`
- `components/Providers.tsx` - 添加了 `HeroUIProvider`

## 如何使用 HeroUI 组件

### 1. 导入组件

```tsx
import { Button, Card, CardBody, Input, Navbar, NavbarBrand } from '@heroui/react';
```

### 2. 常用组件示例

#### Button（按钮）
```tsx
<Button color="primary">点击我</Button>
<Button color="secondary" variant="bordered">边框按钮</Button>
<Button isLoading>加载中...</Button>
```

#### Card（卡片）
```tsx
<Card>
  <CardBody>
    <p>这是卡片内容</p>
  </CardBody>
</Card>
```

#### Input（输入框）
```tsx
<Input
  type="email"
  label="Email"
  placeholder="输入你的邮箱"
/>
```

#### Navbar（导航栏）
```tsx
<Navbar>
  <NavbarBrand>
    <p className="font-bold text-inherit">ACME</p>
  </NavbarBrand>
</Navbar>
```

### 3. 主题定制

在 `tailwind.config.ts` 中自定义主题：

```typescript
import { heroui } from "@heroui/theme";

export default {
  plugins: [
    heroui({
      themes: {
        light: {
          colors: {
            primary: {
              DEFAULT: "#0070f3",
              foreground: "#ffffff",
            },
          },
        },
        dark: {
          colors: {
            primary: {
              DEFAULT: "#0070f3",
              foreground: "#ffffff",
            },
          },
        },
      },
    }),
  ],
}
```

### 4. 使用暗色模式

HeroUI 自动支持暗色模式，已配置 `darkMode: "class"`：

```tsx
// 在你的 ThemeContext 中已经实现
const { theme, toggleTheme } = useTheme();
```

HTML 元素会自动添加/移除 `dark` class。

## 可用的组件

HeroUI 提供了丰富的组件：

### 布局组件
- `Navbar` - 导航栏
- `Card` - 卡片
- `Divider` - 分隔线
- `Spacer` - 间距

### 表单组件
- `Button` - 按钮
- `Input` - 输入框
- `Textarea` - 多行文本框
- `Select` - 下拉选择
- `Checkbox` - 复选框
- `Radio` - 单选框
- `Switch` - 开关

### 数据展示
- `Table` - 表格
- `Avatar` - 头像
- `Badge` - 徽章
- `Chip` - 标签
- `Progress` - 进度条

### 反馈组件
- `Modal` - 模态框
- `Tooltip` - 提示框
- `Popover` - 弹出框
- `Dropdown` - 下拉菜单

### 导航组件
- `Tabs` - 标签页
- `Breadcrumbs` - 面包屑
- `Pagination` - 分页
- `Link` - 链接

## 示例：重构现有组件

### 重构前（原生 HTML）
```tsx
<button className="bg-[#111827] rounded-lg px-5 py-2.5 hover:opacity-90">
  <span className="text-white font-bold">Launch App</span>
</button>
```

### 重构后（HeroUI）
```tsx
<Button
  color="default"
  variant="solid"
  className="font-bold"
>
  Launch App
</Button>
```

## 文档链接

- [HeroUI 官网](https://heroui.com)
- [组件文档](https://heroui.com/docs/components/button)
- [主题定制](https://heroui.com/docs/customization/theme)
- [暗色模式](https://heroui.com/docs/customization/dark-mode)

## 下一步

1. 逐步将现有组件重构为使用 HeroUI
2. 利用 HeroUI 的主题系统统一样式
3. 使用 HeroUI 的内置暗色模式支持
4. 享受更好的可访问性和响应式设计
