SKILLS / 前端設計 / redesign-existing-projects
前端設計
redesign-existing-projects
先掃描既有技術與視覺模式,再依影響排序診斷模板感、排版、色彩、版面及缺失狀態,以局部升級保留原有功能與內容。
查看來源 ↗作者/來源Leonxlnx★ 85,711 GitHub Stars
測試版本ccbc15639c97更新日期:2026-08-24T15:23:56Z
支援平台OpenAI · Claude本次實測平台
安裝方式npx skills add leonxlnx/taste-skill --skill redesign-existing-projects
公平比較方式
三個問題,分別測載入前與載入後。
每次回答都在全新環境中產生。兩邊使用相同模型與設定,唯一差別是右側載入了這個 Skill。
模型版本gpt-5.6-sol帳號方案ChatGPT Plus思考強度medium執行工具codex-cli-native-skill
真實測試使用本機已登入的 ChatGPT Plus 實際執行,完成於 2026年8月31日。所有檢查通過後才公開,回答未經人工改寫。
三階段測試3 個問題全部完成版本核對3/3 通過環境清理9/9 通過測試隔離每回合全新環境
測試問題既有首頁是 React + Tailwind:Inter、紫藍 45 度漸層 hero、置中標題『Elevate your workflow』、三張等寬 feature 卡、所有元素 rounded-xl shadow-lg。產品是台灣小型工廠的設備保養排程。請先做 audit,再提出依影響排序的局部改版方案;保留 React/Tailwind 與現有功能,不要重寫整站。
載入前 · 0 個 Skill載入後 · 版本已核對再次確認 · 0 個 Skill已確認模型套用 Skill三個環境皆已清理
未載入 Skill2400 tokens · 51021 ms
## 首頁 Audit
範圍說明:目前工作區未提供可檢視的專案檔案,以下依題述的既有首頁進行介面與產品定位 audit,不推定未描述的功能或內容。
1. **核心價值不夠具體**
- 「Elevate your workflow」屬通用 SaaS 文案,無法讓台灣小型工廠快速判斷產品用途。
- 未直接回答三個關鍵問題:管理什麼、避免什麼損失、適合誰。
2. **首屏缺少產品證據**
- 置中標題搭配抽象漸層,品牌感強於工具感。
- 沒有排程表、待保養設備或逾期提醒等真實介面,使用者難以理解操作方式。
3. **資訊層級過度平均**
- 三張等寬 feature 卡給予所有功能相同權重,沒有突出「近期保養/逾期風險」等主要任務。
- `rounded-xl shadow-lg` 套用到所有元素,會讓按鈕、卡片與展示容器互相競爭。
4. **視覺語言與使用情境有落差**
- 紫藍 45 度漸層偏向泛科技產品,較難傳達設備、維修與可靠度。
- 過多圓角和厚陰影降低資訊密度,不利於管理型產品建立穩定、可掃讀的印象。
5. **中文字體可能不一致**
- Inter 不包含完整繁中字形;瀏覽器會混用系統 fallback,中文與數字的字重、基線可能不一致。
- 設備編號、日期與狀態數字仍可保留 Inter,但中文應明確指定字體堆疊。
6. **可能存在可用性風險**
- 漸層上的文字對比、陰影邊界及狀態只靠顏色辨識,需實際檢查。
- 若卡片 hover 或按鈕沒有明確 focus 樣式,鍵盤操作辨識度不足。
## 依影響排序的局部改版方案
### P0 — 改寫 Hero 訊息,不改結構與導流
將通用標題替換為具體、在地化的產品承諾:
- Eyebrow:`給台灣小型工廠的設備保養排程`
- H1:`保養準時完成,設備少停一次`
- 說明:`集中管理設備、週期與負責人;到期前自動提醒,快速掌握逾期項目。`
- 主按鈕沿用現有主要動作,例如:`開始安排保養`
- 次按鈕:`查看操作方式`
保留原有 click handler、路由及 analytics,只更換文案與排列。桌面版可由完全置中改為左側文案、右側產品預覽;手機版維持單欄。
**影響:最高。** 首屏即可說清楚使用者、任務與成果。
### P0 — 在 Hero 加入既有產品畫面或輕量資料預覽
右側使用既有 UI 組件或靜態展示資料,呈現:
- 本週待保養數量
- 一項即將到期設備
- 一項逾期設備
- 負責人與預定日期
避免製作另一套展示專用功能;優先重用現有卡片、badge、列表元件。若目前沒有可重用元件,先以純展示區塊呈現,不新增互動邏輯。
**影響:最高。** 比抽象插圖更能降低理解與信任成本。
### P1 — 重排三張 feature 卡的優先級
保留三個既有功能與資料來源,但改成「一主兩次」:
- 主卡:保養排程與到期狀態
- 次卡:提醒與責任分派
- 次卡:設備紀錄/維修歷程
桌面版主卡可占兩欄或增加內容密度;平板與手機回到單欄。每張卡採「任務結果+一句說明」,避免只列功能名稱。
**影響:高。** 建立符合實際工作流程的閱讀順序,不需改功能。
### P1 — 收斂視覺層級
建議局部替換 Tailwind 樣式:
- 頁面背景:`bg-slate-50`
- 內容卡片:`rounded-lg border border-slate-200 bg-white shadow-sm`
- Hero 展示容器:保留 `rounded-xl`,陰影降為 `shadow-md`
- 主要按鈕:可保留 `rounded-lg`,不與卡片共用 `shadow-lg`
- 一般資訊區塊:以 border 或背景色分層,不再全部加陰影
紫藍漸層縮小為 Hero 的局部光暈或細窄背景層,不再主導整個首屏。主色可收斂至深藍/靛藍,橘色僅用於到期警示。
**影響:高。** 提升專業度與掃讀效率,同時保留既有品牌辨識。
### P2 — 建立設備狀態語意
統一狀態呈現,且不要只依賴顏色:
- 正常:勾選圖示+`正常`
- 即將到期:時鐘圖示+`3 天後到期`
- 已逾期:警示圖示+`逾期 2 天`
- 已完成:完成圖示+`已完成`
Badge 使用淡色背景、深色文字並保留文字標籤;紅色只用於真正需要處理的逾期項目。
**影響:中高。** 能直接映射工廠管理者的判斷與處理流程。
### P2 — 修正繁中字體與數字可讀性
在 Tailwind `fontFamily.sans` 或全域 CSS 中明確設定:
```js
sans: [
'Inter',
'"Noto Sans TC"',
'"PingFang TC"',
'"Microsoft JhengHei"',
'sans-serif',
]
```
日期、週期、設備編號可使用 `tabular-nums`;避免以過細字重顯示關鍵狀態。若專案目前未載入 Noto Sans TC,可先使用系統中文字體,避免增加首屏字型下載成本。
**影響:中。** 改善繁中排版一致性,修改範圍很小。
### P3 — 補齊響應式與無障礙細節
- 主標題控制在 `max-w-2xl`,手機使用約 `text-4xl`,桌面再提升。
- CTA 在小螢幕改為滿寬或上下排列。
- 所有互動元素加入可見的 `focus-visible` ring。
- 檢查漸層、badge、次要文字的 WCAG 對比。
- 動畫尊重 `motion-reduce`。
- Icon 搭配文字;裝飾圖示使用 `aria-hidden="true"`。
**影響:中低,但應列入上線驗收。**
## 建議改版邊界
- 保留 React、Tailwind、現有路由、事件處理、資料流與三項既有功能。
- 僅調整首頁文案、Hero 排列、卡片權重及 Tailwind class。
- 不新增後端、不重做設計系統、不建立另一套展示元件庫。
- 第一輪先完成 P0、P1;以首屏 CTA 點擊率、功能區互動率及手機跳出率驗證成效,再決定是否擴大修改。
已載入 Skill +2957 tokens · 62582 ms
## Audit 範圍
目前工作區只有設計技能文件,沒有 React 原始碼、`package.json`、Tailwind 設定或可執行頁面。因此以下 audit 以你提供的首頁描述為依據;實際元件結構、Tailwind 版本、互動狀態與無障礙實作尚無法驗證。
## 現況 Audit
| 面向 | 問題 | 影響 |
|---|---|---|
| 品牌辨識 | 紫藍 45° 漸層、置中標題、三張等寬卡片是常見 SaaS 模板語彙 | 看不出台灣工廠、設備或保養排程的產品定位 |
| 訊息內容 | 「Elevate your workflow」抽象且沒有說明替誰解決什麼問題 | 使用者進站後無法快速判斷產品價值 |
| Hero 結構 | 所有內容置中,缺少產品畫面、排程資訊或操作脈絡 | 視覺焦點強,但產品可信度與轉換力弱 |
| Feature 版型 | 三張等寬卡片讓所有功能看起來同等重要 | 無法呈現「建立設備 → 安排保養 → 到期提醒」的工作流程 |
| 字體 | Inter 對英文安全,但繁中會回退至系統字體 | 中英文質感與字重可能不一致 |
| 色彩 | 紫藍漸層偏向通用科技/AI 產品 | 與機台、工務、保養狀態的語意連結薄弱 |
| 表面樣式 | 全部使用 `rounded-xl shadow-lg`,缺少層級差異 | 所有元素都像浮動卡片,資訊層級模糊 |
| 內容可信度 | 未見設備名稱、保養週期、負責人、逾期狀態等領域資訊 | 難以讓工廠管理者產生「這是做給我用的」感受 |
| 互動與無障礙 | 未提供原始碼,無法確認 hover、focus、pressed、鍵盤操作及 reduced motion | 需要在實作前補做檢查 |
| 響應式 | 未提供實際版面,無法確認繁中斷行、卡片堆疊及手機 CTA | 小螢幕可用性存在未知風險 |
## 依影響排序的局部改版方案
### 1. 重寫 Hero 訊息與構圖
保留 Hero 與既有 CTA 行為,只調整內容和排列。
- 改為左文右圖的 `lg:grid-cols-12` 版型,文字約 5 欄、產品預覽約 7 欄。
- 主標題建議:**「設備保養不漏排,停機時間更好掌握」**
- 說明文字建議:
「集中管理機台保養週期、負責人與到期提醒,讓小型工廠提早安排人力與停機時段。」
- CTA 沿用現有目的地與事件處理,不新增流程;按鈕文字改成具體動作,例如「查看排程方式」或「開始安排保養」。
- 右側放現有產品介面的裁切畫面;若尚無截圖,可先以靜態 Tailwind 元件呈現「今日保養、7 日內到期、已逾期」三種狀態。
這項改動能最快改善定位、可信度與轉換,不需要碰核心功能。
### 2. 移除紫藍 AI 漸層,建立工業語境色盤
- 頁面底色改為帶冷灰的淺色,例如 `slate-50`/`stone-50`。
- 主品牌色集中使用低飽和深青色,例如 `teal-700` 或自訂 machine teal。
- Hero 使用偏左上或右後方的柔和 radial glow,不再使用均勻 45° 漸層。
- 黃、紅僅保留給「即將到期/逾期」等狀態,不當裝飾色。
- 陰影改為較淡的青灰色系,避免通用黑色 `shadow-lg`。
不建議為了視覺效果引入新的動畫或漸層套件。
### 3. 將三張等寬卡片改成工作流程版面
保留三項既有 feature 與內容來源,只更換呈現結構:
- 第一列使用 7/5 非對稱 grid:主功能「保養排程」占大區塊,次要功能置於側欄。
- 第二列將第三項功能改成橫向流程或全寬資訊帶。
- 內容順序改為使用者任務:
**建立設備資料 → 設定週期與負責人 → 接收到期提醒**
- 在區塊中加入小型領域資料,例如「CNC-03」、「每 500 小時」、「王師傅」、「逾期 2 天」。
- 不增加新的功能承諾;所有文案必須對應目前已存在的能力。
這能打破模板感,同時讓三個功能形成可理解的操作故事。
### 4. 建立明確的圓角與陰影層級
停止所有元素統一 `rounded-xl shadow-lg`:
- 大型 Hero 預覽容器:`rounded-2xl`
- 功能區塊:`rounded-xl`
- 按鈕與輸入元件:`rounded-md` 或 `rounded-lg`
- 狀態標籤:`rounded-sm`
- 一般內容區塊以背景或細邊框分層,不一定加陰影。
- 僅 Hero 產品預覽保留明顯 elevation;功能區使用 `shadow-sm` 或無陰影。
這是低風險的全頁一致性改善,可透過共用 class 或既有元件 variant 完成。
### 5. 調整繁中文字體與資訊層級
- 繁中主體改用 `"Noto Sans TC", system-ui, sans-serif`;若不希望增加字型請求,使用完整台灣系統字體 stack。
- 英數資料可保留 Inter,但應啟用 `tabular-nums`,讓日期、工時與數量對齊。
- Hero 標題使用 `font-semibold`、緊縮行高與字距,避免過粗。
- 內文限制在約 `max-w-[60ch]`,使用 `leading-7`。
- 標題加入 `text-balance`,內文使用 `text-pretty`,減少繁中不自然斷行。
- 避免全大寫英文小標,統一使用繁中 sentence case。
### 6. 補齊互動與無障礙狀態
不改變任何事件或路由,只補視覺回饋:
- 按鈕加入 200–250ms 的 hover、pressed 與 disabled 狀態。
- 所有可操作元素加入清楚的 `focus-visible` ring。
- 圖示按鈕提供可讀名稱;產品截圖加入有意義的 `alt`。
- 動畫僅使用 `transform` 與 `opacity`,並尊重 `prefers-reduced-motion`。
- 檢查文字、按鈕及狀態色的對比。
- 手機版 CTA 保持容易點擊,觸控高度至少約 44px。
### 7. 最後補做內容與中繼資料校正
- 將「Elevate」「seamless」「smart」等抽象詞改成排程、到期、停機、負責人等具體語言。
- 頁面標題可採「設備保養排程|為台灣小型工廠掌握保養與停機」。
- 補齊 description、Open Graph 圖片與 favicon。
- Footer 保持精簡,至少包含聯絡方式、隱私權與服務條款;是否需要 cookie consent 應依實際追蹤工具判定。
## 建議改版邊界
本輪只需修改 Hero、色彩 token、feature 排列、共用圓角/陰影及互動 class。保留現有 React 元件、資料來源、CTA handler、路由與 Tailwind;不更換框架、不導入大型 UI 或動畫套件,也不重寫其他頁面。實作前需先取得原始碼,以確認 Tailwind 版本、現有元件 API,以及三項 feature 對應的真實功能。
測試問題既有訂單表格有搜尋、分頁與『匯出』按鈕,但沒有 loading、empty、error、disabled、keyboard focus 或 mobile overflow 狀態。視覺是淺灰底、深綠單一 accent。請輸出保守改版規格與完整狀態矩陣,不可改變欄位、功能或品牌主色。
載入前 · 0 個 Skill載入後 · 版本已核對再次確認 · 0 個 Skill已確認模型套用 Skill三個環境皆已清理
未載入 Skill3941 tokens · 75467 ms
# 訂單表格保守改版規格
## 1. 改版原則
- 保留既有欄位、欄位順序、搜尋、分頁與「匯出」功能。
- 不新增篩選、排序、批次操作或其他業務功能。
- 品牌深綠主色維持不變;若現有色碼未提供,直接沿用既有設計 token,不另行推定。
- 延續淺灰頁面背景,以白色表格容器、灰階邊框與深綠互動狀態建立層級。
- 新增 loading、empty、error、disabled、keyboard focus 與 mobile overflow 狀態。
- 狀態提示不得造成表頭、搜尋區、分頁或容器寬度跳動。
## 2. 桌面版結構
由上至下排列:
1. 工具列:搜尋欄置左,「匯出」按鈕置右。
2. 狀態訊息區:僅在錯誤或必要提示時顯示。
3. 表格:維持既有欄位與內容格式。
4. 分頁列:維持既有頁碼與操作方式。
建議規格:
| 項目 | 規格 |
|---|---|
| 頁面背景 | 沿用既有淺灰色 |
| 表格容器 | 白底、1px 淺灰邊框、既有或小幅圓角 |
| 工具列間距 | 16px;窄桌面可縮至 12px |
| 容器內距 | 工具列與分頁 16px;表格區不額外縮排 |
| 表頭 | 淺灰底或白底、較正文略高字重,不使用新 accent 色 |
| 儲存格 | 維持既有對齊與欄位格式;垂直置中 |
| 列分隔 | 1px 淺灰線 |
| 列 hover | 中性淺灰,不以深綠大面積填色 |
| 主要按鈕 | 沿用品牌深綠與既有文字色 |
| 次要控制 | 白底、灰框;互動時使用品牌深綠邊框或文字 |
| 動效 | 120–200ms;尊重 `prefers-reduced-motion` |
## 3. 搜尋
- 保持既有搜尋邏輯、搜尋範圍、觸發方式及 placeholder;未知內容不改寫。
- 搜尋欄需有可見標籤,或以 `aria-label` 提供等價名稱。
- 若既有為即時搜尋,保留即時搜尋;建議輸入停止 300–500ms 後送出,避免重複請求。
- 若既有以 Enter 或搜尋按鈕觸發,維持原行為。
- 載入搜尋結果期間保留輸入內容。
- 搜尋無結果應顯示「找不到符合搜尋條件的訂單」,並提供「清除搜尋」;此操作只清除搜尋條件,不新增功能。
- Escape 是否清除搜尋需遵循既有行為,不另行改動。
## 4. 表格狀態呈現
### Loading
- 首次載入:保留表頭,表身顯示 5–8 列骨架;骨架欄數及寬度對應既有欄位。
- 搜尋或換頁載入:保留目前資料,表身加低透明度遮罩及置中 loading 指示,避免內容閃空。
- loading 指示包含視覺 spinner 與「載入中」文字;輔助技術以 `aria-live="polite"` 接收狀態。
- loading 期間避免重複觾發:停用匯出與分頁控制。搜尋欄是否停用依既有請求處理能力;若無法取消或合併請求,暫時停用並保留輸入值。
### Empty
- 系統完全無訂單:表頭保留,表身使用跨全欄空狀態,顯示「目前沒有訂單」。
- 搜尋無結果:顯示「找不到符合搜尋條件的訂單」與「清除搜尋」。
- 不加入插圖、新建訂單按鈕或其他未存在功能。
- 空狀態下隱藏分頁或顯示為停用;「匯出」停用。
### Error
- 首次載入失敗:表頭保留,表身顯示「訂單載入失敗」及「重試」。
- 搜尋或換頁失敗:保留上一份成功資料;表格上方顯示錯誤訊息與「重試」,避免誤認資料已清空。
- 匯出失敗:不影響表格內容;在匯出按鈕附近或工具列下方顯示「匯出失敗,請再試一次」。
- 錯誤訊息應使用既有錯誤色;若品牌系統未定義,採符合對比要求的標準錯誤紅,且同時使用圖示或文字,不只依賴顏色。
- 不顯示原始 API 訊息、堆疊或敏感資訊。
## 5. Disabled
- 停用狀態不可只降低透明度;同時移除 hover、顯示禁止游標,並設定原生 `disabled` 或 `aria-disabled="true"`。
- 建議停用條件:
| 控制 | 停用條件 |
|---|---|
| 匯出 | 首次載入、換頁/搜尋載入中、無資料、搜尋無結果、資料載入失敗、匯出進行中 |
| 上一頁 | 第一頁、無資料、載入中 |
| 下一頁 | 最末頁、無資料、載入中 |
| 特定頁碼 | 目前頁;載入中時所有頁碼停用 |
| 搜尋 | 僅在系統無法安全處理重複請求時於載入期間停用 |
| 重試 | 重試請求進行中 |
- 停用按鈕文字與背景仍須可辨識;不要求停用元件達一般文字對比,但不得看似消失。
- 原生 disabled 控制不進入 Tab 順序;若為自製元件,需同步阻止點擊與鍵盤觸發。
## 6. Keyboard focus
- 所有可操作元件均可透過 Tab 到達,順序依視覺排列:搜尋 → 匯出 → 表格內既有互動元件 → 分頁。
- 使用 `:focus-visible` 顯示焦點環:
- 2px 品牌深綠實線。
- 與元件外框至少 2px 間距,或使用不被裁切的內外雙層焦點樣式。
- 在深綠按鈕上,以白色內環加深綠外環確保可見。
- 焦點不得只以色彩或極細邊框表示。
- Enter/Space 可啟動按鈕;Enter 依既有方式提交搜尋。
- 換頁完成後,焦點保留在觸發的分頁控制;若該控制消失,移至目前頁控制。
- 重試完成後不強制跳焦點;狀態更新透過 live region 宣告。
- 表格僅作資料展示時,不為每個儲存格加入 `tabindex`。
## 7. Mobile overflow
斷點依既有系統;若未定義,可暫以容器寬度小於 768px 套用:
- 工具列改為垂直排列:搜尋欄滿寬,「匯出」按鈕滿寬或右對齊,依既有按鈕規範。
- 不刪除、不折疊、不重排欄位,也不轉為卡片。
- 表格置於獨立橫向捲動容器:
- `overflow-x: auto`
- `overscroll-behavior-x: contain`
- `-webkit-overflow-scrolling: touch`
- 表格設定可容納全部既有欄位的 `min-width`
- 捲動僅限表格區,頁面本身不可產生水平溢出。
- 左右邊緣可用中性陰影提示尚有內容;到達邊界時隱藏對應陰影。
- 首次進入可顯示一次簡短提示「左右滑動可查看完整表格」;不得遮擋資料。
- 分頁允許橫向排列或換行,但不得縮小至低於 44×44px 的觸控區。
- Loading、empty 與 error 內容以表格完整最小寬度為基準置中,不因 viewport 寬度截斷。
- 橫向捲動後進行換頁,建議將表格捲動位置重設至最左側;垂直頁面位置保持穩定。
## 8. 完整狀態矩陣
| 狀態 | 搜尋 | 表格/訊息 | 匯出 | 分頁 | 焦點與宣告 |
|---|---|---|---|---|---|
| 初始載入 | 顯示;依請求能力決定是否暫停用 | 保留表頭,顯示骨架列 | 停用 | 全部停用 | 宣告「正在載入訂單」 |
| 載入成功且有資料 | 可用 | 顯示資料 | 可用 | 依頁數啟用 | 宣告載入完成及結果數;若結果數不可得,僅宣告完成 |
| 載入成功但無訂單 | 可用 | 「目前沒有訂單」 | 停用 | 隱藏或全停用 | 宣告目前沒有訂單 |
| 初始載入失敗 | 可用 | 「訂單載入失敗」+重試 | 停用 | 全部停用 | 錯誤區使用 `role="alert"`;重試可聚焦 |
| 輸入搜尋條件 | 可用,保留輸入值 | 保留目前成功資料 | 維持原狀,直到請求開始 | 維持原狀 | 焦點留在搜尋欄 |
| 搜尋載入中 | 保留輸入;依請求能力決定是否停用 | 舊資料加遮罩與 loading | 停用 | 全部停用 | 禮貌宣告「正在搜尋訂單」 |
| 搜尋成功且有結果 | 可用 | 顯示結果,回到第一頁(僅限既有行為如此) | 可用 | 依結果頁數啟用 | 宣告結果數;焦點留在搜尋欄 |
| 搜尋無結果 | 可用 | 「找不到符合搜尋條件的訂單」+清除搜尋 | 停用 | 隱藏或全停用 | 宣告沒有符合條件的結果 |
| 搜尋失敗 | 可用並保留條件 | 保留上一份成功資料;顯示錯誤與重試 | 依畫面所保留資料決定:若仍為有效完整資料可用,否則停用 | 保留原頁狀態 | 錯誤區使用 `role="alert"` |
| 清除搜尋 | 清空條件 | 載入完整資料;載入時保留舊畫面 | 載入時停用 | 載入時停用 | 焦點回到搜尋欄 |
| 換頁載入中 | 可用;保留條件 | 保留目前頁並加遮罩 | 停用 | 全部停用 | 宣告「正在載入第 N 頁」 |
| 換頁成功 | 可用 | 顯示目標頁資料 | 可用 | 更新目前頁及前後頁狀態 | 焦點留在觸發控制;宣告第 N 頁已載入 |
| 換頁失敗 | 可用 | 保留原頁資料;顯示錯誤與重試 | 若原頁資料仍有效則可用 | 恢復原頁控制 | 宣告換頁失敗,焦點不跳動 |
| 第一頁 | 可用 | 正常資料 | 有資料時可用 | 上一頁停用 | 目前頁加 `aria-current="page"` |
| 中間頁 | 可用 | 正常資料 | 有資料時可用 | 上一頁、下一頁可用 | 同上 |
| 最末頁 | 可用 | 正常資料 | 有資料時可用 | 下一頁停用 | 同上 |
| 僅一頁 | 可用 | 正常資料 | 有資料時可用 | 前後頁停用;頁碼可保留或隱藏,依既有設計 | 目前頁語意保持正確 |
| 匯出可用 | 可用 | 不變 | 深綠主要或既有按鈕樣式 | 不變 | 可透過 Tab、Enter、Space 操作 |
| 匯出進行中 | 可用 | 不變 | 停用;顯示 spinner 與「匯出中」 | 可用 | 宣告正在匯出;焦點留在按鈕 |
| 匯出成功 | 可用 | 不變 | 恢復可用 | 不變 | 宣告「匯出完成」;不強制移動焦點 |
| 匯出失敗 | 可用 | 資料不變;顯示匯出錯誤 | 恢復可用 | 不變 | 錯誤使用 `role="alert"`;可再次觸發 |
| 控制 hover | 不適用於純觸控 | 資料列以中性淺灰提示 | 沿用深綠 hover | 邊框/文字轉深綠 | 不取代焦點樣式 |
| 控制 focus-visible | 深綠焦點環 | 僅既有可操作內容顯示焦點 | 白色內環+深綠外環 | 深綠焦點環 | 焦點不可被容器裁切 |
| 控制 disabled | 視條件套用 | 不適用 | 降低強調、禁止互動 | 同左 | 不進入 Tab 順序或以 `aria-disabled` 正確阻止操作 |
| 行動版正常 | 滿寬 | 表格區可橫向捲動 | 滿寬或右對齊 | 可換行或捲動 | 提供橫向內容提示 |
| 行動版 loading | 保留版位 | 表格最小寬度不變,骨架可橫向捲動 | 停用 | 停用 | loading 訊息不可被水平裁切 |
| 行動版 empty/error | 保留版位 | 空狀態或錯誤跨全部既有欄位 | 依狀態停用 | 隱藏或停用 | 主要訊息在可視區內可讀 |
| 行動版水平捲動 | 不變 | 顯示邊緣陰影;不改欄位 | 不變 | 不變 | 捲動容器應有可辨識名稱,鍵盤亦可捲動 |
## 9. 可及性與驗收標準
- 正文與背景對比至少 4.5:1;大型文字及圖形控制至少 3:1。
- 焦點指示與相鄰顏色至少 3:1。
- 所有按鈕具可辨識名稱;圖示不可作為唯一文字資訊。
- 表格使用正確的 `table`、`thead`、`tbody`、`th`、`scope="col"`;不改動既有欄位語意。
- loading 狀態設定 `aria-busy="true"`;完成後恢復為 `false`。
- 一般進度使用 `aria-live="polite"`,錯誤使用 `role="alert"`;避免同一訊息重複宣告。
- 200% 縮放時功能仍可用,文字與控制不重疊。
- 320px 寬度下頁面不得整體水平捲動;只有表格捲動容器可水平移動。
- 鍵盤可完成搜尋、匯出、重試及所有分頁操作,且全程可見目前焦點。
- 所有新增狀態均不得改變既有欄位、資料格式、搜尋邏輯、分頁邏輯、匯出內容或品牌主色。
已載入 Skill +4673 tokens · 94722 ms
# 既有訂單表格保守改版規格
## 1. 改版邊界
- 保留現有欄位、欄位順序、資料格式、搜尋、分頁與「匯出」功能。
- 保留目前淺灰背景與深綠品牌主色;深綠色沿用既有色碼,不另行假設或替換。
- 不新增篩選、排序、批次操作、欄位隱藏、卡片式訂單或其他流程。
- 不以新色彩區分狀態;錯誤主要透過圖示、文字與結構表達,深綠只用於操作與焦點。
- 桌面版維持既有資訊密度;手機版不刪除、折疊、改名或重新排列欄位。
## 2. 視覺規格
### 頁面與容器
- 頁面維持既有淺灰底。
- 搜尋、匯出與表格置於同一內容區,沿用既有最大寬度與左右邊界。
- 表格容器使用白色或現有表面色,僅保留細緻中性灰邊框;不新增強烈陰影或裝飾。
- 搜尋列與匯出按鈕桌面並列;窄螢幕可換行,但搜尋在前、匯出在後。
- 元件間距以既有 spacing token 為基準;若沒有 token,建議採 8px 倍數。
### 字體與資料
- 沿用現有字體,不導入新字型。
- 表頭採中等字重,避免全大寫。
- 訂單編號、日期、金額等資料啟用 `font-variant-numeric: tabular-nums`,不改變顯示內容。
- 表格文字維持單行;原有截斷規則若存在則保留,否則不新增截斷。
### 色彩使用
| 用途 | 規格 |
|---|---|
| 品牌操作色 | 沿用現有深綠主色 |
| 頁面背景 | 沿用現有淺灰 |
| 表面 | 現有白色或表面色 |
| 主要文字 | 現有深色文字 |
| 次要文字 | 中性灰,須符合對比要求 |
| 邊框/分隔線 | 中性淺灰 |
| 錯誤 | 深色文字+錯誤圖示;不另加第二 accent |
| 焦點 | 深綠外框,搭配淺色間隔確保可辨識 |
## 3. 元件規格
### 搜尋
- 保留目前 placeholder、搜尋範圍與觸發方式。
- 搜尋中於輸入框尾端顯示小型進度指示;不得造成輸入框寬度跳動。
- 保留使用者輸入,包含載入失敗或搜尋無結果時。
- `Escape` 僅在既有產品行為允許時清除搜尋;不得新增未定義快捷鍵。
- 搜尋結果更新後,以非打斷式 live region 宣告結果數或「沒有符合的訂單」。
### 匯出
- 保留「匯出」文字及既有格式、資料範圍與下載行為。
- 執行中按鈕保持原寬,文字改為「匯出中」,附進度指示。
- 匯出中停用重複觸發;完成後恢復原狀。
- 匯出失敗在工具列下方顯示行內訊息與「重試」,不得只使用 toast 或顏色提示。
- 成功下載若既有系統已有提示則保留;否則不新增阻斷式對話框。
### 分頁
- 保留目前頁碼、上一頁/下一頁與每頁筆數規則。
- 首頁停用「上一頁」,末頁停用「下一頁」。
- 換頁載入期間保留目前表格尺寸與頁碼,避免內容跳動。
- 載入完成後,焦點留在觸發換頁的控制項;不得自動跳回頁首。
- 搜尋導致總頁數縮減時,回到有效頁面;通常為第一頁,但應沿用既有資料邏輯。
### 表格
- 表頭、欄位、順序與資料格式完全不變。
- 行 hover 僅以非常淡的中性色或既有深綠低透明度底色提示,不增加陰影或位移。
- 若整列目前不可操作,不新增指標游標或點擊行為。
- 載入骨架必須對齊實際欄寬,避免載入完成後水平位移。
- 空白與錯誤狀態置於表格內容區,表頭仍保留,讓欄位脈絡不消失。
## 4. 完整狀態矩陣
| 區域/情境 | 視覺呈現 | 可用操作 | 鍵盤與輔助技術 | 狀態解除 |
|---|---|---|---|---|
| 頁面初始載入 | 保留工具列與表頭;內容顯示約 5–8 列骨架 | 搜尋、分頁、匯出暫停使用 | 容器設 `aria-busy="true"`;宣告「正在載入訂單」一次 | 資料成功或失敗 |
| 表格預設 | 顯示現有資料與分頁 | 所有符合條件的操作可用 | 使用語意化 `table`、欄位標題關聯正確 | 搜尋、換頁、匯出或錯誤 |
| 表格行 hover | 淡色背景,不移動內容 | 不新增任何功能 | 不依賴 hover 傳遞必要資訊 | 游標離開 |
| 搜尋框預設 | 現有邊框與 placeholder | 可輸入 | 具可辨識 label;不可只依賴 placeholder | 輸入或聚焦 |
| 搜尋框 hover | 邊框略加深 | 可輸入 | 無額外宣告 | 游標離開 |
| 搜尋框 focus | 2px 深綠焦點框,與元件保持約 2px 間隔 | 可輸入、選取與刪除 | 焦點不可被陰影或容器裁切 | 焦點移開 |
| 搜尋輸入中 | 保留輸入值;必要時尾端顯示進度 | 可繼續輸入 | 不因每次按鍵反覆朗讀「載入中」 | 結果返回或失敗 |
| 搜尋有結果 | 更新表格;顯示既有結果數資訊(若原本存在) | 搜尋、分頁、匯出可用 | live region 宣告結果數 | 新搜尋或清除搜尋 |
| 搜尋無結果 | 保留表頭;內容區顯示「找不到符合『關鍵字』的訂單」與「清除搜尋」 | 可修改或清除搜尋;匯出停用 | 焦點留在搜尋框;訊息以 `status` 宣告 | 修改或清除搜尋 |
| 系統本來沒有訂單 | 保留表頭;內容區顯示「目前沒有訂單」 | 搜尋、分頁、匯出停用 | 不將焦點自動移入空狀態 | 系統取得資料 |
| 換頁載入 | 保留表頭、欄寬與表格高度;資料列改為骨架或低對比載入態 | 分頁與匯出暫停;避免重複換頁 | `aria-busy="true"`;焦點留在觸發按鈕 | 新頁成功或失敗 |
| 分頁可用 | 目前頁有清楚選取態 | 可換頁 | 目前頁使用 `aria-current="page"` | 到達邊界或載入 |
| 分頁首頁 | 「上一頁」呈 disabled 外觀 | 可前往下一頁 | 原生 `disabled`;不接受焦點 | 離開首頁 |
| 分頁末頁 | 「下一頁」呈 disabled 外觀 | 可回上一頁 | 原生 `disabled`;不接受焦點 | 離開末頁 |
| 單頁資料 | 分頁區可隱藏或將前後頁停用,沿用現有規則 | 不可換頁 | 不留下無作用的可聚焦控制 | 總頁數增加 |
| 一般載入錯誤 | 保留表頭;內容區顯示錯誤圖示、「無法載入訂單」與「重試」 | 可重試;搜尋、分頁、匯出停用 | 錯誤訊息使用 `role="alert"`;焦點不自動跳動 | 重試成功 |
| 換頁錯誤 | 保留原頁資料,不清空表格;工具列下方顯示「無法載入下一頁」與「重試」 | 可重試或留在原頁 | 宣告失敗;焦點留在換頁控制項 | 重試成功或取消 |
| 搜尋錯誤 | 保留搜尋字串與前一份有效資料;顯示「搜尋失敗,請重試」 | 可修改關鍵字或重試;匯出以前一有效資料規則為準 | 訊息以 `role="alert"` 宣告一次 | 新搜尋或重試成功 |
| 匯出預設 | 深綠主按鈕,標籤維持「匯出」 | 可觸發匯出 | 按鈕名稱清楚,不只使用圖示 | 點擊或條件改變 |
| 匯出 hover | 深綠色做既有色階內的輕微明暗變化 | 可點擊 | 不影響焦點樣式 | 游標離開 |
| 匯出 pressed | 輕微明暗或 1px 視覺下壓;不得改變尺寸 | 可完成點擊 | 保留可見焦點 | 放開按鍵或指標 |
| 匯出 focus | 2px 深綠焦點框+淺色間隔 | `Enter`、`Space` 皆可觸發 | 使用原生 `button` | 焦點移開 |
| 匯出進行中 | 原寬按鈕顯示進度指示與「匯出中」 | 禁止重複觸發 | `disabled`、`aria-busy="true"`;宣告「正在匯出」一次 | 成功或失敗 |
| 匯出成功 | 按鈕恢復「匯出」;下載按既有流程開始 | 可再次匯出 | 非打斷式宣告「匯出完成」 | 宣告完成後維持預設 |
| 匯出失敗 | 按鈕恢復;工具列下方顯示「無法匯出訂單」與「重試」 | 可重試 | 錯誤訊息使用 `role="alert"` | 重試或下一次成功 |
| 匯出無資料 | 按鈕呈 disabled | 不可觸發 | 原生 `disabled`;可由鄰近空狀態理解原因 | 出現可匯出資料 |
| 所有 disabled 控制 | 中性灰文字/邊框、降低對比但仍可辨識;不得只降低透明度至不可讀 | 不響應 hover、click 或快捷鍵 | 原生控制優先使用 `disabled`;自訂控制需 `aria-disabled="true"` 並阻止操作 | 前置條件恢復 |
| 鍵盤巡覽 | 焦點依視覺順序:搜尋→匯出→表格內原有互動項→分頁 | `Tab`/`Shift+Tab` 正常巡覽 | 不新增正向 `tabindex`;焦點環不可被裁切 | 使用者移動焦點 |
| 手機窄螢幕 | 工具列換行;表格保持原欄位與順序並水平捲動 | 可橫向捲動與操作 | 捲動容器可聚焦,具「表格可水平捲動」的可存取名稱 | 螢幕變寬 |
| 手機橫向溢出起點 | 顯示完整左側內容;右緣可有淡淡漸隱提示尚有欄位 | 觸控或觸控板橫向捲動 | 不以漸隱作為唯一提示 | 開始向右捲動 |
| 手機橫向溢出中段 | 左右皆可捲動;捲動條保持可用 | 可向兩側捲動 | 聚焦元素須自動捲入可視區 | 抵達任一邊界 |
| 手機橫向溢出終點 | 右側內容完整;左緣可顯示回捲提示 | 可向左捲動 | 不鎖定垂直頁面捲動 | 向左捲動或變寬 |
| 減少動態效果 | 移除 spinner 旋轉與位移動畫,改用靜態進度圖示或低頻淡化 | 功能不變 | 尊重 `prefers-reduced-motion` | 系統偏好變更 |
## 5. 狀態優先順序
同時發生多種狀態時,依下列順序決定主要內容區:
1. 初始載入
2. 全表格載入錯誤
3. 搜尋或換頁載入
4. 搜尋無結果
5. 系統無訂單
6. 正常資料
匯出進度與匯出錯誤屬於工具列局部狀態,不應覆蓋正常表格;換頁失敗應保留上一份成功資料。
## 6. Mobile overflow 規格
- 表格外層使用 `overflow-x: auto`,不得壓縮成不可讀寬度。
- 設定合理的表格 `min-width`,數值依現有欄位實際寬度決定。
- 不隱藏欄位、不改為卡片、不將資料拆成多列。
- 表頭與資料維持對齊;手機上不得使用固定欄寬造成文字重疊。
- 觸控捲動不應阻斷頁面垂直捲動。
- 捲動容器的焦點樣式應位於容器內側,避免在窄螢幕被裁切。
- 若加入邊緣漸隱提示,只能使用中性色或既有表面色,不新增 accent。
## 7. 可用性與驗收標準
- 所有互動元件均具有 default、hover、pressed、focus、disabled 狀態。
- 焦點框與背景至少達 3:1 對比;一般文字至少達 WCAG AA 對比。
- 只使用鍵盤即可完成搜尋、換頁、匯出與重試。
- loading、empty、error 不造成表頭、工具列或表格寬度明顯跳動。
- 無訂單與搜尋無結果必須使用不同文案與可用操作。
- 載入或匯出期間不能產生重複請求。
- 錯誤不能只用顏色表示,且必須提供可執行的下一步。
- 在 320px 寬度下,所有原有欄位仍可透過水平捲動取得。
- 200% 縮放時不重疊、不截斷主要操作,也不遺失欄位或功能。
- 精確色碼、欄寬、骨架列數與斷點須依現有設計 token 和實際資料密度確認;本規格不假設專案未提供的數值。
測試問題地方政府報修頁已有 WCAG AA、法規文字、繁中內容與高齡使用者測試紀錄;主管只說『看起來太舊,全部做成玻璃擬態』。請說明你會保留與拒絕什麼、如何提出替代方向、分兩階段執行並驗證不破壞任務成功率。
載入前 · 0 個 Skill載入後 · 版本已核對再次確認 · 0 個 Skill已確認模型套用 Skill三個環境皆已清理
未載入 Skill1192 tokens · 26944 ms
我會把「玻璃擬態」視為視覺現代化的方向,不直接套用到全部元件;既有的無障礙、法規、繁中語意與實測成果是不可退讓的驗收基準。
**保留**
- WCAG 2.2 AA:文字與背景對比、鍵盤操作、焦點可見、放大與重排、錯誤辨識、減少動態效果等。
- 法規文字的原文、完整性、顯著程度及必要揭露位置。
- 已驗證的繁中用語、資訊架構、欄位順序與報修流程。
- 高齡使用者測試中證實有效的字級、觸控目標、按鈕辨識度、錯誤復原與操作提示。
- 原有成功率與完成時間,作為新版不可倒退的基準。
**拒絕**
- 拒絕「全部」玻璃化,尤其是表單欄位、主要按鈕、錯誤訊息、法規區塊、導覽與狀態提示。
- 拒絕低透明度文字、依賴模糊背景維持對比、細邊框、過度反光、持續動畫,以及只靠顏色區分狀態。
- 拒絕為視覺一致性改寫法規、縮小文字、隱藏必要內容,或在沒有驗證前一次替換整站。
- 若效果在背景圖片、舊裝置、高對比模式或不支援模糊時失效,必須提供穩定的不透明底色,不以「技術限制」接受降級。
**替代方向**
我會先確認主管想解決的是「視覺過時」,而不是指定某種實作方式,再提出「節制式玻璃擬態」:將玻璃效果限制在低風險的裝飾層、頁首、摘要卡片或非關鍵容器;核心任務元件採現代但清晰的實色介面。透過更新色彩系統、留白、字體層級、圓角、圖示與一致的元件狀態,達成新穎感。
提案會提供三個同內容、同流程的原型:現代實色版、節制玻璃版、全面玻璃版,逐項標出對比、可讀性、效能與任務風險。建議採節制玻璃版,並把主管偏好轉化為可驗收條件,例如「感覺現代」評分提升,但任務成功率不得下降。
**第一階段:低風險試點**
- 先凍結既有基準:報修完成率、中途退出率、錯誤率、完成時間、求助次數,以及高齡使用者的主觀難度。
- 建立設計規則與元件原型;先改一個代表性頁面,保留原流程與文案,只調整視覺。
- 執行自動與人工無障礙檢查:一般、hover、focus、disabled、error 等狀態的對比;鍵盤與螢幕閱讀器;200%/400% 放大;高對比與減少動態模式;不同背景及不支援模糊時的降級。
- 邀請既有目標族群,尤其高齡使用者,完成「找到入口—填寫—辨識錯誤—修正—送出—取得案件編號」等核心任務。
- 只有在所有阻斷性問題修正、WCAG AA 與法規審核通過,且成功率未低於基準後,才進入第二階段。
**第二階段:分批擴展**
- 依風險由低到高發布:資訊頁與非關鍵容器 → 查詢與摘要 → 報修表單、錯誤處理及送出確認。
- 使用功能旗標或小流量分組比較新舊版本;每批觀察足夠樣本與高齡族群結果後再擴大,並保留快速回復舊版的能力。
- 上線後監測完成率、錯誤率、退出點、完成時間、客服/電話轉入與無障礙回報;資料按裝置、瀏覽器及可取得的使用者群體切分,避免整體平均掩蓋高齡族群退步。
- 若成功率顯著下降,或完成時間、錯誤率、求助率超過事先約定門檻,就停止擴展並回復該批,不用「較現代」抵銷任務退步。
最終驗收採雙門檻:新版必須通過 WCAG AA、法規與內容審核;核心任務成功率不得出現具實務意義的下降,並須確認高齡使用者沒有被平均數掩蓋。若全面玻璃擬態無法通過任一門檻,我會保留現代化成果,但拒絕全面套用。
已載入 Skill +1688 tokens · 36418 ms
## 設計立場
我會接受主管想讓頁面「更現代、具層次」的目標,但拒絕把「全部玻璃擬態」直接當成實作規格。玻璃擬態只是視覺手法;套用到表單、錯誤訊息與主要按鈕,可能降低對比、邊界辨識及高齡使用者的閱讀穩定性。
### 必須保留
- 已符合 WCAG AA 的文字、元件與焦點對比。
- 鍵盤操作、跳至主要內容、語意化標記、螢幕閱讀器名稱及錯誤提示。
- 法規文字的內容、完整性及必要的呈現位置;任何調整先經法務或業務確認。
- 繁體中文用語、字級放大能力、清楚的欄位名稱與白話指引。
- 經高齡使用者測試證實有效的流程順序、按鈕位置、觸控尺寸、返回方式與確認頁。
- 報修核心路徑及既有功能,不藉視覺改版重寫資訊架構或技術框架。
### 明確拒絕
- 在所有表單、法規文字、錯誤訊息和主要操作區使用透明背景。
- 依賴背景模糊才能讀懂內容,或以背景照片、漸層干擾文字。
- 低對比半透明邊框、只靠顏色表示狀態、過細字重。
- 為營造玻璃感而縮小字級、減少觸控範圍或移除可見焦點框。
- 持續漂浮、視差及大幅轉場;必須尊重 `prefers-reduced-motion`。
- 在沒有可測量驗證與回復方案的情況下全站一次上線。
## 替代方向
我會向主管提出「公共服務清透層次感」,而不是「全站玻璃化」:
- 核心表單維持高不透明度、清楚邊界與穩定背景。
- 只在非關鍵區域使用節制的玻璃效果,例如頁首、進度摘要或裝飾背景。
- 以字體層級、留白、單一政府識別色、較柔和的陰影和一致圓角建立現代感。
- 提供不支援 `backdrop-filter`、高對比模式及降低透明度偏好下的不透明替代樣式。
- 製作三個代表頁面的並列方案:現況、全玻璃示意、建議方案;同時標示對比值、可讀性風險及測試結果,讓決策回到「現代感且不降低完成率」。
## 兩階段執行
### 第一階段:低風險視覺更新與基準驗證
先記錄現況基準:報修完成率、完成時間中位數、欄位錯誤率、放棄率、返回修改次數及求助率。
只更新設計 token 與共用元件,包括色彩、字級、間距、按鈕狀態、焦點樣式和有限的玻璃裝飾;不改流程、欄位、法規文字及核心資訊架構。以代表性頁面完成原型,執行:
- 自動化 WCAG 掃描及人工鍵盤、螢幕閱讀器、200%/400% 放大檢查。
- 一般、高對比、降低動態、低階裝置及不支援模糊效果的情境測試。
- 邀請原目標族群、尤其高齡使用者,執行相同報修任務。
- 檢查正常、載入、錯誤、成功及逾時狀態,而不只看靜態首頁。
任何 AA 失敗、關鍵內容辨識困難或任務指標明顯退步,都先修正,不進入下一階段。
### 第二階段:小流量上線與非劣效驗證
將通過第一階段的版本以小流量或指定服務區試行,保留舊版與快速回復開關。比較新舊版本的:
- 報修完成率。
- 完成時間與放棄率。
- 驗證錯誤、重複送出及客服求助率。
- 高齡使用者與輔助科技使用者的分群結果。
- 裝置效能、渲染延遲及瀏覽器相容性。
上線前先約定非劣效門檻,例如「完成率不得下降超過 2 個百分點,錯誤率及求助率不得顯著增加」;實際門檻應依既有流量與樣本數由研究或數據人員確認。只有達標且沒有嚴重無障礙問題才逐步擴大流量;未達標就回復舊版並針對失敗環節修正。
如此可以交付主管期待的現代感,同時把 WCAG AA、法規正確性與報修任務成功率設為不可交換的驗收條件。
測試紀錄這次測試記錄了什麼?
固定不變兩邊使用相同的模型版本、帳號方案、系統指令、思考強度與測試問題。
分開測試每次回答都使用全新環境。載入前不含任何 Skill,載入後只含本頁指定的 Skill。
完整才公開三題的所有步驟與環境清理都成功後,才顯示結果。若無法確認模型是否套用 Skill,也會清楚標示。