This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
The <textPath> SVG element is used to render text along the shape of a <path> element. The text must be enclosed in the <textPath> element and its href attribute is used to reference the desired <path>.
hrefThe URL to the path or basic shape on which to render the text. If the path attribute is set, href has no effect. Value type: <URL>; Default value: none; Animatable: yes
lengthAdjustWhere length adjustment should be applied to the text: the space between glyphs, or both the space and the glyphs themselves. Value type: spacing | spacingAndGlyphs; Default value: spacing; Animatable: yes
methodWhich method to render individual glyphs along the path. Value type: align | stretch; Default value: align; Animatable: yes
path Experimental
The path on which the text should be rendered. Value type: <path_data>; Default value: none; Animatable: yes
side Experimental
Which side of the path the text should be rendered. Value type: left | right; Default value: left; Animatable: yes
spacingHow space between glyphs should be handled. Value type: auto | exact; Default value: exact; Animatable: yes
startOffsetHow far the beginning of the text should be offset from the beginning of the path. Value type: <length> | <percentage> | <number>; Default value: 0; Animatable: yes
textLengthThe width of the space into which the text will render. Value type: <length> | <percentage> | <number>; Default value: auto; Animatable: yes
This element implements the SVGTextPathElement interface.
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
<!-- to hide the path, it is usually wrapped in a <defs> element -->
<!-- <defs> -->
<path
id="MyPath"
fill="none"
stroke="red"
d="M10,90 Q90,90 90,45 Q90,10 50,10 Q10,10 10,40 Q10,70 45,70 Q70,70 75,50" />
<!-- </defs> -->
<text>
<textPath href="#MyPath">Quick brown fox jumps over the lazy dog.</textPath>
</text>
</svg>
| Specification |
|---|
| Scalable Vector Graphics (SVG) 2> # TextPathElement> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
textPath |
1 | 12 | 2 | 15 | 3.1Until Safari 6, textPath was not re-rendered when the referenced path was changed dynamically (see bug 15799) |
18 | 4 | 14 | 2Until Safari on iOS 6, textPath was not re-rendered when the referenced path was changed dynamically (see bug 15799) |
1.0 | 4.4 | 2Until WebView on iOS 6, textPath was not re-rendered when the referenced path was changed dynamically (see bug 15799) |
fill |
1 | 79 | 2 | 15 | 3.1 | 18 | 4 | 14 | 2 | 1.0 | 4.4 | 2 |
href |
50Only accepts references to path elements. Basic shapes (rect, circle, ellipse, line, polygon, polyline) won't work. |
12 | 2 | 37Only accepts references to path elements. Basic shapes (rect, circle, ellipse, line, polygon, polyline) won't work. |
12.1Only accepts references to path elements. Basic shapes (rect, circle, ellipse, line, polygon, polyline) won't work. |
50Only accepts references to path elements. Basic shapes (rect, circle, ellipse, line, polygon, polyline) won't work. |
4 | 37Only accepts references to path elements. Basic shapes (rect, circle, ellipse, line, polygon, polyline) won't work. |
12.2Only accepts references to path elements. Basic shapes (rect, circle, ellipse, line, polygon, polyline) won't work. |
5.0Only accepts references to path elements. Basic shapes (rect, circle, ellipse, line, polygon, polyline) won't work. |
50Only accepts references to path elements. Basic shapes (rect, circle, ellipse, line, polygon, polyline) won't work. |
12.2Only accepts references to path elements. Basic shapes (rect, circle, ellipse, line, polygon, polyline) won't work. |
path |
No | No | 61 | No | No | No | 61 | No | No | No | No | No |
side |
No | No | 61 | No | No | No | 61 | No | No | No | No | No |
spacing |
1 | 79 | 20 | 15 | 3.1 | 18 | 20 | 14 | 2 | 1.0 | 4.4 | 2 |
startOffset |
1 | 12 | 20 | 15 | 3.1 | 18 | 20 | 14 | 2 | 1.0 | 4.4 | 2 |
systemLanguage |
1 | 12 | 12 | 15 | 3.1 | 18 | 14 | 14 | 2 | 1.0 | 4.4 | 2 |
textLength |
1 | 12 | 2 | 15 | 3.1 | 18 | 4 | 14 | 2 | 1.0 | 4.4 | 2 |
xlink_href |
1 | 12 | 2 | 15 | 3.1 | 18 | 4 | 14 | 2 | 1.0 | 4.4 | 2 |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/textPath