文字標記的底色
把一小段文字整個染起來、要它從周圍跳出來的那一類顏色:搜尋命中的兩級與區塊端點的 高亮。推導在 Ssms22/UI/TextMarkColors.cs。命中自己的語意與導覽見命中高亮, 取色與生命週期見主題連動。
不走這一層的
鋪滿整行或整個區間的分類色:差異比對的加/刪底、區塊範圍。面積決定屬於哪一類—— 那一類要的是融入(底色淡、原本的文字顏色照舊讀得出來),這一類要的是跳出來(底色實、 字色重算)。兩類混成一份的下場是差異檢視變成一整片深色塊,而命中仍然淡到看不見。
使用者在設定裡指定過的顏色也不走這一層,只做對比校正:套上這裡的亮度帶等於把他挑的 顏色改掉。區塊端點因此只有一個顏色都沒自訂時才走。
三條規則
- 底色一律落在同一側(深)。佈景強調色的明度會跟著佈景翻轉——淺色佈景是深紫, 深色佈景是亮紫。直接拿它當底色,配對的字色就跟著翻轉,於是同一組的兩級分居明度軸兩側: 深色佈景上「目前那一處」變成亮底深字,而較弱的那一級卻是暗底淺字,看起來比它還強。
- 字色走這一側能到的最純的那一端,4.5 只是下限不是目標。一達到 4.5 就停的那一版停在 中灰,而中灰配飽和彩底是所有組合裡最難看的一個。表面自己的前景色讀得到就留著它。
- 同一組的分級只動飽和與強度,不動明度側。弱的那一級往灰退並壓暗,色相留著。
門檻
| 項目 | 值 | 理由 |
|---|---|---|
| 底色亮度上限 | 0.18 | 再亮下去淺色字過不了 4.5 |
| 底色與表面 | 1.45 | 深色佈景上表面本身就在深的那一側,中間只剩這麼窄一段;差額補在色度與字重 |
| 兩級之間 | 1.3 | 表面剛好落在兩級中間時(中灰佈景)要把弱的那一級再往暗推,同一個動作同時遠離兩邊 |
| 字色與底色 | 4.5 | 下限 |
推開表面的方向是遠離它:表面比這一塊暗就往淺推,反之往深推。往固定方向推的那一版, 在深色佈景上會先穿過表面的亮度再往黑走,推完是一塊幾乎全黑、色相也沒了的方塊。
高對比
沒有中間色可調,也沒有亮度帶可用:兩級換成反白與系統選取色,差的是色相不是明度。 對比比值在那裡判不出差別,所以驗收只要求兩者不同。