從頭開始產生 SVG 圖樣,意味著製作一個由圖塊尺寸、形狀寬度、前景顏色和背景顏色所定義的單一正方形向量圖塊,然後由瀏覽器透過 CSS 背景拼接,在任何目標表面上重複平鋪。入門者常預期上傳一張完成圖片或手寫路徑標記,但圖樣產生器的運作方式恰好相反:您在即時預覽中看到的每個視覺元素,其實都是同一個圖塊,僅繪製一次、再多次蓋印。在一開始就釐清這個單一區別,將改變您除錯接縫、判斷密度,以及決定實際需要哪種匯出格式的方式。SVG 圖樣產生器正是遵循這個模型 — 它會建立這個小圖塊、將其嵌入到 CSS 資料 URL 加上對應的 background-size 設定值中,並同時顯示較大的重複效果與原始標記,讓您能並列比較兩種檢視。請將即時預覽視為事實,並把圖塊視為事實的來源,因為最終的像素呈現取決於目的端瀏覽器、裝置像素比與縮放層級,而非僅由產生器的控制項決定。其餘的入門基礎,全都源自原始圖塊與 CSS 重複之間的這種關係。

what should beginners know before they generate svg pattern
在產生 SVG 圖樣之前:入門指引

單一圖塊,由 CSS 負責重複

在您調整任何一個控制項之前,請先在腦中釐清這個觀念:SVG 圖塊是來源,而 CSS 的 background-repeat 才是負責繪製表面的機制。您在即時預覽中看到的圖樣,是同一個圖塊與自身相鄰蓋印而成,並非一張手繪橫跨整個預覽畫布的單一影像。這點很重要,因為產生器上的每個旋鈕控制的都是原始圖塊,而非大範圍區域 — 在對角線樣式中使用較粗的筆觸,會改變圖塊中那一條對角線,而這個改變會向外擴散到整個重複表面上。圖塊尺寸則是反過來相同的概念,因為它設定的是水平與垂直的重複間距,所以較小的數值會在同樣空間內塞入較多的圖案,而較大的數值則會留下更多視覺空間。

當圖塊的四個邊緣能整齊對齊時,相鄰的副本就會構成一個連續的格網。「格線」樣式只繪製格子的頂邊與左邊,因此相鄰副本能完成整個格網,卻不會產生雙倍寬度的內部線條;「對角線」樣式會繪製數條刻意跨越圖塊邊界的平行線段,而「波浪」樣式則使用一條二次貝茲曲線,後接一條在圖塊之間平滑延伸的二次貝茲曲線。這正說明了為何這個實作匯出的是一個獨立的單一圖塊、並將其作為 CSS 背景圖片使用,而非把圖案包在內部的 SVG pattern 元素 中 — 視覺上的重複效果由 CSS 執行,這能讓檔案保持精簡,並把裁切、位置與最終尺寸交由您的樣式表決定。W3C 的 SVG 2 patterns 章節 涵蓋了標記層級的圖樣模型,而上面連結的 MDN 參考文件則是瀏覽器端行為的實用入門。

每個控制項實際改變了什麼

五個控制項決定了所有圖樣:樣式選擇器、圖塊尺寸欄位、形狀寬度欄位、前景顏色與背景顏色。每一項都有固定的範圍與固定的意義,且相同的數值並不一定會產生相同的視覺權重。舉例來說,形狀寬度在「點點」樣式中代表點的半徑,但在格線、對角線與波浪樣式中則代表筆觸寬度,所以同一個數字會依所選樣式而有截然不同的視覺表現。下表摘要了 SVG 圖樣產生器所強制規範的確切範圍與意義:

控制項允許值改變內容
樣式dots, grid, diagonal, waves選用決定式的圖塊幾何形狀
圖塊尺寸8 至 128 像素(整數)設定水平與垂直的重複間距
形狀寬度1 至 12 像素(整數)「點點」樣式為點的半徑;線條樣式為筆觸寬度
前景六位數 HEX,小寫可見圖案的顏色
背景六位數 HEX,小寫整個圖塊背景矩形的顏色

兩個顏色都必須是六位數小寫的十六進位值,而這個精簡版的產生器會直接拒絕格式錯誤的顏色、不支援的樣式,以及超出範圍的數字,而不會默默嘗試修補,因此單純打錯一個十六進位數字並不會產生一個近似值。當前景與背景處於高對比時,也請避免僅憑控制項上的數字來判斷結果 — 請改為檢視重複後的預覽。預覽會以接近您預期尺寸的大小來呈現同一個圖塊,而這個視覺結果才是唯一能在實際頁面上站得住腳的比較基準。

