diff --git a/.agent/skills/ui-consistency/SKILL.md b/.agent/skills/ui-consistency/SKILL.md
new file mode 100644
index 0000000..0560d13
--- /dev/null
+++ b/.agent/skills/ui-consistency/SKILL.md
@@ -0,0 +1,742 @@
+---
+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]` 並置中
+- 可排序欄位使用 `
)}
diff --git a/resources/js/Pages/Admin/Role/Index.tsx b/resources/js/Pages/Admin/Role/Index.tsx
index 743b850..edc755f 100644
--- a/resources/js/Pages/Admin/Role/Index.tsx
+++ b/resources/js/Pages/Admin/Role/Index.tsx
@@ -3,6 +3,7 @@ import { Head, Link, router } from '@inertiajs/react';
import { cn } from "@/lib/utils";
import { Shield, Plus, Pencil, Trash2, Users } from 'lucide-react';
import { Button } from '@/Components/ui/button';
+import { Badge } from '@/Components/ui/badge';
import {
Table,
TableBody,
@@ -112,9 +113,9 @@ export default function RoleIndex({ roles }: Props) {
{role.name}
-
+
{role.permissions_count} 項權限
-
+
setShowDeleteDialog(true)}
variant="outline"
- className="group border-red-200 text-red-600 hover:bg-red-50 hover:text-red-700 hover:border-red-300"
+ className="button-outlined-error"
>
刪除品項
@@ -250,7 +250,7 @@ export default function EditInventory({ warehouse, inventory, transactions = []
確認刪除
diff --git a/resources/js/Pages/Warehouse/Inventory.tsx b/resources/js/Pages/Warehouse/Inventory.tsx
index cee9c5b..f04c5a8 100644
--- a/resources/js/Pages/Warehouse/Inventory.tsx
+++ b/resources/js/Pages/Warehouse/Inventory.tsx
@@ -186,10 +186,10 @@ export default function WarehouseInventoryPage({
取消
{
+ onClick={() => {
handleDelete();
}}
- className="bg-red-600 hover:bg-red-700 text-white"
+ className="button-filled-error"
>
確認刪除
diff --git a/resources/js/Pages/Warehouse/SafetyStockSettings.tsx b/resources/js/Pages/Warehouse/SafetyStockSettings.tsx
index 80adf3c..e5218b4 100644
--- a/resources/js/Pages/Warehouse/SafetyStockSettings.tsx
+++ b/resources/js/Pages/Warehouse/SafetyStockSettings.tsx
@@ -180,7 +180,7 @@ export default function SafetyStockPage({
取消
確認刪除