下載的檔案並不是你螢幕上看到的整個預覽——它是一個獨立的 SVG 圖塊,CSS(或繪圖應用程式)會把這個單一圖塊在預覽所顯示的較大區域上重複平鋪。SVG 圖樣產生器會建立一個緊湊的方形向量圖塊,帶有明確的 width、height 與 viewBox 屬性,而當你點擊 Download SVG Tile 時,儲存下來的就是這個單一圖塊。預覽中重複出現的視覺效果,是透過 background-image 與 background-size 讓 CSS 把同一個來源圖塊做平鋪所產生,而不是把許多圖塊拼接成一張圖。因為檔案中只包含一個圖樣單位,所以儲存的 SVG 保持小巧,而圖樣實際涵蓋多大面積,則由你之後調整 CSS 的 background-size、容器大小或兩者來決定。理解這點——檔案裡是圖塊,CSS 負責重複——是這個工具背後最核心的觀念轉變。每次你調整控制項、預覽隨之更新時,同一個重新產生的流程也會同時改寫 CSS 的 data URL、獨立標記,以及寫入下載檔案的位元組,因此這三個輸出會保持同步。

is the downloaded file the whole preview when i generate svg pattern
下載的 SVG 圖樣檔案就是整個預覽嗎?

預覽所顯示的內容 vs 下載檔案所包含的內容

螢幕上那塊由重複形狀組成的大矩形,是瀏覽器把同一個單一圖塊的 SVG 重複繪製多次所產生的。下載按鈕則是把那個單一圖塊原封不動地寫入磁碟,與 SVG 欄位中所顯示的標記完全一致。檔案裡並沒有內嵌任何螢幕擷取畫面,也沒有烘焙(內建)的平鋪資料。

這種分離帶來三個實際影響:

  • 不論預覽看起來多大,下載的檔案始終很小。視覺上的比例是由使用端的 CSS 或應用程式決定。
  • 兩個大小不同的預覽區域可以使用完全相同的下載圖塊;只需要改變 background-size 或容器尺寸。
  • 開啟這個檔案的繪圖編輯器只會顯示透明或填色背景上的一個圖樣,而不是平鋪的馬賽克。

如果你想要的是預覽的平面圖片,而不是會重複的圖塊,你就必須在瀏覽器中以最終尺寸把平鋪的 CSS 加以點陣化(光柵化)。這個產生器本身並不會產出那種合成影像。

單一圖塊如何重複以涵蓋更大的區域

同一個來源圖塊會產生三個同步的輸出:一段即時的 CSS 宣告、獨立的 SVG 標記,以及下載的檔案。CSS 這條路徑最常被使用,因為它會直接把 SVG 嵌入其中。若想深入了解「圖塊優先」的思維模型,請參考正確產生 SVG 圖樣:圖塊優先的工作流程。

CSS 輸出會使用 background-color、background-image 與 background-size。image 的值包含經過百分比編碼(percent encoding)後的完整所產生 SVG,因此只要貼上一段宣告就夠了——執行階段不需要再另外發出檔案請求。background-size 會設定為符合圖塊大小的像素值,這正是告訴瀏覽器要以什麼頻率重複的關鍵。

獨立的 SVG 標記就是同一個圖塊以 XML 形式寫出,你可以把它貼到行內的 svg 元素、SVG sprite 或設計工具中。它保留了與下載檔案相同的 width、height、viewBox、背景矩形,以及一個圖樣元素。

有些目的地會拒絕 data URL。例如禁止 data: 的內容安全政策(Content Security Policy)、會把 data URL 過濾掉的 HTML 電子郵件用戶端,或是 CMS 的內容過濾器,都可能封鎖 CSS data URL 的做法,即便 SVG 本身是有效的。一旦發生這種情況,下載的檔案就成了資產:把 SVG 從你自己的網域提供,把 data URL 換成它的 URL,並讓 background-size 維持相同的像素值。

