在產生勾選樣式之前,真正重要的比較,是在你的表單需求與 CSS 勾選框產生器 可靠產出之間進行的:一個原生 HTML 勾選框,大小為十六到六十四像素、邊框一至六像素、圓角零至五十百分比,以及用於強調色、背景和勾號的三組嚴格的六位數 HEX 色碼。這個工具會將底層的輸入保留為原生勾選框,並以名為 lizely-checkbox 的限定類別同時輸出 CSS 與 HTML,且完全在目前的瀏覽器分頁中執行,不需要帳號、上傳或儲存的設計狀態。這份簡短的清單就是你的決策框架。如果需求落在這些數值範圍內並維持在原生輸入上,這個工具就是正確的選擇。如果需求落在範圍外——例如真正的僅 div 設計系統、自訂驗證訊息,或不定狀態——你就必須先更仔細地進行比較。下面的章節將此比較拆解為決定輸出是否真的符合你的表單的各個部分:與實際環境的色彩對比、樣式表保留的原生語意、控制項強制執行的幾何限制、三步驟的產生流程,以及基準刻意不模擬的無障礙狀態。

在產生 CSS 勾選框之前要比較的事項
在產生之前先快速比較,可以省下一個複製貼上的循環。值得權衡的項目對齊於產生器所交付的合約:原生輸入、限定範圍的 CSS、六個有界限的數值輸入,以及三組嚴格的色彩值。任何不在該合約上、你所需要的事物,都是你必須計畫之後在自己的樣式表中另外加入的,而工具並不會默默地幫你處理。
第一個比較是結構性的。輸出會保留真正的 input[type="checkbox"],而不是用一般的 div 取代它,因此在周邊應用程式正確使用這些功能時,勾選狀態、鍵盤焦點、表單參與以及停用行為皆可維持原生。如果你的設計系統完全禁止使用原生輸入,產生器的輸出就不符合該限制,比較在任何色彩被挑選之前就已失敗。
第二個比較是關於你的表單周邊。強調色會同時成為勾選時的填色與 focus-visible 的外框顏色;邊框與背景定義未勾選的狀態;勾號則位於一個由方塊幾何縮放而成的 ::after 偽元素內。這些選擇每一項都必須在實際放置的表面上通過對比檢查,而不是相對於工具所顯示的白色預覽面板。
第三個比較是狀態涵蓋範圍。基準僅涵蓋未勾選、已勾選與 :focus-visible。停用、不定、無效、必要、唯讀、高對比和強制色彩模式(forced-colors)的行為被明確排除在範圍外。將其視為最終樣式表中你必須補上的樣式清單,而不是跳過產生的理由。
針對實際周邊環境的對比檢查
色彩的選擇是最容易在審查中被忽略的比較部分。一個在產生器預覽上看起來清晰的勾選框,在實際環境中可能會失敗,因為周邊的背景、表單列的密度或品牌表面並不相同。
在實際目標位置測量三組特定的色彩配對,而非單獨檢視。勾號相對於勾選背景,在最小支援尺寸十六像素下需要有足夠的對比以利閱讀。勾選背景相對於周邊頁面表面,需要有足夠的對比以辨識為已填入的控制項。focus-visible 的外框相對於相鄰元素,需要能讓鍵盤使用者找到,而該外框顏色預設與強調色相同,這不一定能在你的頁面上通過對比。以你計畫交付的實際設計標記,跑過一次對比工具,是這次比較中最便宜的部分。
強制色彩模式(forced-colors)值得單獨檢查。作業系統與瀏覽器可能會為了無障礙設定而覆寫自訂色彩,而這個產生器並不會抑制該行為。CSS Basic User Interface Level 4 規範 中記錄了 appearance 屬性在高對比環境中的行為,這份內容在依賴自訂繪製來處理關鍵無障礙狀態之前值得一讀。如果你的網站預設停用了 forced-colors 的覆寫,請將該決策與依賴作業系統層級控制項的使用者進行權衡。
輸出所保留的原生語意
樣式表不會變更輸入元素本身,只會改變其繪製方式。這就是此工具所遵守的合約:CSS 的 appearance: none 移除了瀏覽器的預設繪製,但原生元素仍然在正確使用時提供勾選狀態、鍵盤焦點、表單參與以及停用行為。HTML 將輸入與可見的標籤文字配對於 label 元素內,因此該文字成為點擊目標,而勾選框也具有來自該標籤的可存取名稱。
此處的比較在於實際的標籤內容。範例標籤是通用的;將其替換為實際的選項描述,才能將原生語意轉化為螢幕閱讀器會朗讀的內容。HTML 片段刻意不包含行內腳本;勾選狀態由瀏覽器與周邊表單管理。使用框架的使用者可以依需求將 class 轉換為 className,並連接 checked 與 onChange,但應保留原生輸入與可存取的標籤關聯。無論你的元件函式庫是透過 render prop 或樣式化包裝函式包裹輸入,與具有真實標籤的原生輸入進行比較,才是保留螢幕閱讀器行為的關鍵。
產生器範圍與你的表單版面
數值控制項有硬性限制,當這些限制清晰可見時,比較就更容易進行。
| 輸入 | 允許類型 | 最小值 | 最大值 | 備註 |
|---|---|---|---|---|
| 方塊大小 | 整數像素 | 16 | 64 | 勾號幾何會依此值縮放 |
| 邊框寬度 | 整數像素 | 1 | 6 | box-sizing: border-box 將可見邊框計入大小 |
| 圓角 | 百分比 | 0% | 50% | 在正方形尺寸下 50% 會畫出圓形 |
| 強調色 | 六位數 HEX | — | — | 同時用於 focus-visible 的外框顏色 |
| 背景色 | 六位數 HEX | — | — | 未勾選時的填色 |
| 勾號顏色 | 六位數 HEX | — | — | 僅在 :checked 狀態下可見 |
產生器會拒絕格式錯誤的色彩、要求整數卻出現的小數,以及超出範圍的幾何值,而不是靜默地輸出誤導的程式碼。瀏覽器的色彩控制項在正常使用下會提供有效的值,而數值控制項會限制一般的滑鼠與鍵盤變更。如果你的表單最小目標尺寸超過六十四像素,比較就必須延伸到這個工具涵蓋範圍之外。
三步驟產生並複製樣式表
一旦比較通過,產生流程本身就很簡短。
- 在 CSS 勾選框產生器頁面上調整大小、邊框、圓角、強調色、背景與勾號顏色,同時切換即時的勾選框預覽。預覽顯示的是完全相同的樣式表,以類別限定範圍,並使用真正的互動式輸入,而不是帶有模擬狀態的 div。
- 複製 CSS 與複製 HTML 會分別請求剪貼簿權限;成功訊息會指出複製了哪個輸出。如果剪貼簿權限被拒絕,兩個程式碼區塊都會保持可見以便手動選取,且頁面不會回報誤導的成功訊息。
- 在目標文件中將範例標籤替換為真正的表單選項。如果限定範圍的類別會與其他樣式表衝突,請重新命名,並確認輸入仍是 type="checkbox" 並巢狀於 label 元素內。
基準輸出未涵蓋的狀態
預覽刻意保持精簡。它是一個乾淨的起點,而非完整的表單控制項函式庫。下列狀態屬於你的樣式表,並應以真實內容與輔助技術進行測試。
| 狀態 | 基準輸出中 | 你之後提供 | 重要性 |
|---|---|---|---|
| 未勾選 | 是 | — | 預設靜止狀態 |
| 已勾選 | 是 | — | 由 ::after 偽元素繪製 |
| :focus-visible | 是 | — | 外框顏色對應強調色 |
| 停用 | 否 | :disabled 規則 | 行為由瀏覽器處理;繪製由你負責 |
| 不定狀態 | 否 | :indeterminate 標記 | 部分父層選取所需 |
| 無效 | 否 | :invalid 樣式 | 表單錯誤狀態所需 |
| 必要 | 否 | :required 指示器 | 傳達表單欄位規則 |
| 強制色彩模式 | 未模擬 | 測試覆寫行為 | 作業系統層級的無障礙設定 |
視覺上吸引人的勾選框並不會自動具備無障礙性。強調色、背景、勾號、邊框、焦點指示器、周邊頁面、懸停狀態、錯誤文字與停用狀態,全都需要在最終主題中重新檢查,而不是直接取自預覽。
鍵盤、縮放與強制色彩模式驗證
最後一項比較是在目標表單中進行,而非在產生器內部。嵌入的工具頁面含有許多可聚焦的控制項,因此單獨的預覽並不能取代在控制項實際所在頁面中測試 tab 順序與操作說明。
- 以 Tab 鍵切換到該控制項,確認焦點外框相對於實際周邊環境正確描繪,然後按下空格鍵切換勾選狀態。外框不會被樣式表移除,且空格鍵必須能從鍵盤切換輸入。
- 在百分之兩百縮放與小型行動裝置視窗下重複操作。勾號具有最小寬度、高度與邊框粗細,可在最小支援尺寸十六像素下保持可見,但在不常見的縮放層級、裝置像素比或極端的邊框設定下,反鋸齒可能會使某一邊看起來稍微較粗。
- 將作業系統切換到強制色彩模式(Windows 高對比為一例),並確認該控制項仍然能傳達狀態。除非有強烈的理由,否則請勿抑制這些覆寫;該行為通常對啟用它們的使用者有益。
動畫與懸停的檢查很簡短。此基準不會產生動畫,因此不需要為動畫偏好進行處理。輸出已經設定 cursor: pointer,因此點擊的可點擊性指示已經就緒。除了前一節所述的狀態樣式外,唯一值得事先規劃增加的,就是一條 hover 規則。
如果你正在權衡選項,在產生 CSS Cubic Bezier 之前要比較的事項 對此有詳細說明。