This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The CanvasRenderingContext2D.fillStyle property of the Canvas 2D API specifies the color, gradient, or pattern to use inside shapes. The default style is black.
Note: For more examples of fill and stroke styles, see Applying styles and color in the Canvas tutorial.
One of the following:
<color> value.CanvasGradient object (a linear or radial gradient).CanvasPattern object (a repeating image).This example applies a blue fill color to a rectangle.
<canvas id="canvas"></canvas>
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
ctx.fillStyle = "blue";
ctx.fillRect(10, 10, 100, 100);
In this example, we use two for loops to draw a grid of rectangles, each having a different fill color. To achieve this, we use the two variables i and j to generate a unique RGB color for each square, and only modify the red and green values. (The blue channel has a fixed value.) By modifying the channels, you can generate all kinds of palettes.
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
for (let i = 0; i < 6; i++) {
for (let j = 0; j < 6; j++) {
ctx.fillStyle = `rgb(
${Math.floor(255 - 42.5 * i)}
${Math.floor(255 - 42.5 * j)}
0)`;
ctx.fillRect(j * 25, i * 25, 25, 25);
}
}
The result looks like this:
| Specification |
|---|
| HTML> # dom-context-2d-fillstyle-dev> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
fillStyle |
1 | 12 | 1.5 | ≤12.1 | 2 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 | 1 |
In WebKit- and Blink-based browsers, the non-standard and deprecated method ctx.setFillColor() is implemented in addition to this property.
setFillColor(color, /* (optional) */ alpha); setFillColor(grayLevel, /* (optional) */ alpha); setFillColor(r, g, b, a); setFillColor(c, m, y, k, a);
CanvasRenderingContext2D
<color> CSS data typeCanvasGradient objectCanvasPattern object
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/fillStyle