CSS 條紋產生器會從五個經過驗證的輸入項目寫出一個 repeating-linear-gradient 宣告:一個 0 到 360 度的角度、兩個六位數十六進位色彩,以及兩個介於 1 到 200 像素之間的有限色帶寬度。它會將條紋寬度與間隙寬度相加來計算一個重複週期,並輸出四個明確的色彩停點,在每個邊界都複製兩種顏色,讓邊緣保持銳利,然後將那段漸層字串套用於即時預覽,並以 background-image 宣告的形式複製到您的剪貼簿。計算結果、預覽畫面與複製出來的輸出永遠不會分歧,因此您複製的值就是實際繪製元素的值。這個工具在目前的分頁中執行,無需上傳、儲存、登入或第三方程式庫,而且輸出使用的是 background-image 屬性而非 background 簡寫,以避免覆寫任何既有的背景顏色、大小或位置。它瞄準的是生態系中的一個特定缺口:需要一種雙色重複色帶、在高密度螢幕上保持銳利、且能在大型表面上縮放而無需發佈點陣圖素材的開發人員。

當開發人員搜尋 CSS 條紋產生器的替代方案時,通常會碰到以下三個痛點之一:現有的線上工具壞掉或停止維護、輸出依賴點陣圖素材因此在 Retina 螢幕上看起來模糊,或是某個產生器會悄悄將相鄰色帶混色,而不是產生乾淨的邊界。手寫的 repeating-linear-gradient 能一次解決這三個問題,但手寫四個明確的色彩停點很重複且容易算錯,特別是在角度改變、投射間距不再符合您輸入的數值時更是如此。CSS 條紋產生器在一個地方就處理了驗證、計算與預覽,而且不需要將頁面內容送往伺服器。本文接下來會帶您了解現有工具的不足之處、這個產生器做了哪些不一樣的事、如何使用,以及任何圖案背景會帶來的限制與無障礙檢查。

css stripes generator alternative
css stripes generator alternative

其他 CSS 條紋產生器的不足之處

大多數 CSS 條紋產生器可以歸入兩類。第一類匯出點陣圖素材:PNG、SVG 或 base64 資料 URL,您將其放入 background-image: url(...) 宣告中。在容器縮放超過素材大小、高密度螢幕以非整數倍率取樣素材,或設計師要求某個色帶加寬一個像素而不想重新產生檔案之前,這種方式都還能運作。第二類讓您在視覺編輯器中四處點擊並複製一段 CSS 片段,但它通常只輸出一個色彩停點,讓瀏覽器在它與下一個停點之間插值,產生沒人想要的柔邊。有些產生器還預設使用 background 簡寫,會在相同選擇器上靜默地重設既有的 background color 或 background-size,這是一種令人沮喪、很難追查的 bug。

repeating-linear-gradient 同時避免了這兩個問題。它是純 CSS 影像,因此不需要素材就能縮放,而且能讓您明確寫出停點,讓邊緣保持銳利。CSS 條紋產生器正是圍繞這個基本元素打造,這也是它能成為一個可信的替代方案,而非某個已停產網頁工具的複製貼上版本的原因。同一個基本元素記載於 CSS Images Level 3 規範 以及 MDN,其中將 repeating-linear-gradient 描述為一個影像函式,其最後一個色彩停點區間會沿著漸層線無限重複。

這個 CSS 條紋產生器有何不同

有五個特點讓這個 CSS 條紋產生器與一般的視覺化 CSS 編輯器有所區別,而每一點都對應到上一節提到的特定痛點。

輸入會在建構任何漸層之前先於分頁中進行驗證。角度必須是介於 0 到 360 之間的有限數值,顏色必須是完整的六位數十六進位值,每個色帶寬度必須是有限且不超過 200 的正數。非有限的數值輸入會被回報為錯誤,而不是被悄悄強制轉為零,因此您不會意外產生一個零長度的週期而打斷重複圖樣。

輸出是確定性的。給定同樣的五個輸入,工具永遠會輸出相同的 background-image 宣告。沒有隨機取樣、沒有透明度遞色處理、也沒有自動模糊,因此任何人在同樣的欄位中輸入同樣的數字,都能重現您複製的結果。

計算、預覽與剪貼簿都繫結到同一個字串。即時預覽所使用的 repeating-linear-gradient 值,與最終送到剪貼簿的值完全相同,因此您調整時看到的視覺就是實際出貨的視覺。預覽與輸出之間不可能產生漂移,因為實際上只有一個值在運作。

輸出使用的是 background-image 而非 background 簡寫。這代表該宣告不會重設相同選擇器上既有的 background color、background-size 或 background-position。多層背景仍然需要小心處理逗號的順序,但基本的單一圖樣情境可以保持安全。

資料不會離開頁面。沒有上傳、沒有第三方字型、沒有程式碼函式庫的 CDN 呼叫、沒有帳號,也沒有依專案分類的儲存。瀏覽器在本機完成解析、繪製與複製。在任何現代瀏覽器中開啟 CSS 條紋產生器,無需設定就能直接使用。

雙色 CSS 條紋常見做法比較

做法 輸出格式 是否需要素材 邊緣表現 隨元素縮放
repeating-linear-gradient(本工具) 單一 CSS 宣告 停點複製時為銳利邊
點陣圖素材(PNG、SVG、base64) background-image: url(...) 取決於素材邊界 受素材大小限制
相鄰停點的 conic-gradient 單一 CSS 宣告 停點相鄰時為銳利邊
多層堆疊背景 多層宣告 有時需要 依各層而定 分層縮放

