The CanvasRenderingContext2D
method strokeText()
, part of the Canvas 2D API, strokes — that is, draws the outlines of — the characters of a text string at the specified coordinates. An optional parameter allows specifying a maximum width for the rendered text, which the user agent will achieve by condensing the text or by using a lower font size.
This method draws directly to the canvas without modifying the current path, so any subsequent fill()
or stroke()
calls will have no effect on it.
Use the fillText()
method to fill the text characters rather than having just their outlines drawn.
Syntax
CanvasRenderingContext2D.strokeText(text, x, y [, maxWidth]);
Parameters
text
A DOMString
specifying the text string to render into the context. The text is rendered using the settings specified by font
, textAlign
, textBaseline
, and direction
.
x
The x-axis coordinate of the point at which to begin drawing the text.
y
The y-axis coordinate of the point at which to begin drawing the text.
maxWidth
Optional
The maximum width the text may be once rendered. If not specified, there is no limit to the width of the text. However, if this value is provided, the user agent will adjust the kerning, select a more horizontally condensed font (if one is available or can be generated without loss of quality), or scale down to a smaller font size in order to fit the text in the specified width.
Return value
Examples
Drawing text outlines
This example writes the words "Hello world" using the strokeText()
method.
HTML
First, we need a canvas to draw into. This code creates a context 400 pixels wide and 150 pixels high.
<canvas id="canvas" width="400" height="150"></canvas>
JavaScript
The JavaScript code for this example follows.
const canvas = document.getElementById('canvas'); const ctx = canvas.getContext('2d'); ctx.font = '50px serif'; ctx.strokeText('Hello world', 50, 90);
This code obtains a reference to the <canvas>
, then gets a reference to its 2D graphics context.
With that in hand, we set the font
to 50-pixel-tall "serif" (the user's default serif font), then call strokeText()
to draw the text "Hello world," starting at the coordinates (50, 90).
Result
Restricting the text size
This example writes the words "Hello world," restricting its width to 140 pixels.
HTML
<canvas id="canvas" width="400" height="150"></canvas>
JavaScript
const canvas = document.getElementById('canvas'); const ctx = canvas.getContext('2d'); ctx.font = '50px serif'; ctx.strokeText('Hello world', 50, 90, 140);
Result
Specifications
Specification | Status | Comment |
HTML Living StandardThe definition of 'CanvasRenderingContext2D.strokeText' in that specification. | Living Standard |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
strokeText
|
Chrome
Full support Yes |
Edge
Full support 12 |
Firefox
Full support 3.5 |
IE
Full support 9 |
Opera
Full support Yes |
Safari
Full support Yes |
WebView Android
Full support Yes |
Chrome Android
Full support Yes |
Firefox Android
Full support Yes |
Opera Android
Full support Yes |
Safari iOS
Full support Yes |
Samsung Internet Android
Full support Yes |
Legend
- Full support
- Full support
See also
- Drawing text
- The interface defining this method:
CanvasRenderingContext2D
CanvasRenderingContext2D.fillText()
CanvasRenderingContext2D.strokeText() by Mozilla Contributors is licensed under CC-BY-SA 2.5.