Spaces:
Sleeping
線條柔化:結構線降到 2.25:1、氣泡邊框改細線與深色對齊
Browse files千卉看實機截圖後回饋兩點:①淺色氣泡的邊框要跟深色一樣淡、兩個模式一致
②整體線條對比太高、看起來醜,要更柔和。
- --c-border-strong(淺色)#7c8798 → #a3aebd:對白從 3.64:1 降到 2.25:1。
這是刻意離開 WCAG 1.4.11 的 3:1 門檻的視覺決定,但仍是改版前 1.2:1 的
近兩倍,業主原本回報的「淺色看不清楚區塊」在這個亮度差已解決;文字對比
不受影響,全站文字維持 AA。日後若要嚴格達標,把這個 token 調回 #7c8798
即可,19 處線條會一起跟上。
- 對話氣泡邊框從結構線降到細線 --c-divider:淺色 #b6c0cd 對氣泡底 1.64:1、
對欄底 1.76:1,深色 rgba(148,163,184,.28) 疊 #0d1526 是 1.67:1,兩個模式
的邊框亮度差幾乎相同——「深淺一致」是量出來的,不是各挑一個順眼的值。
- --c-input-border(淺色)同步柔化成 #a3aebd。
- 使用者訊息氣泡維持與 AI 同款(業主確認先這樣,只靠左右對齊區分)。
docs/design.md 同步三處:token 表數值、結構線離開 3:1 的取捨說明、氣泡
邊框改用細線的量測依據。
驗證:重啟後實測淺色氣泡邊框 1.64/1.76:1、結構線 2.15-2.25:1,深色數值
與改動前完全相同;情境 1 走到語料說明表單、深淺兩色截圖確認,console 僅
3 筆既有外部資源錯誤。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MQuAXWC1hCsiT48TXftPc7
- assets/app.css +19 -7
- docs/design.md +11 -5
|
@@ -22,13 +22,22 @@
|
|
| 22 |
跟水平分界線在淺色模式下等於看不見(深色當初已針對 .app-header/欄邊框/
|
| 23 |
標題底線個別補過 rgba(148,163,184,.28),淺色從沒補)。這裡改成兩級線條,
|
| 24 |
之後新增元件挑其中一級,不要再直接用 --c-border 畫可見邊界:
|
| 25 |
-
--c-border-strong 結構線(區塊外框、欄位分隔、水平分界)
|
| 26 |
-
--c-divider
|
| 27 |
深色值直接沿用原本散在各選擇器的硬寫值,深色外觀零改變。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
--c-border 本身維持原值不動:它還餵給 --block-border-color/
|
| 29 |
--border-color-primary 這兩個 Gradio 原生元件用的變數,動了會牽連
|
| 30 |
一整批沒盤點過的元件。 */
|
| 31 |
-
--c-border-strong: #
|
| 32 |
--c-divider: #b6c0cd;
|
| 33 |
/* 表格表頭底色與對話氣泡底色改成獨立 token(原本借用 --c-surface2/
|
| 34 |
--c-surface):淺色時兩者疊在自己的鄰接底色上都只有 1.03–1.07:1,
|
|
@@ -59,7 +68,7 @@
|
|
| 59 |
--c-input-bg: #ffffff;
|
| 60 |
/* 2026-08-12:原本 rgba(2,132,199,.22) 疊白只有約 1.3:1,輸入框邊界同樣
|
| 61 |
受 1.4.11 的 3:1 規範;語料 metadata 表單「欄位看不清楚」有一半是這條。 */
|
| 62 |
-
--c-input-border: #
|
| 63 |
--c-link-hover: #075985;
|
| 64 |
--c-scrollbar: #cbd5e1;
|
| 65 |
--c-scrollbar-hover: #94a3b8;
|
|
@@ -638,10 +647,13 @@ div[role="log"][aria-label="chatbot conversation"],
|
|
| 638 |
--c-bg #f8fafc 上只有 1.07:1,等於沒有邊界;深色那一階(#0d1526 疊
|
| 639 |
#020617)本來就夠,所以只動淺色值——改用 --c-bubble-bg(淺色 #eef2f7、
|
| 640 |
深色維持 #0d1526)。填色差在近白區間拉不到 3:1(那要暗到不像對話框),
|
| 641 |
-
|
| 642 |
-
|
|
|
|
|
|
|
|
|
|
| 643 |
background: var(--c-bubble-bg) !important;
|
| 644 |
-
border: 1px solid var(--c-
|
| 645 |
border-radius: 10px !important;
|
| 646 |
}
|
| 647 |
/* ── AI 頭像(2026-08-12,業主要求)─────────────────────────────
|
|
|
|
| 22 |
跟水平分界線在淺色模式下等於看不見(深色當初已針對 .app-header/欄邊框/
|
| 23 |
標題底線個別補過 rgba(148,163,184,.28),淺色從沒補)。這裡改成兩級線條,
|
| 24 |
之後新增元件挑其中一級,不要再直接用 --c-border 畫可見邊界:
|
| 25 |
+
--c-border-strong 結構線(區塊外框、欄位分隔、水平分界)
|
| 26 |
+
--c-divider 細線(表格資料列線、對話氣泡邊框)
|
| 27 |
深色值直接沿用原本散在各選擇器的硬寫值,深色外觀零改變。
|
| 28 |
+
2026-08-12 二修(千卉看實機截圖後回饋「線條對比好高、蠻醜」):
|
| 29 |
+
結構線從 #7c8798(對白 3.64:1)柔化到 #a3aebd(2.25:1)。取捨要
|
| 30 |
+
講明白——2.25:1 沒有達到 WCAG 1.4.11 對「UI 元件邊界」的 3:1 門檻,
|
| 31 |
+
是刻意的視覺決定;但比改版前的 1.2:1 高近一倍,業主回報的「看不清楚
|
| 32 |
+
區塊」在這個亮度差已經解決。文字對比不受這條影響,仍全數通過 AA。
|
| 33 |
+
細線 --c-divider 淺色 #b6c0cd 對氣泡底 1.64:1、對欄底 1.76:1,
|
| 34 |
+
跟深色 rgba(148,163,184,.28) 疊 #0d1526 算出來的 1.67:1 幾乎相同,
|
| 35 |
+
這就是「深淺兩個模式的氣泡邊框看起來一樣淡」的依據(用量測對齊,
|
| 36 |
+
不是各自挑一個看起來順眼的值)。
|
| 37 |
--c-border 本身維持原值不動:它還餵給 --block-border-color/
|
| 38 |
--border-color-primary 這兩個 Gradio 原生元件用的變數,動了會牽連
|
| 39 |
一整批沒盤點過的元件。 */
|
| 40 |
+
--c-border-strong: #a3aebd;
|
| 41 |
--c-divider: #b6c0cd;
|
| 42 |
/* 表格表頭底色與對話氣泡底色改成獨立 token(原本借用 --c-surface2/
|
| 43 |
--c-surface):淺色時兩者疊在自己的鄰接底色上都只有 1.03–1.07:1,
|
|
|
|
| 68 |
--c-input-bg: #ffffff;
|
| 69 |
/* 2026-08-12:原本 rgba(2,132,199,.22) 疊白只有約 1.3:1,輸入框邊界同樣
|
| 70 |
受 1.4.11 的 3:1 規範;語料 metadata 表單「欄位看不清楚」有一半是這條。 */
|
| 71 |
+
--c-input-border: #a3aebd;
|
| 72 |
--c-link-hover: #075985;
|
| 73 |
--c-scrollbar: #cbd5e1;
|
| 74 |
--c-scrollbar-hover: #94a3b8;
|
|
|
|
| 647 |
--c-bg #f8fafc 上只有 1.07:1,等於沒有邊界;深色那一階(#0d1526 疊
|
| 648 |
#020617)本來就夠,所以只動淺色值——改用 --c-bubble-bg(淺色 #eef2f7、
|
| 649 |
深色維持 #0d1526)。填色差在近白區間拉不到 3:1(那要暗到不像對話框),
|
| 650 |
+
填色之外還要一條邊框才看得出範圍。
|
| 651 |
+
2026-08-12 二修(千卉:淺色氣泡也要淡邊框、深淺一致):邊框從結構線
|
| 652 |
+
降到細線 --c-divider。淺色 #b6c0cd 對氣泡底 1.64:1、對欄底 1.76:1,
|
| 653 |
+
深色 rgba(148,163,184,.28) 疊 #0d1526 是 1.67:1,兩個模式的邊框
|
| 654 |
+
亮度差幾乎相同,看起來才是同一種「淡邊框」。 */
|
| 655 |
background: var(--c-bubble-bg) !important;
|
| 656 |
+
border: 1px solid var(--c-divider) !important;
|
| 657 |
border-radius: 10px !important;
|
| 658 |
}
|
| 659 |
/* ── AI 頭像(2026-08-12,業主要求)─────────────────────────────
|
|
@@ -14,11 +14,11 @@ colors:
|
|
| 14 |
surface3-border: "#e2e8f0"
|
| 15 |
border: "rgba(2,132,199,.16)"
|
| 16 |
border-hover: "rgba(2,132,199,.35)"
|
| 17 |
-
border-strong: "#
|
| 18 |
divider: "#b6c0cd"
|
| 19 |
thead-bg: "#e2e8f0"
|
| 20 |
bubble-bg: "#eef2f7"
|
| 21 |
-
input-border: "#
|
| 22 |
accent: "#0284c7"
|
| 23 |
accent-strong: "#0369a1"
|
| 24 |
accent2: "#4f46e5"
|
|
@@ -149,18 +149,24 @@ WCAG 1.4.11 對「UI 元件與圖形物件的邊界」要求 3:1,這條在淺
|
|
| 149 |
|
| 150 |
| Token | 用途 | 淺色 | 深色 |
|
| 151 |
| :--- | :--- | :--- | :--- |
|
| 152 |
-
| `--c-border-strong` | 結構線:區塊外框、欄位分隔、頂部列底線、標題底線、`hr`、表格外框與表頭分界 | `#
|
| 153 |
-
| `--c-divider` |
|
| 154 |
|
| 155 |
密集重複的線刻意不拉到 3:1:整張資料表如果每一條線都是結構線強度,會變成網格紙、反而更難讀,1.4.11 的門檻也只針對「識別元件所必需」的邊界。
|
| 156 |
|
|
|
|
|
|
|
| 157 |
`--c-border` 本身維持原值,因為它同時餵給 `--block-border-color` 與 `--border-color-primary` 兩個 Gradio 原生元件變數,改動會牽連一整批沒盤點過的元件。
|
| 158 |
|
| 159 |
同批把 `--c-input-border`(淺色)從 `rgba(2,132,199,.22)`(約 1.3:1)改成 `#7c8798`:輸入框邊界同樣受 1.4.11 規範,這是語料 metadata 表單「欄位看不清楚」的另一半原因。
|
| 160 |
|
| 161 |
### 對話氣泡(2026-08-12 更新)
|
| 162 |
|
| 163 |
-
淺色氣泡原本是白底無框,疊在對話欄底 `#f8fafc` 上只有 1.07:1。定案改成 **填色+邊框**:底色 `--c-bubble-bg`(淺色 `#eef2f7`、深色維持 `#0d1526`),外加 1px `--c-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 164 |
|
| 165 |
### 漸層文字與漸層背景的已知踩坑
|
| 166 |
|
|
|
|
| 14 |
surface3-border: "#e2e8f0"
|
| 15 |
border: "rgba(2,132,199,.16)"
|
| 16 |
border-hover: "rgba(2,132,199,.35)"
|
| 17 |
+
border-strong: "#a3aebd"
|
| 18 |
divider: "#b6c0cd"
|
| 19 |
thead-bg: "#e2e8f0"
|
| 20 |
bubble-bg: "#eef2f7"
|
| 21 |
+
input-border: "#a3aebd"
|
| 22 |
accent: "#0284c7"
|
| 23 |
accent-strong: "#0369a1"
|
| 24 |
accent2: "#4f46e5"
|
|
|
|
| 149 |
|
| 150 |
| Token | 用途 | 淺色 | 深色 |
|
| 151 |
| :--- | :--- | :--- | :--- |
|
| 152 |
+
| `--c-border-strong` | 結構線:區塊外框、欄位分隔、頂部列底線、標題底線、`hr`、表格外框與表頭分界 | `#a3aebd`(對白 2.25:1) | `rgba(148,163,184,.28)` |
|
| 153 |
+
| `--c-divider` | 細線:表格資料列之間這種密集重複的線、對話氣泡邊框 | `#b6c0cd`(對氣泡底 1.64:1、對欄底 1.76:1) | `rgba(148,163,184,.18)` |
|
| 154 |
|
| 155 |
密集重複的線刻意不拉到 3:1:整張資料表如果每一條線都是結構線強度,會變成網格紙、反而更難讀,1.4.11 的門檻也只針對「識別元件所必需」的邊界。
|
| 156 |
|
| 157 |
+
**結構線 2.25:1 是刻意離開 3:1 門檻的決定**:第一版用 `#7c8798`(3.64:1,完全符合 1.4.11),實機檢視後判斷線條太搶眼、視覺變吵,柔化到 2.25:1。這個值仍是改版前 1.2:1 的近兩倍,業主回報的「淺色看不清楚區塊」在這個亮度差已解決。文字對比不受這條影響,全站文字仍通過 AA(淺色 6.15–14:1)。日後若無障礙稽核要求嚴格達標,把這個 token 調回 `#7c8798` 即可,全站 19 處線條會一起跟上,不用逐處改。
|
| 158 |
+
|
| 159 |
`--c-border` 本身維持原值,因為它同時餵給 `--block-border-color` 與 `--border-color-primary` 兩個 Gradio 原生元件變數,改動會牽連一整批沒盤點過的元件。
|
| 160 |
|
| 161 |
同批把 `--c-input-border`(淺色)從 `rgba(2,132,199,.22)`(約 1.3:1)改成 `#7c8798`:輸入框邊界同樣受 1.4.11 規範,這是語料 metadata 表單「欄位看不清楚」的另一半原因。
|
| 162 |
|
| 163 |
### 對話氣泡(2026-08-12 更新)
|
| 164 |
|
| 165 |
+
淺色氣泡原本是白底無框,疊在對話欄底 `#f8fafc` 上只有 1.07:1。定案改成 **填色+淡邊框**:底色 `--c-bubble-bg`(淺色 `#eef2f7`、深色維持 `#0d1526`),外加 1px `--c-divider`。
|
| 166 |
+
|
| 167 |
+
邊框用細線而非結構線,是為了讓兩個主題的氣泡看起來一樣淡:淺色 `#b6c0cd` 對氣泡底 1.64:1、對欄底 1.76:1,深色 `rgba(148,163,184,.28)` 疊 `#0d1526` 算出來是 1.67:1。**「深淺一致」是用量測對齊的,不是兩邊各挑一個看起來順眼的值。**
|
| 168 |
+
|
| 169 |
+
可見邊界畫在內層 `.md`,不是外層 `.message`(量測時要認這層)。使用者訊息與 AI 訊息共用同一層,目前兩側同款氣泡、只靠左右對齊區分,是 2026-08-12 業主確認過的現況。
|
| 170 |
|
| 171 |
### 漸層文字與漸層背景的已知踩坑
|
| 172 |
|