建立雙色條紋背景

  1. 設定條紋方向的 CSS 角度。選擇 0 代表向上的漸層線(會繪製成水平色帶),選擇 90 代表向右的漸層線(垂直色帶),或選擇任意中間值以取得對角線。角度是介於 0 到 360 的 CSS 度數,無論元素尺寸為何,同一個數字都代表同一個方向。
  2. 選擇條紋與間隙的顏色。每個顏色都必須是完整的六位數十六進位值,例如 #1e3a8a 或 #ffffff。第一個顏色繪製條紋色帶,第二個則繪製色帶之間的間隙。
  3. 調整每個色帶的寬度並檢查重複週期。週期是兩個寬度的總和,因此 16 像素的條紋加上 8 像素的間隙會產生 24 像素的週期。兩個寬度都必須介於 1 到 200 像素之間,而週期會即時顯示,讓您在複製前確認節奏。
  4. 複製 background-image 宣告並在實際元件中測試。將片段貼到真正的 CSS 檔案或沙盒中,在底層加入一個實心 background-color 備援,然後在實際的容器中檢查對比、縮放行為與響應式尺寸,而不是只看工具的預設預覽尺寸。

使用對角線角度的實作範例

假設您要為某個區塊標題製作一條對角色帶。將角度設為 45 度、條紋顏色設為 #1e3a8a(深藍色)、間隙顏色設為 #ffffff、條紋寬度設為 16 像素、間隙寬度設為 8 像素。

工具計算出一個週期如下:

period = stripe width + gap width period = 16 + 8 period = 24 pixels

輸出會是一段如下形式的單一宣告:

background-image: repeating-linear-gradient(45deg, #1e3a8a 0px, #1e3a8a 16px, #ffffff 16px, #ffffff 24px);

每個顏色在 16 像素邊界處都會被複製,因此瀏覽器不會有任何區間可以把深藍色混入白色。瀏覽器會沿著漸層線從 0 到 16 像素繪製深藍色,再從 16 到 24 像素繪製白色,然後重複整個 24 像素區塊。由於角度為 45 度,色帶在元素上會呈對角排列,但您輸入的寬度仍然是沿著漸層線計算,而不是沿著螢幕的水平或垂直軸。在這個檢視中,16 像素的色帶並不會佔據 16 個水平像素,因此投射間距會隨角度而改變,您應該以實際的元素尺寸進行預覽,而不是把輸入的數字當作螢幕上的測量值。

同一段字串會同時驅動工具中的即時預覽與剪貼簿輸出,因此您在調整滑桿時看到的,就是最終進入樣式表的結果。任何其他角度或寬度組合的精確像素數值,必須由工具本身得出,因為沿著螢幕軸的投射需要用到三角函數,頁面並不需要手動重新計算。

輸入限制與視覺邊緣情況

每個輸入都有硬性上限,工具會將其回報為錯誤,而不是猜測替代值。

輸入 接受的格式 有效範圍 失敗模式
角度 CSS 度數 0 到 360 超出範圍的值會被拒絕
條紋顏色 六位數十六進位 #000000 到 #FFFFFF 空值或長度錯誤會被拒絕
間隙顏色 六位數十六進位 #000000 到 #FFFFFF 空值或長度錯誤會被拒絕
條紋寬度 像素整數 1 到 200 像素 非有限值或超出範圍會被拒絕
間隙寬度 像素整數 1 到 200 像素 非有限值或超出範圍會被拒絕

有兩個視覺邊緣情況值得注意。非常小的色帶(一兩個像素)容易產生摩爾紋、在頁面捲動時閃爍,並且在瀏覽器縮放與螢幕擷取時呈現不穩定的外觀。非常大的色帶(接近 200 像素上限)可能會讀起來不再像重複圖樣,反而像實心色塊。如果發生這兩種情況,正確的處理方式通常是縮短週期、稍微提高兩種顏色之間的對比,或兩者同時進行。

這個工具刻意省略了透明 alpha、多個中間色彩、圓錐圖樣、放射狀圖樣、背景定位以及動畫。每一項省略都讓結果可以被稽核:您複製的宣告就是實際繪製的宣告,審閱者可以一行一行讀懂,無需追溯外部程式庫或未記載的狀態。

Accessibility and integration checks

Patterned backgrounds interact with text and controls in ways a flat color does not. Contrast varies at every boundary, and rapid stripes can create visual stress, especially for readers with vestibular or migraine sensitivities. The tool does not run a contrast check over the pattern, so the safe pattern is to add a solid reading surface or a semi-opaque overlay over the area that holds long text, then verify contrast with an external checker over the full text area rather than at a single sample point.

Do not use stripe direction or stripe color as the only signal for state. A component whose active state depends only on band direction will disappear in a forced-colors browser session, in a high-contrast theme, or when the page is printed to grayscale. Pair the pattern with a text label, an icon, or an underline that survives the same contexts.

When you integrate the declaration, do the following: copy it into the real component, add a solid background-color fallback underneath, confirm text contrast across the entire area rather than at one spot, inspect responsive sizes and zoom levels, and replace literal colors and pixel widths with design tokens from your system. Multiple background layers still require careful comma ordering, and the output uses background-image rather than the shorthand to reduce the chance that the new declaration resets an existing background color, size, or position on the same selector. If the background ever moves, respect reduced-motion preferences and measure paint behavior, because a static decorative pattern is usually safer and clearer than an animated one.

For a deeper walkthrough of the underlying repeating-gradient mechanics, the CSS 條紋產生器指南 covers the same primitive from a different angle.

If you're weighing options, Format JSON Files in Notepad++: Plugins and Alternatives covers this in detail.