網頁功能:
prefers-color-scheme 媒體查詢
color-scheme
prefers-contrast 媒體查詢
強制顏色
系統顏色
color-mix()
Oklab 和 OkLCh
Lab 和 LCH
相對顏色
無障礙顏色
請勿單靠顏色來表示使用者介面元件或其狀態:請使用圖像和/或形狀來區分。請勿「只」用顏色表示成功/錯誤。使用圖示或文字。
<!-- Good: Denotes state without colors alone -->
<div class="error-msg">
<span aria-hidden="true">❌</span>
<span>The password entered was invalid.</span>
</div>
對比
- 最低對比度標準:一般文字為 4.5:1,大型文字或圖示為 3:1。
- 確保非文字對比度符合標準:使用者介面元件邊界和狀態的對比度至少應為 3:1。
- 包括構成邊界或表示 UI 元件存在的視覺元素 (邊框、背景、方塊陰影、底線),例如輸入欄位邊框。
- 這也包括表示元件中有效狀態的視覺元素 (例如核取方塊勾號或切換鈕)。
- 注意:非文字對比度達到 3:1 可能會對極簡設計造成挑戰。柔和的漸層或細緻的內嵌/外嵌陰影,可柔化視覺邊界,同時滿足無障礙需求。
- 僅在必要時使用
prefers-contrast:如果設計採用低對比度的強調色 (例如細微邊框、柔和的次要文字),需要強化時,請使用@media (prefers-contrast: more)。大多數已符合基準對比度的網站都不需要使用。
淺色和深色色彩配置
- 支援淺色和深色色彩配置:遵循
@media (prefers-color-scheme: dark)並與color-schemeCSS 屬性配對,讓表單控制項、捲軸和其他使用者代理程式轉譯介面相符。詳情請參閱「深色模式」。
強制顏色模式
- 支援強制顏色模式:在強制顏色模式 (Windows 上的高對比度) 下,瀏覽器會以系統關鍵字覆寫作者顏色,並移除
background-image、box-shadow和border-image。使用@media (forced-colors: active)為顏色符記定義系統顏色備用方案。 - 僅在顏色為必要資訊時使用
forced-color-adjust: none(語法醒目顯示工具、顏色挑選器色塊)。請勿僅為了維持美觀而使用forced-color-adjust: none。 - 請勿依賴
background-image、box-shadow或border-image傳達邊框、分隔線或狀態:這些元素在強制顏色模式下會消失 (通常在列印時也會消失)。如果必須使用,請確保在強制顏色模式下有替代方案,例如使用outline或border搭配系統顏色關鍵字 (CanvasText、LinkText、ButtonText、Highlight、GrayText等)。
生成色調
動態產生色調前,請先確認是否可以使用現有的預先定義設計權杖。這可讓設計師進一步控管,並確保一致性。
如需動態產生較亮或較暗的顏色,請按照下列步驟操作:
- 請勿只調整
oklch/oklab或lch/lab中的亮度色版,例如oklab(from var(--primary) 0.9 a b)。雖然理論上這是正確的做法,但瀏覽器尚未實作色域對應,因此產生的顏色無法預測。 - 您可以使用
color-mix()混合白色或黑色 (最好是oklab)。這樣可以確保顏色在色域內,但往往會過度降低色彩飽和度,並產生褪色的色調和陰影。 - 您可以結合亮度調整與其他方法 (例如
color-mix(in oklab, oklch(from var(--primary) 0.9 c h), white 30%)),在兩者之間取得平衡,但亮度調整幅度不應超過 30%。