---
name: UI 統一性規範
description: 確保 koori-erp ERP 系統後台所有頁面的 UI 元件保持統一的樣式與行為
---
# UI 統一性規範
## 概述
本 skill 提供 koori-erp ERP 系統的 UI 統一性規範,確保所有頁面使用一致的元件、樣式類別、圖標和佈局模式。
## 核心原則
1. **使用統一的 UI 組件庫**:優先使用 `@/Components/ui/` 中的元件
2. **遵循既定的樣式類別**:使用 `app.css` 中定義的自定義按鈕類別
3. **統一的圖標系統**:全面使用 `lucide-react` 圖標
4. **一致的佈局模式**:表格、分頁、操作按鈕等保持相同結構
---
## 1. 按鈕規範
### 1.1 按鈕樣式類別
專案在 `resources/css/app.css` 中定義了統一的按鈕樣式類別,**必須**使用這些類別而非自定義樣式:
#### Filled 按鈕(實心按鈕)
```tsx
// 主要操作按鈕(綠色主題色)
// 成功操作
// 資訊操作
// 警告操作
// 錯誤/刪除操作
```
#### Outlined 按鈕(邊框按鈕)
```tsx
// 次要操作(主題色邊框)
// 成功樣式邊框
// 資訊樣式邊框
// 警告樣式邊框
// 錯誤/刪除樣式邊框
```
#### Text 按鈕(文字按鈕)
```tsx
// 文字按鈕
```
### 1.2 按鈕大小
使用 shadcn/ui Button 組件的標準尺寸:
- `size="sm"`:小型按鈕(h-8),用於表格操作列
- `size="default"`:預設按鈕(h-9),用於一般操作
- `size="lg"`:大型按鈕(h-10),用於主要 CTA
- `size="icon"`:圖標按鈕(size-9),僅含圖標的正方形按鈕
### 1.3 常見操作按鈕模式
#### 新增按鈕(頁面頂部)
```tsx
```
#### 編輯按鈕(表格操作列)
```tsx
```
#### 刪除按鈕(表格操作列,帶確認對話框)
```tsx
確認刪除
確定要刪除「{item.name}」嗎?此操作無法復原。
取消
handleDelete(item.id)}
className="bg-red-600 hover:bg-red-700"
>
刪除
```
---
## 2. 圖標規範
### 2.1 圖標庫
**統一使用 `lucide-react`**,不使用其他圖標庫(如 FontAwesome、Material Icons 等)。
### 2.2 圖標尺寸標準
- **小型圖標**:`h-3 w-3`(用於 Badge、小文字旁)
- **標準圖標**:`h-4 w-4`(用於按鈕、表格操作)
- **標題圖標**:`h-6 w-6`(用於頁面標題)
### 2.3 常用操作圖標映射
| 操作 | 圖標組件 | 使用情境 |
|------|----------|----------|
| 新增 | `` | 新增按鈕 |
| 編輯 | `` | 編輯按鈕 |
| 刪除 | `` | 刪除按鈕 |
| 查看 | `` | 查看詳情 |
| 搜尋 | `` | 搜尋欄位 |
| 篩選 | `` | 篩選功能 |
| 下載 | `` | 下載/匯出 |
| 上傳 | `` | 上傳/匯入 |
| 設定 | `` | 設定功能 |
| 複製 | `` | 複製內容 |
| 郵件 | `` | Email 顯示 |
| 使用者 | ``, `` | 使用者管理 |
| 權限 | `` | 角色/權限 |
| 排序 | ``, ``, `` | 表格排序 |
### 2.4 圖標使用範例
```tsx
import { Plus, Pencil, Trash2, Eye, Search } from 'lucide-react';
// 頁面標題
使用者管理
// 按鈕內圖標
// 純圖標按鈕(表格操作列)
```
---
## 3. 表格規範
### 3.1 表格容器
使用統一的表格包裝樣式:
```tsx
```
或使用更精緻的樣式(用於管理頁面):
```tsx
```
### 3.2 表格標題列
```tsx
#
操作
```
**關鍵要點**:
- 使用 `bg-gray-50` 背景色
- 序號欄位固定寬度 `w-[50px]` 並置中
- 可排序欄位使用 `