Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The CanvasRenderingContext2D.letterSpacing property of the Canvas API specifies the spacing between letters when drawing text.

This corresponds to the CSS letter-spacing property.


The letter spacing as a string in the CSS length data format. The default is 0px.

The property can be used to get or set the spacing. The property value will remain unchanged if set to an invalid/unparsable value.


In this example we display the text "Hello World" three times, using the letterSpacing property to modify the letter spacing in each case. The spacing is also displayed for each case, using the value of the property.


<canvas id="canvas" width="700"></canvas>


const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");

ctx.font = "30px serif";

// Default letter spacing
ctx.fillText(`Hello world (default: ${ctx.letterSpacing})`, 10, 40);

// Custom letter spacing: 10px
ctx.letterSpacing = "10px";
ctx.fillText(`Hello world (${ctx.letterSpacing})`, 10, 90);

// Custom letter spacing: 20px
ctx.letterSpacing = "20px";
ctx.fillText(`Hello world (${ctx.letterSpacing})`, 10, 140);



HTML Standard
# dom-context-2d-letterspacing

Browser compatibility

BCD tables only load in the browser

See also