All guides

How to check a seamless pattern and fix hairline seams

To check a seamless pattern, look at it repeated at full size and zoom in on the edges: a hairline only exists where two tiles meet. Most hairlines come from soft, half-transparent pixels along the tile edge, and each cause has a simple fix.

By Rémy Boiré · Updated

What a hairline is

A hairline is a thin line, usually paler than your drawing, that runs along the edges of the tile once it repeats. You won’t see it on the single tile: it only exists where one copy meets the next. On screen it’s easy to miss. On fabric, the printer repeats your tile dozens of times, and every seam becomes a stripe. Spoonflower calls these pixel line flaws and asks you to check for them before you upload.

Pixel grid at the seam between two tiles. A teal stroke crosses the seam without a break. An orange stroke is paler in the two pixel columns on either side of the seam.
Zoomed in on a seam. The teal stroke stays solid right up to the edge. The orange one was cut with half-transparent pixels on both sides, so where the tiles meet, the background shows through as a pale line.

What causes a hairline

Almost every hairline comes down to the pixels on the edge of the tile. When they aren’t fully opaque, or aren’t quite where you think they are, the seam shows. The usual causes are in the table below, each with its fix.

Seamply’s list of hairline causes, checked against Procreate, Adobe and Spoonflower documentation on September 25, 2026.

SymptomLikely causeHow to see itFix
Pale line through strokes that cross the edgeThe stroke was cut at the canvas edge with soft, half-transparent pixelsZoom to 400% or more on the edge of the single tileOffset the tile, then paint across the seam so the stroke runs through in one piece
Line appears after you moved a layerThe move landed between two pixels, and the transform smoothed the edgeCompare the edge before and after the move, zoomed inSet Interpolation to Nearest Neighbor before the move, so the pixels stay whole
Line on the edge of a layer you resizedScaling a layer without flattening leaves half-transparent pixels on its edgesHide the background layer and look at the tile edgeResize before you build the repeat, and repaint the edge until it is opaque
Line only in the exported fileThe file was resized when you exported itCompare the export’s size in pixels with your canvasExport at 100% of the canvas size; change the size before you make the tile, not after
Steps or gaps along a half-drop or brick seamAn odd width or height: half of it falls on half a pixelCheck the canvas size in pixelsUse even dimensions, such as 3000 × 3000 px
Line in one app, not in anotherThe viewer draws each tile separately and softens their edgesOpen the file in a second app, at 100%Nothing to fix in the file itself

Sources: Procreate Handbook, Interpolation, Adobe Community, thin line after resizing, Adobe Community, white hairlines in a repeat pattern, Spoonflower, checking for repeat flaws. Checked on .

The odd-dimension row is plain arithmetic rather than something Procreate documents: a half-drop moves every other column down by half the tile’s height, and half of 2999 px is not a whole pixel.

Three ways to check a repeat

  1. A free online checker

    Our free seamless pattern checker repeats an image as a grid, a half-drop or a brick, marks where the edges don’t meet and shows the seams up close, without uploading anything. Sites such as Pattern Playground by every-tuesday or patternchecker.net tile an image too. They’re quick and free. The catch, for all of them, is that they need a flat image: you check a flattened copy of your work, not your layered file, and you redo the export after every change.

  2. By hand in Procreate

    Spoonflower’s own Procreate tutorial describes it: duplicate the flattened tile, line up four copies in a square with Transform and Snapping, then zoom in along the center lines and switch each layer off and on to catch the seams. It’s exact, and it’s slow. A half-drop means placing the copies by hand, half a tile apart.

  3. A live preview on the iPad

    Seamply shows the tile repeated as soon as you paste it from Procreate, in grid, half-drop or brick, and you can zoom in to the pixel. Hide the seam lines and look where the tiles meet: that’s where a hairline shows. It opens your layered PSD as it is, without flattening it.

Paint the seam in the middle of the tile

Whatever the cause, the reliable fix is the same: bring the seam into the middle of the tile, where you can paint over it. Offset the tile by half its width and half its height, and its four edges meet in a cross at the center. Paint across that cross so every stroke runs through in one piece. The new edges of the tile now fall in what used to be the middle of your drawing, on clean, opaque pixels.

Procreate has no Offset filter (checked in version 5.4.14, released on September 18, 2026), so the usual way is to cut the canvas into quarters and swap them, which means flattening first. Seamply does the offset for you: in Offset, the seams start in the middle of the tile, and Send returns a PSD with every layer shifted by the same number of pixels. Paint the cross in Procreate. Then copy the canvas again and check the repeat.

Before you send a pattern to Spoonflower

Spoonflower’s upload requirements, as Seamply read them in Spoonflower’s help center on September 25, 2026.

WhatSpoonflower
File typesPNG or JPG only
File sizeUnder 40 MB
ResolutionEvery file is converted to 150 dpi on upload
ColorsRGB recommended, not CMYK
RepeatsBasic, Half-Drop, Half-Brick, Center, Mirror

Sources: Spoonflower, Uploading Images, Spoonflower, resolution, Spoonflower, Repeat Options. Checked on .

If a line shows in one app and not in another, the file may be fine. Some apps draw a thin line between repeated tiles that isn’t in the file: Adobe’s forums have many threads about it in Illustrator. Check the file at 100% in a second app before you repaint anything.

Questions

Why is there a white line in my seamless pattern?

Usually because the pixels along the tile edge aren’t fully opaque: a stroke cut with a soft edge, a layer moved by a fraction of a pixel, a layer resized without flattening, or a file resized on export. Where two tiles meet, the background shows through those pixels. Offset the tile so the seam sits in the middle, and paint across it.

Is the hairline in my file or just on screen?

Zoom into the edge of the single tile in Procreate, at 400% or more. If the edge pixels are paler than the rest of the stroke, the line is in the file. If they look solid and the line only shows in one app, it comes from that app’s display.

Does Procreate have a pattern preview?

No. As of version 5.4.14, released on September 18, 2026, Procreate has no pattern preview and no Offset filter. You check a repeat by tiling copies by hand, with an online checker, or with a separate app such as Seamply.

Can I fix a hairline without flattening my layers?

Yes. The fix is to paint across the seam, and that works on layers. What usually forces a flatten is the offset itself: Procreate doesn’t wrap what you move past the edge back onto the other side. Seamply sends back a PSD with every layer offset, so you paint the seam on the layers you already have.

What resolution does Spoonflower need?

Spoonflower converts every upload to 150 dpi, so what counts is the size in pixels: at 150 dpi, a 3000 px tile prints 20 inches wide. Their Procreate tutorial suggests a 3000 × 3000 px canvas at 300 dpi, which gives the same pixels.