User Rating 0.0
Total Usage 0 times
Tile: 30 × 30 px
Is this tool helpful?

Your feedback helps us improve.

About

Repeating background patterns require precise geometric tessellation. A single-pixel misalignment in the unit cell produces visible seams when tiled across large surfaces. This generator computes exact vertex coordinates for 15 pattern types using trigonometric placement. Hexagonal grids use 3 row offsets. Sinusoidal waves evaluate y = A sin(ωx + φ) per column. All output tiles perfectly at any scale. Export as SVG for resolution-independent CSS backgrounds or PNG for direct use in design tools.

Limitation: raster PNG export is bound by canvas pixel limits (browser-dependent, typically 16384px max per axis). SVG output has no such constraint. Pro tip: for web use, keep tile dimensions under 200px to minimize HTTP payload when inlined as a data URI.

background pattern pattern generator svg pattern seamless pattern tile pattern css background geometric pattern

Formulas

Each pattern is constructed by computing element positions within a unit tile of width W and height H. The tile repeats infinitely in both axes.

Dot grid placement for row i, column j:

x = j s + (i mod 2) s2
y = i s

Hexagon vertex k (0k<6):

xk = cx + r cos(2πk6)
yk = cy + r sin(2πk6)

Wave curve:

y(x) = A sin(2πT x + φ)

Star vertex k (alternating inner/outer radius):

rk =
{
R if k is evenR 0.4 if k is odd

Where s = spacing, r = radius, A = amplitude, T = period, φ = phase offset, R = outer star radius, cx,cy = center coordinates.

Reference Data

PatternGeometryTile FormulaBest Use Case
DotsCircle gridSpacing = s, radius = rSubtle textures, card backgrounds
LinesParallel strokesGap = g, angle = θNotebook styles, ruled surfaces
Cross-hatchPerpendicular linesTwo line sets at 90°Engineering drawings, sketch effects
WavesSinusoidal curvesAsin(ωx)Organic, water-themed designs
ChevronsV-shaped zigzagSlope ±m inversionFashion, tribal patterns
HexagonsHoneycombRow offset = 32sTech, gaming, modern UI
TrianglesEquilateral tessellationHeight = 32aGeometric art, retro designs
DiamondsRotated squares45° rotation transformLuxury, playing card motifs
CrossesPlus signs at nodesArm length = lMedical, Swiss-style graphics
CirclesConcentric ringsRadius step = ΔrRadar, ripple effects
PolkaOffset dot gridEven rows offset s2Vintage, playful designs
ZigzagContinuous V-lineAmplitude = A, period = TBorders, ribbon patterns
PlaidOverlapping stripesH + V stripes, α blendFlannel, tartan, textile
Stars5-point at nodes5 vertices at 2π5 intervalsFestive, decorative backgrounds
BrickOffset rectanglesOdd rows offset w2Architecture, wall textures

Frequently Asked Questions

Seams occur when the tile dimensions are not integer multiples of the pattern spacing. The generator enforces this constraint internally: it snaps the tile size to the nearest multiple of the spacing value. If you manually override tile size via CSS, ensure your background-size matches exactly. For guaranteed seamless results, use the SVG export which defines a proper element with patternUnits="userSpaceOnUse".
Browser canvas limits vary. Chrome and Edge support up to 16384×16384 pixels. Firefox allows up to 11180×11180. Safari caps at 4096×4096 on iOS. The generator clamps dimensions to 4096px by default to ensure cross-browser compatibility. For larger needs, export as SVG and rasterize externally.
Copy the generated CSS snippet provided under the preview. It encodes the SVG as a base64 data URI inside background-image. Apply it to any element. The pattern repeats automatically via background-repeat: repeat. For performance, keep tile size under 200px - larger tiles increase the data URI size and slow initial render.
Yes. Brick patterns automatically compute a 2:1 width-to-height ratio for the tile. Hexagonal grids compute the tile height as spacing × √3 to maintain perfect tessellation. The tile dimensions shown in the UI reflect the actual computed values, not arbitrary inputs.
Plaid layers horizontal and vertical stripes with partial opacity (default α = 0.3 per stripe). Where stripes overlap, the effective opacity increases multiplicatively: α_result = 1 − (1 − α₁)(1 − α₂). At α = 0.3 per stripe, intersections reach approximately 0.51 opacity, creating the characteristic darker crossover squares. Adjust foreground opacity to control this effect.
At spacing below approximately 4px, sub-pixel rendering causes aliasing artifacts on raster canvases. Circles may appear as squares, and thin lines may vanish entirely. The generator warns when spacing drops below 6px. For micro-patterns, export as SVG - vector rendering handles sub-pixel geometry correctly at any zoom level.