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.
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.
| Symptom | Likely cause | How to see it | Fix |
|---|---|---|---|
| Pale line through strokes that cross the edge | The stroke was cut at the canvas edge with soft, half-transparent pixels | Zoom to 400% or more on the edge of the single tile | Offset the tile, then paint across the seam so the stroke runs through in one piece |
| Line appears after you moved a layer | The move landed between two pixels, and the transform smoothed the edge | Compare the edge before and after the move, zoomed in | Set Interpolation to Nearest Neighbor before the move, so the pixels stay whole |
| Line on the edge of a layer you resized | Scaling a layer without flattening leaves half-transparent pixels on its edges | Hide the background layer and look at the tile edge | Resize before you build the repeat, and repaint the edge until it is opaque |
| Line only in the exported file | The file was resized when you exported it | Compare the export’s size in pixels with your canvas | Export 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 seam | An odd width or height: half of it falls on half a pixel | Check the canvas size in pixels | Use even dimensions, such as 3000 × 3000 px |
| Line in one app, not in another | The viewer draws each tile separately and softens their edges | Open 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
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.
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.
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.
| What | Spoonflower |
|---|---|
| File types | PNG or JPG only |
| File size | Under 40 MB |
| Resolution | Every file is converted to 150 dpi on upload |
| Color | sRGB recommended, not CMYK |
| Repeats | Basic, Half-Drop, Half-Brick, Center, Mirror |
Sources: Spoonflower, Uploading Images, Spoonflower, resolution, Spoonflower, Repeat Options. Checked on .
- Pick the repeat you designed for. A tile made for a half-drop looks broken as Basic, and the other way round.
- Think in pixels, not dpi: everything ends up at 150 dpi, so a 3000 px tile prints 20 inches wide. The canvas size guide has the pixels for each print size.
- Check the edges of the repeated tile at 100% before you upload. Spoonflower gives the same advice: preview the repeat, or fill a large canvas with the pattern and zoom in on the edges.
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.