逐步產生 SVG 圖樣

請開啟 SVG 圖樣產生器,並依序完成下列步驟:

  1. 選擇圖樣樣式 — 點點、格線、對角線或波浪 — 並在調整數字之前,先決定目的端需要哪種幾何形狀。
  2. 以像素設定圖塊尺寸,請記住這個數字代表的是雙向的重複間距;較小的數值會讓圖案更緊密,較大的數值則會留下較多的視覺空間。
  3. 以像素設定形狀寬度,並請記住在「點點」樣式中代表的是點的半徑,而在線條樣式中則代表的是筆觸寬度。
  4. 為前景挑選一個六位數小寫的 HEX 值,並為背景挑選另一個,請留意這兩個顏色彼此對比時的可閱讀性。
  5. 請在圖樣實際呈現的接近尺寸下檢視重複後的預覽,讓密度、對比與接縫品質能在使用者實際看見的相同情境下進行判斷。
  6. 複製 CSS、複製獨立的 SVG 標記,或下載圖塊 — 請挑選與圖樣將被託管或引用的方式相符的格式。
  7. 在決定採用前,請先在目的端的內容安全政策 (Content Security Policy) 下測試所選的格式,因為資料 URL 雖然方便,卻經常會被封鎖。

每一步都建立在前一步之上,所以在複製 CSS 之後才變更顏色或形狀寬度,就意味著要再重複執行最後的匯出動作。以完全相同的控制項重新產生時,永遠會產生位元級完全相同的 SVG 與 CSS 輸出,這在數個月後需要依封存的設定重現某個匯出的圖樣時會非常有用。

輸出的去處 — 以及它可能出錯的地方

每次成功產生都會輸出三個同步的結果:即時重複預覽、獨立的 SVG 圖塊標記,以及包含經百分比編碼的 SVG 資料 URL 與對應 background-size 的 CSS。CSS 會使用 background-color、background-image 與 background-size,這已足夠套用到任何區塊、按鈕、卡片、徽章或整頁表面。由於採用資料 URL,因此不需要額外的影像請求,這很適合原型、裝飾性表面、佔位元素、徽章、卡片,以及不希望有多餘 HTTP 來回請求的佈景主題控制頁面。

這種便利的代價是,資料 URL 仍可能會被目的端的內容安全政策、HTML 清理器、電子郵件用戶端,或嚴格的內容管理系統 (CMS) 所封鎖。一旦發生這種情況,可行的替代方案是從產生器下載 SVG 圖塊、將其作為經核准的素材從您自己的主機提供,然後在樣式表中把資料 URL 替換成該素材的 URL。下載下來的內容就是標記欄位中顯示的那個單一圖塊 — 而非較大重複區域的螢幕擷圖 — 這能讓檔案保持精簡,並讓 CSS 在各種斷點下持續掌控覆蓋的區域。如果您想深入了解這三個輸出的內容,SVG 圖樣產生器實際會回傳什麼指南會分別拆解每個欄位。

入門者常見的陷阱與需預先規劃的限制

有些限制屬於設計的一環而非錯誤,事先辨認出來能為您日後省下大量時間。這個聚焦的產生器無法建立照片級紋理、雜訊、格子大小各自獨立的棋盤格、上傳自訂路徑、旋轉、漸層、遮罩、動畫或多層次組合,且它並不會把 SVG 壓縮到比簡潔且決定式的標記更精簡的程度。這樣的範圍限制正是讓輸出得以保持可預測性的原因,因此重新產生時會得到完全相同的結果,而檔案也能維持輕量。預覽本身也不是螢幕擷圖,而下載下來的內容也不是大範圍的重複區域 — 兩者所指的都是那個預期會重複的單一原始圖塊。

接縫的品質取決於幾何形狀、抗鋸齒、縮放以及最終的算繪環境,這代表非整數的版面縮放或瀏覽器縮放可能會讓 1 像素的筆觸看起來不均勻、非常大的筆觸寬度可能會在小圖塊中過度佔據視覺,而對比強烈的對角線則可能在邊界處顯露出抗鋸齒的差異。建議在最終的 CSS 尺寸與裝置像素比下進行測試,而非僅憑預覽就下定論。這個工具同樣不保證印刷套色精度、紋理隨機性、知覺上的色彩均勻度或無障礙可用性,所以請使用 顏色對比檢查工具 來驗證對比,並從 配色產生器 中挑選一套調色盤,再把檔案正式放到實際使用的頁面。請在專案筆記中保留原本的產生設定,這樣日後若需要更換主題或重建時,才能完整重現這個圖樣。