Widely Available
Canvas
id: offscreen-canvas
Offscreen canvas
The
OffscreenCanvas API provides a canvas that can be drawn to off screen, with no dependencies on the DOM, which can be used to run heavy rendering operations inside a worker context.
Baseline Status:
Achieved Widely Available on Sep 27, 2025 (Cross-browser Newly Available since Mar 27, 2023).
Desktop Browser Engine Support
Google Chrome
69
Supported
Mozilla Firefox
105
Supported
Apple Safari
16.4
Supported
Microsoft Edge
79
Supported
Mobile Browser Engine Support
Chrome Android
69
Firefox Android
105
Safari iOS
16.4
Specifications and References
MDN Browser Compat Data Keys:
api.HTMLCanvasElement.transferControlToOffscreen ↗
api.OffscreenCanvas ↗
api.OffscreenCanvas.OffscreenCanvas ↗
api.OffscreenCanvas.convertToBlob ↗
api.OffscreenCanvas.convertToBlob.option_type_parameter_webp ↗
api.OffscreenCanvas.getContext ↗
api.OffscreenCanvas.getContext.2d_context ↗
api.OffscreenCanvas.getContext.bitmaprenderer_context ↗
api.OffscreenCanvas.getContext.webgl2_context ↗
api.OffscreenCanvas.getContext.webgl_context ↗
api.OffscreenCanvas.height ↗
api.OffscreenCanvas.transferToImageBitmap ↗
api.OffscreenCanvas.width ↗
api.OffscreenCanvasRenderingContext2D ↗
api.OffscreenCanvasRenderingContext2D.arc ↗
api.OffscreenCanvasRenderingContext2D.arcTo ↗
api.OffscreenCanvasRenderingContext2D.beginPath ↗
api.OffscreenCanvasRenderingContext2D.bezierCurveTo ↗
api.OffscreenCanvasRenderingContext2D.canvas ↗
api.OffscreenCanvasRenderingContext2D.clearRect ↗
api.OffscreenCanvasRenderingContext2D.clip ↗
api.OffscreenCanvasRenderingContext2D.closePath ↗
api.OffscreenCanvasRenderingContext2D.createImageData ↗
api.OffscreenCanvasRenderingContext2D.createLinearGradient ↗
api.OffscreenCanvasRenderingContext2D.createPattern ↗
api.OffscreenCanvasRenderingContext2D.createRadialGradient ↗
api.OffscreenCanvasRenderingContext2D.direction ↗
api.OffscreenCanvasRenderingContext2D.drawImage ↗
api.OffscreenCanvasRenderingContext2D.ellipse ↗
api.OffscreenCanvasRenderingContext2D.fill ↗
api.OffscreenCanvasRenderingContext2D.fillRect ↗
api.OffscreenCanvasRenderingContext2D.fillStyle ↗
api.OffscreenCanvasRenderingContext2D.fillText ↗
api.OffscreenCanvasRenderingContext2D.filter ↗
api.OffscreenCanvasRenderingContext2D.font ↗
api.OffscreenCanvasRenderingContext2D.fontKerning ↗
api.OffscreenCanvasRenderingContext2D.fontStretch ↗
api.OffscreenCanvasRenderingContext2D.fontVariantCaps ↗
api.OffscreenCanvasRenderingContext2D.getImageData ↗
api.OffscreenCanvasRenderingContext2D.getLineDash ↗
api.OffscreenCanvasRenderingContext2D.getTransform ↗
api.OffscreenCanvasRenderingContext2D.globalAlpha ↗
api.OffscreenCanvasRenderingContext2D.globalCompositeOperation ↗
api.OffscreenCanvasRenderingContext2D.imageSmoothingEnabled ↗
api.OffscreenCanvasRenderingContext2D.imageSmoothingQuality ↗
api.OffscreenCanvasRenderingContext2D.isPointInPath ↗
api.OffscreenCanvasRenderingContext2D.isPointInStroke ↗
api.OffscreenCanvasRenderingContext2D.letterSpacing ↗
api.OffscreenCanvasRenderingContext2D.lineCap ↗
api.OffscreenCanvasRenderingContext2D.lineDashOffset ↗
api.OffscreenCanvasRenderingContext2D.lineJoin ↗
api.OffscreenCanvasRenderingContext2D.lineTo ↗
api.OffscreenCanvasRenderingContext2D.lineWidth ↗
api.OffscreenCanvasRenderingContext2D.measureText ↗
api.OffscreenCanvasRenderingContext2D.miterLimit ↗
api.OffscreenCanvasRenderingContext2D.moveTo ↗
api.OffscreenCanvasRenderingContext2D.putImageData ↗
api.OffscreenCanvasRenderingContext2D.quadraticCurveTo ↗
api.OffscreenCanvasRenderingContext2D.rect ↗
api.OffscreenCanvasRenderingContext2D.resetTransform ↗
api.OffscreenCanvasRenderingContext2D.restore ↗
api.OffscreenCanvasRenderingContext2D.rotate ↗
api.OffscreenCanvasRenderingContext2D.save ↗
api.OffscreenCanvasRenderingContext2D.scale ↗
api.OffscreenCanvasRenderingContext2D.setLineDash ↗
api.OffscreenCanvasRenderingContext2D.setTransform ↗
api.OffscreenCanvasRenderingContext2D.shadowBlur ↗
api.OffscreenCanvasRenderingContext2D.shadowColor ↗
api.OffscreenCanvasRenderingContext2D.shadowOffsetX ↗
api.OffscreenCanvasRenderingContext2D.shadowOffsetY ↗
api.OffscreenCanvasRenderingContext2D.stroke ↗
api.OffscreenCanvasRenderingContext2D.strokeRect ↗
api.OffscreenCanvasRenderingContext2D.strokeStyle ↗
api.OffscreenCanvasRenderingContext2D.strokeText ↗
api.OffscreenCanvasRenderingContext2D.textAlign ↗
api.OffscreenCanvasRenderingContext2D.textBaseline ↗
api.OffscreenCanvasRenderingContext2D.textRendering ↗
api.OffscreenCanvasRenderingContext2D.transform ↗
api.OffscreenCanvasRenderingContext2D.translate ↗
api.OffscreenCanvasRenderingContext2D.wordSpacing ↗