files/en-us/web/api/canvasrenderingcontext2d/filltext/index.md
{{APIRef("HTML DOM")}}
The {{domxref("CanvasRenderingContext2D")}} method
fillText(), part of the Canvas 2D API, draws a text string
at the specified coordinates, filling the string's characters with the current
{{domxref("CanvasRenderingContext2D.fillStyle", "fillStyle")}}. An optional parameter
allows specifying a maximum width for the rendered text, which the {{Glossary("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 {{domxref("CanvasRenderingContext2D.fill()", "fill()")}} or {{domxref("CanvasRenderingContext2D.stroke()", "stroke()")}} calls will have no effect on it.
The text is rendered using the font and text layout configuration as defined by the {{domxref("CanvasRenderingContext2D.font","font")}}, {{domxref("CanvasRenderingContext2D.textAlign","textAlign")}}, {{domxref("CanvasRenderingContext2D.textBaseline","textBaseline")}}, and {{domxref("CanvasRenderingContext2D.direction","direction")}} properties.
[!NOTE] To draw the outlines of the characters in a string, call the context's {{domxref("CanvasRenderingContext2D.strokeText", "strokeText()")}} method.
fillText(text, x, y)
fillText(text, x, y, maxWidth)
text
x
y
maxWidth {{optional_inline}}
None ({{jsxref("undefined")}}).
This example writes the words "Hello world" using the fillText() method.
First, we need a canvas to draw into. This code creates a context 400 pixels wide and 150 pixels across.
<canvas id="canvas" width="400" height="150"></canvas>
The JavaScript code for this example follows.
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
ctx.font = "50px serif";
ctx.fillText("Hello world", 50, 90);
This code obtains a reference to the {{HTMLElement("canvas")}}, then gets a reference to its 2D graphics context.
With that in hand, we set the {{domxref("CanvasRenderingContext2D.font", "font")}} to
50-pixel-tall "serif" (the user's default serif font),
then call fillText() to draw the text "Hello world," starting at the
coordinates (50, 90).
{{ EmbedLiveSample('Drawing_filled_text', 700, 180) }}
This example writes the words "Hello world," restricting its width to 140 pixels.
<canvas id="canvas" width="400" height="150"></canvas>
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
ctx.font = "50px serif";
ctx.fillText("Hello world", 50, 90, 140);
{{ EmbedLiveSample('Restricting_the_text_size', 700, 180) }}
{{Specifications}}
{{Compat}}