SVG Stroke to Fill

Convert stroked SVG paths and shapes into filled outline paths, so lines, circles and icons keep their look with no stroke — 100% in your browser, no upload

Drop an SVG here, or click to browse

Input (stroked)

Preview of the input SVG

Output (filled)

🔒 Converted in your browser — nothing is uploaded.

When the target only understands fills

Paste SVG markup and this tool rewrites every stroked shape into a filled outline path, so the drawing keeps the same look with no stroke. That is exactly what icon, logo and lettering pipelines need when the target only understands fills: font editors, SVG-to-glyph tools, vinyl cutters, laser engravers, CNC toolpaths and minimal renderers. Each stroke becomes the region the paint would have covered, built as a single <path> with the stroke colour as its fill. A live before-and-after preview lets you confirm the result, then copy or download the new SVG.

Supported shapes and realistic limits

It outlines <line>, <polyline>, <polygon>, <rect> (including rounded corners), <circle>, <ellipse> and <path> data that uses move, line, horizontal, vertical, cubic and quadratic Bézier, arc and close commands. Stroke width, colour and opacity are read from the element or inherited from a parent group, and stroke-linecap (butt, round, square) is respected. Corners use a mitred join with a limit, curves are flattened into short line segments, and closed shapes become an even-odd band so the middle stays hollow. Some things are deliberately out of scope: <text> cannot be outlined without the original font, and dashed strokes are treated as solid. Anything it cannot convert is left untouched and flagged with a note.

Frequently asked questions

Which SVG elements can it convert?

Lines, polylines, polygons, rectangles (including rounded ones), circles, ellipses and paths built from move, line, cubic and quadratic Bézier, arc and close commands. Stroke width and colour can be set on the element or inherited from a parent group. Text, images and reused symbols are left unchanged because outlining them needs data the SVG does not contain, such as the original font.

Why does the outline look slightly different from the stroke?

The outline is an approximation. Curves are flattened into many short straight segments, corners use a mitred join capped at a sensible limit, and round caps are drawn as short arcs. At normal sizes the difference is invisible, but at extreme zoom on very sharp corners you may notice the join has been trimmed.

Is my SVG uploaded anywhere?

No. Parsing, outlining and preview all happen in your browser with JavaScript. Nothing is sent, stored or uploaded — you can use it offline once the page has loaded.