這種「圖塊優先」的做法與 W3C SVG 2 的圖樣模型以及 MDN 所記錄的 pattern 元素相符,不過此實作匯出的是作為 CSS 背景影像使用的獨立圖塊,而不是把圖樣包進內部的 SVG pattern 元素;視覺上的重複效果是由 CSS 的背景平鋪所完成。

產生、預覽並下載 SVG 圖樣圖塊

依照下列步驟,從螢幕上的控制項走到一個可用的圖塊檔案:

  1. 挑選一個圖樣風格(圓點、格線、對角線或波浪),並將圖塊大小、形狀寬度、前景色與背景色設定為六位數的 HEX 值。
  2. 在接近實際使用情境的大小下檢視重複的預覽;把控制項數字視為提示,而把預覽視為最終依據。
  3. 若你的目的地允許 data URL,就複製 CSS;若需要原始 XML,就複製獨立的 SVG 標記;若內容安全政策阻擋內嵌影像,則下載圖塊並把它當作資產提供。
  4. 把 SVG 圖樣產生器與目的環境並排擺放,讓最終大小與渲染引擎盡可能與預覽一致。
  5. 在最終的 CSS 大小與裝置像素比下測試;若你變更任何輸入就重新產生,因為輸出是確定性的,原本的設定可以原樣重現。

何時該複製 CSS、複製 SVG 或下載圖塊

每一種輸出對應不同的使用者。請依圖樣最終落腳的位置來選擇:

輸出 包含內容 最適用於
複製 CSS background-color + 經百分比編碼的 SVG data URL + background-size 自成一體的 HTML 原型、卡片、徽章與裝飾性版面,前提是允許使用 data URL
複製 SVG 獨立 SVG 標記,包含 width、height、viewBox、背景矩形與一個圖樣 設計工具、HTML 中的行內 SVG、sprite 圖集,以及手動編輯 XML
下載 SVG 圖塊 與標記欄位相同的單一圖塊,儲存為 .svg 檔案 在嚴格 CSP 後方的長效資產、由 CDN 代管的背景,以及自架後用於電子郵件

這三個輸出永遠源自完全相同的確定性幾何,因此若複製其中一個、又不重新產生就複製另一個,並不會混搭出不同的樣式。

使用圖塊前值得了解的限制

產生器會限制輸入範圍,以保持幾何的可預測性。圖塊大小接受 8 到 128 像素之間的整數,形狀寬度接受 1 到 12 像素之間的數值。兩種顏色都必須是六位數的 HEX 值,並統一為小寫。介面會把一般的輸入限制在這些範圍內;而純粹的產生器邏輯會獨立拒絕不支援的風格、格式錯誤的顏色與超出範圍的數值,而不是默默嘗試修補。

每種風格都有值得理解的確定性幾何:

  • 圓點會在方形圖塊中央放置一個圓,形狀寬度即為半徑。
  • 格線只繪製頂邊與左邊,如此相鄰的圖塊就能在不產生雙重寬度內部線條的情況下構成完整規則的格子。
  • 對角線會產生數條跨越圖塊邊界的平行線段,使相鄰圖塊能延續條紋的節奏。
  • 波浪使用一條二次曲線,並以平滑的二次曲線延伸跨越整個圖塊。

由於形狀寬度在圓點代表半徑、在線條類風格代表描邊寬度,因此相同的數值並不保證視覺上的粗細一致。請以重複的預覽為準,而不是單看控制項數字,特別是在前景與背景對比強烈的情況下。每個圖塊上僅佔一小部分的描邊寬度,才能產生乾淨的線條;在小型圖塊上使用過大的描邊寬度,可能會主導整體幾何。分數級的版面縮放、瀏覽器縮放,以及對比強烈的對角線,也可能會在邊界處暴露出反鋸齒的差異——這個工具並不保證印刷套色、視覺上的均勻性、無障礙可用性,或是與以不同方式將 SVG 點陣化的軟體相容。若要在定稿前決定配色或對比,可以使用相關的色彩工具,例如配色產生器或色彩對比檢查器。

延伸閱讀:RGB 與 HEX 色彩轉換:具備即時預覽的雙向轉換器。