SVGFlow
Open editor

SVG text to path

Convert text to SVG path outlines with any font you have the file for. The glyphs become one path element, so the result renders identically everywhere — no font installation, no @font-face, no reflow when a font is missing.

Runs entirely in your browser — nothing is uploaded, no account needed.

Previewno font
Drop a font file to begin
.ttf, .otf or .woff · parsed locally, never uploaded
SVG
Load a font and type some text to see the outline.
Text
Size — 120px
Letter spacing — 0em
Fill

Outlines carry more coordinates than they need — the Optimizer's precision pass trims them.

How text becomes a path

Drop a font file and type. The font is parsed in your browser by opentype.js — fetched on demand, so the page stays light until you need it — into glyph outlines, metrics and kerning tables; nothing is uploaded, which is also why you need the actual font file rather than a font name. Your text is then set as one combined <path>: glyph outlines placed along a baseline, kerning pairs applied, letter spacing added in em units so it scales with the size. The viewBox is fitted to the ink with a small pad — the file is exactly as big as the word, descenders included — and coordinates are rounded to two decimals to keep the path data compact. What comes out is a complete, self-contained SVG with the fill baked in, re-rendered live as you type.

ttf, otf and woff — but not woff2

Any .ttf, .otf or .woff up to 15 MB can be read. woff is a compact wrapper around the same tables, so it parses fine; woff2 is the one common format that cannot be read here, because it wraps the font in Brotli compression that would need its own decoder. The woff2 pulled from a website's network tab is therefore the wrong file — but nearly every typeface is also distributed as ttf or otf. Google Fonts' download button hands you ttf files; foundries ship otf or ttf with the licence. Use the desktop cut of the same face and the outlines are identical.

Size, spacing, fill

Size (24–360 px) sets the em size — the type size a layout program would report, not the height of the capitals, so the drawn letters come out somewhat smaller than the number while the viewBox hugs whatever they actually cover. Letter spacing runs from −0.1 em to 0.3 em and is applied between every pair of glyphs on top of kerning — a few percent of positive tracking suits spaced-out display settings, negative suits tight lockups. Fill is written into the path as a literal colour, and since it is a plain attribute it stays editable afterwards — in the markup, in the Color Editor, or via Open in full editor, which loads the result into the SVG editor for aligning with the rest of your artwork.

Why outline text — and what it costs

An SVG <text> element renders with whatever font the viewing machine can find; when the font is missing, the text reflows in a substitute and the design is gone. Outlines remove the dependency by shipping geometry instead: the file renders identically in every browser, in PDFs, on machines that have never seen the font, and in tools that never had font support to begin with — cutting machines, plotters and laser engravers consume paths, not fonts. The costs are real and permanent. Outlined text is not text: not selectable, not searchable, not translatable, invisible to screen readers, and editable only by retyping from the source. The file is also heavier — a paragraph of outlines dwarfs the same paragraph as text — which is why this is a display-type technique: wordmarks, logos, a heading bound for a cutter, never body copy. And check the font's licence — converting to outlines is a form of embedding, and some licences restrict it.

Kerning yes, full shaping no

Kerning is read from the font and applied, so pairs like AV and To close up as the designer intended. What is not performed is full OpenType shaping: contextual alternates, required ligatures, and the joining behaviour of Arabic, Indic and other connected scripts all need a shaping engine, and this tool sets glyphs one after another as the font maps them. Latin, Cyrillic and Greek display type comes out as designed; for connected scripts, outline in a design tool with a real shaper. Variable fonts load but render at their default instance — named weights and axes are not resolved, so use a static cut of the weight you want. And it sets one line at a time; for a multi-line lockup, generate each line and stack them in the editor.

Common problems

  • woff2 won't open. It is Brotli-compressed and cannot be unpacked here. Nearly every font is distributed as ttf or otf too — use that file.
  • Nothing appears after typing. Either the text is only whitespace, or none of the characters exist in the font — missing characters fall back to the font's .notdef glyph, which in many fonts is empty. Try characters the font actually covers, and check you loaded the right file of a family.
  • The letters look smaller than the size you set. Size is the em size, and most faces draw capitals at 65–75% of it. The viewBox is fitted to the ink, so scale the finished SVG to the visual size you need — it is a vector, nothing is lost.
  • A variable font renders as its default weight. Named instances are not resolved. Export or download a static cut of the weight you want and outline that.
  • The text is gone for screen readers. Outlines are geometry. Add an aria-label where you place the SVG — the accessible icons guide covers the pattern — and keep a copy of the original wording with the source file.
  • The file is bigger than expected. Every curve of every glyph is now literal path data. The Optimizer's precision pass trims the coordinates, and the file-size guide explains where the rest of the weight sits.

Questions

Is this text to SVG path converter free?

Yes. Outlining text is free, with no account, no watermark and no limit on exports. The site is funded by advertising.

Which font formats can I use?

ttf, otf and woff, up to 15 MB. woff2 is the one common format that cannot be read — it is Brotli-compressed — so use the ttf, otf or woff of the same face instead.

Is my font file uploaded anywhere?

No. The font is parsed by opentype.js running in your own browser, and the outlines never leave your machine. That is also why the tool needs the file itself rather than a font name.

Can I use a Google Font?

Yes — download it first. The Download family button on Google Fonts gives you ttf files; drop the weight you want here. Grabbing the woff2 out of a page’s network requests will not work.

Does it apply kerning and ligatures?

Kerning yes — pair adjustments from the font are applied. Full OpenType shaping, including contextual forms and required ligatures, is not performed; glyphs are set one after another as the font maps them.

Does it work for Arabic, Hindi or other connected scripts?

Not reliably. Those scripts need a shaping engine to join and reorder glyphs, which this tool does not run. For connected scripts, outline the text in a design tool with a real shaper and use this for Latin, Cyrillic and Greek display type.

Why does my variable font come out in the wrong weight?

Variable fonts render at their default instance here — named weights and axis positions are not resolved. Use a static cut of the weight you want; most families ship them alongside the variable file.

Can I convert several lines of text?

One line per pass. Generate each line separately, then use Open in full editor to stack and align them — the editor places each outline as an object you can move freely.

Can I edit the text after converting?

No — the result is geometry, and there is no way back to editable text. Keep the original wording and the font file with your source material, and re-generate when the words change.

Is outlined text accessible to screen readers?

Not by itself — a path says nothing about the word it draws. Add an aria-label at the point of use so assistive technology reads the wording the outlines show; the accessible icons guide covers the pattern.

Am I allowed to outline any font?

Check the licence. Converting text to outlines is a form of embedding, and some font licences restrict or forbid it, especially for logos. Open-licence fonts (OFL, Apache) are safe; commercial licences vary.

Why is the SVG so large for one word?

Every curve of every glyph becomes literal path data, already rounded to two decimals here. The Optimizer's precision pass usually trims it further with no visible change.

Notes

  • The font file is parsed in your browser and never uploaded — which also means you must have the actual .ttf, .otf or .woff file.
  • woff2 cannot be read here (it is Brotli-compressed); use the ttf/otf/woff of the same face.
  • Outlined text is no longer text: not selectable, not translatable, invisible to screen readers. Add an aria-label at the point of use, and keep body copy as real text.
  • Check the font’s license — converting to outlines is a form of embedding, and some licenses restrict it.

Related tools