圓角產生器同時涵蓋命令列與線上工作流程,因為 CSS 屬性本身只是一行文字,所以兩種路徑之間的選擇,取決於你需要的是視覺預覽,還是可供腳本化、非互動式的輸出。CLI 方式通常接受旗標或參數,列印出一段宣告後就結束,不會渲染任何畫面;線上工具則會在你調整每個圓角時顯示即時預覽,在你複製之前先顯示壓縮過的簡寫,並讓你在像素與百分比單位之間切換,而不必重新啟動程序。CSS Border Radius 產生器明確屬於線上那一端,完全在瀏覽器中執行,無需安裝、無需上傳,也不需要帳號。對於只想把卡片圓角化、設定膠囊按鈕,或把面板打散成有機形狀的開發者來說,瀏覽器路徑完全省去了編輯樣式表的循環。對於想把 border-radius 數值鎖進設計權杖的團隊來說,在建置腳本中加入一個 CLI 步驟更合理,它所產生的宣告會直接餵入樣式表或 JSON 權杖檔。

命令列 vs 線上 Border Radius 產生方式:實際改變的是什麼
CSS border-radius 宣告的形狀在兩種路徑下並不會改變。改變的是它周遭的一切:你如何提供數值、複製前是否能先看到結果,以及輸出如何抵達你的樣式表。兩種做法最終都會產生像 border-radius: 12px 24px 12px 24px; 這樣的字串,或是它的壓縮簡寫 border-radius: 12px 24px;。差異在於這個字串抵達你的 CSS 之前所走的路徑。
| 面向 | 命令列方式 | 線上產生器 |
|---|---|---|
| 輸入方式 | 旗標、參數或 stdin | 四個有標籤的數值欄位 |
| 視覺預覽 | 預設為無 | 即時,每次按鍵都更新 |
| 單位切換 | 每個旗標或每次呼叫固定 | 可一鍵切換所有圓角的 px 與 % |
| 簡寫壓縮 | 取決於你寫的腳本 | 依 CSS 規則自動套用 |
| 安裝 | 套件、二進位檔或建置掛鉤 | 無,於任何現代瀏覽器執行 |
| 執行時的網路 | 安裝完成後無 | 無,僅限頁面載入 |
| 最適合 | 設計權杖、批次輸出、CI | 一次性元件、原型設計、學習 |
這些差異並非紙上談兵。一個接受四個圓角半徑並印出單一宣告的 CLI 腳本,大約只需十行 shell 或 Node,而且能離線執行。瀏覽器產生器則透過四個有標籤的欄位接收同樣的輸入,每次按鍵都更新預覽,並產出相同的壓縮字串,完全不依賴專案。
命令列 Border Radius 工具何時合理
當輸出是由另一台機器(而非人類)所消費時,命令列 border-radius 產生器就有其存在的價值。以下三種情境符合這個輪廓。
設計權杖。當專案將間距、顏色與半徑數值存放在一個建置時讀取的 JSON 或 YAML 檔案中時,這些數值應該來自腳本,以便由單一真實來源餵入每個元件。CLI 步驟可以接收權杖名稱、計算宣告,並寫入權杖檔,與設計系統的其他部分並存。瀏覽器工具不會產生權杖,因為權杖是專案層級的概念,而非單一元件的概念。
批次產生。當一次需要大量宣告時,例如元件庫、行銷頁面集或一次性匯出,shell 腳本中的迴圈或一個小型的 Node 程式可以在單次執行中產出數十條 border-radius 字串。每條都可以帶有不同的尺寸、不同的單位或不同的壓縮方式。瀏覽器工具一次只處理一條宣告,每個數值都得靠複製貼上。
CI 檢查。pre-commit hook 或 CI job 可以呼叫 CLI border-radius 產生器,驗證樣式表中每個 border-radius 數值都解析為允許的權杖值之一。瀏覽器無法在沒有無頭包裝程式的情況下於 CI runner 內執行,而對於這項工作,單純的 CLI 檢查更簡單也更快。同一支負責產生權杖的腳本,也可以同時對它們進行 lint。
在這些情境中,CLI 不需要預覽,也不需要在每輪執行中途為每個圓角切換單位。輸出是由另一支工具所消費,因此腳本只需要以穩定格式印出宣告,讓下一步可以解析。
為何線上產生器能更快涵蓋常見情境
開發者調整單一元件的常見情境,正好與 CI 工作相反。只有一個方塊、四個圓角、一個單位選擇,以及一個快速的視覺問題:這個弧度看起來對嗎?像 CSS Border Radius 產生器這樣的線上工具正是為這個問題而生,它以 CLI 腳本無法在不額外加工的情況下匹敵的方式涵蓋了這套工作流程。
預覽是最大的差異。CSS Border Radius 產生器以方塊的實際顯示尺寸來渲染,並使用它所產生的簡寫本身來繪製預覽,因此簡寫中的序列化錯誤會在數值被複製之前就以可見的錯誤呈現。這種回饋是 CLI 腳本無法提供的。開發者可以調整四個圓角、看到圓角的變化,並相信輸出的字串就是產生眼前所見內容的那個字串。
單位選擇的處理同樣不囉嗦。瀏覽器工具將所選的 px 或百分比單位套用至全部四個圓角,因此同一個單位會餵入壓縮後的宣告。CLI 腳本通常每次呼叫只接受一種單位,這代表要嘛執行兩次,要嘛擴充參數解析器。瀏覽器路徑把這種複雜性擋在開發者之外。
最後,瀏覽器工具依 CSS 規則本身處理簡寫壓縮,因此四個相同圓角會變成單一數值、交替圓角會變成兩個數值、共享對角會變成三個數值,只有完全不同的圓角才會保留四個數值。這種壓縮是由 W3C CSS Backgrounds and Borders 規範所定義,並記載於 MDN 的 border-radius 參考。想要同樣行為的 CLI 腳本必須重新實作這些規則;瀏覽器工具則在渲染預覽的同一個步驟中套用它們。
使用 CSS Border Radius 產生器產生 Border Radius 宣告
- 在你的瀏覽器中開啟 CSS Border Radius 產生器。調整控制項不需要安裝、不需要帳號,也不需要任何網路呼叫。
- 依順時針順序為每個圓角輸入半徑:左上、右上、右下,然後左下。標籤順序與 CSS 本身的讀取順序一致,因此你所複製的簡寫絕不會與你所輸入的內容不一致。
- 選擇像素,用於無論元素大小為何都應保持固定弧度的曲線;或選擇百分比,用於隨邊框盒尺寸縮放的大小相對弧度。
- 以方塊的顯示尺寸檢視預覽。預覽是由壓縮後的宣告所渲染,因此你所看見的,就是元件在相同寬度、高度、邊框與內距下將繪製出的結果。
- 複製壓縮後的宣告並貼到你的樣式表中。若四個圓角共用同一數值,結果就是一個數字;若兩組對角圓角相同,則是兩個數字;若僅共用一條對角,則是三個數字;其餘情況則依序保留全部四個數字。
- 在實際元件上測試該宣告。切換回實際的寬度與高度,加入實際的邊框、內距、聚焦外框與響應式中斷點,並確認在元件將出現的各種尺寸下,圓角看起來都正確。
兩種工作流程中的像素 vs 百分比半徑
單位選擇在 CLI 腳本與瀏覽器工具中行為相同,差異來自 CSS 本身而非產生器。像素半徑會在元素放大或縮小時保持固定,這使它成為按鈕、卡片,以及任何圓角弧度屬於視覺識別(而非尺寸函數)之元件的正確單位。百分比半徑則根據邊框盒的尺寸計算,這表示百分比數值會隨元素縮放。正是這個特性,讓單一規則能產生膠囊、橢圓與有機形狀,而無需在每個中斷點重寫數值。
一個實用的起點:正方形上的 50% 會產生圓形圓角,而同樣的 50% 在寬矩形上則會產生類橢圓的兩端。12px 到 24px 的像素半徑是卡片與輸入欄位合理的預設值。瀏覽器工具讓這種單位切換變得即時,因為所選單位會套用至全部四個圓角;而百分比如何解析的更深層機制,記載於 W3C CSS Backgrounds and Borders Level 3 規範 以及專門的 像素 vs 百分比指南。
在兩種工作流程中都會出現的一個細節:當相鄰弧度會重疊時,瀏覽器可能會按比例縮減渲染輸出中所使用的半徑。這代表極大的百分比數值渲染出來可能小於其數字所暗示的結果。這是標準的瀏覽器行為,並非複製的宣告中的錯誤,這也是為何預覽值得在貼近真實的方塊尺寸下檢查,再決定採用某個數值。
在實際元件中驗證宣告
一旦宣告被複製完成,產生器的工作就結束了,接下來是元件的工作。圓角會與背景、邊框、overflow 裁剪、聚焦外框與觸控目標尺寸互動,在方形預覽中看起來合適的數值,可能會在不同的尺寸或不同的背景前破功。
請在實際的寬度與高度下測試實際的元素。加入實際的邊框、內距,以及任何聚焦或懸停狀態。在窄視窗與寬視窗下開啟頁面。確認圓角弧度仍傳達出相同的形狀、聚焦外框在弧度上仍然可見、且圓角區域夠大,足以在觸控裝置上作為舒適的點擊目標。若元素是按鈕,弧度不應將可點擊區域縮減到團隊的觸控目標尺寸以下。若元素是內含文字的卡片,內距應足夠寬,使文字不會在視覺上擠向弧度。
通過所有這些檢查的宣告即可進入正式環境。任何一項檢查失敗的宣告,通常要嘛需要不同的單位、要嘛需要較小的數值、要嘛需要不同的版面配置;而當產生器被用於在樣式表動工之前先探索形狀時,修正的過程會更快抵達。
延伸閱讀:CSS 對話泡泡產生器:命令列 vs 線上。