coderef

DOM GeometryBaseline · Widely available

The DOMMatrix, DOMPoint, DOMQuad and DOMRect APIs represent points, rectangles, quadrilaterals and transformation matrices within JavaScript. They can be used in transformations in CSS, <canvas>, and SVG.

Supported in all major browsers for at least 30 months — safe to use without fallbacks. Baseline since Jan 15, 2020. Widely available since Jul 15, 2022.

Browser support

DesktopChrome
1–60Not supported
61+Supportedsince Sep 5, 2017
Current: 155
Edge
12–18Not supported
79+Supportedsince Jan 15, 2020
Current: 154
Firefox
1–32Not supported
33+Supportedsince Oct 14, 2014
Current: 157
Safari
1–10.1Not supported
11+Supportedsince Sep 19, 2017
Current: 27
MobileChrome Android
18–60Not supported
61+Supportedsince Sep 5, 2017
Current: 155
Firefox Android
4–32Not supported
33+Supportedsince Oct 14, 2014
Current: 157
Safari iOS
1–10.3Not supported
11+Supportedsince Sep 19, 2017
Current: 27

How to use

This feature is Baseline widely available — use it freely, no fallback needed.

Example

Full syntax and examples are on MDN: DOMMatrix.

Feature detection

JS · check before using
if ("DOMMatrix" in globalThis) {
  // DOMMatrix is available
} else {
  // load a polyfill or use a fallback
}

Sub-features

Support for each part of the feature (140). The overall table above shows when the whole feature works.

Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
DOMMatrix61793311613311
DOMMatrix.DOMMatrix61793311613311
DOMMatrix.a61793311613311
DOMMatrix.b61793311613311
DOMMatrix.c61793311613311
DOMMatrix.d61793311613311
DOMMatrix.e61793311613311
DOMMatrix.f61793311613311
DOMMatrix.fromFloat32Array_static61796911617911
DOMMatrix.fromFloat64Array_static61796911617911
DOMMatrix.fromMatrix_static61796911617911
DOMMatrix.invertSelf61793311613311
DOMMatrix.m1161793311613311
DOMMatrix.m1261793311613311
DOMMatrix.m1361793311613311
DOMMatrix.m1461793311613311
DOMMatrix.m2161793311613311
DOMMatrix.m2261793311613311
DOMMatrix.m2361793311613311
DOMMatrix.m2461793311613311
Show 120 more
Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
DOMMatrix.m3161793311613311
DOMMatrix.m3261793311613311
DOMMatrix.m3361793311613311
DOMMatrix.m3461793311613311
DOMMatrix.m4161793311613311
DOMMatrix.m4261793311613311
DOMMatrix.m4361793311613311
DOMMatrix.m4461793311613311
DOMMatrix.multiplySelf61793311613311
DOMMatrix.preMultiplySelf61793311613311
DOMMatrix.rotateAxisAngleSelf61793311613311
DOMMatrix.rotateFromVectorSelf61793311613311
DOMMatrix.rotateSelf61793311613311
DOMMatrix.scale3dSelf61793311613311
DOMMatrix.scaleSelf61793311613311
DOMMatrix.setMatrixValue61793311613311
DOMMatrix.skewXSelf61793311613311
DOMMatrix.skewYSelf61793311613311
DOMMatrix.translateSelf61793311613311
DOMMatrix.worker_support61796911617911
DOMMatrixReadOnly61793311613311
DOMMatrixReadOnly.DOMMatrixReadOnly61796211616211
DOMMatrixReadOnly.a61793311613311
DOMMatrixReadOnly.b61793311613311
DOMMatrixReadOnly.c61793311613311
DOMMatrixReadOnly.d61793311613311
DOMMatrixReadOnly.e61793311613311
DOMMatrixReadOnly.f61793311613311
DOMMatrixReadOnly.flipX61793311613311
DOMMatrixReadOnly.flipY61793311613311
DOMMatrixReadOnly.fromFloat32Array_static61796911617911
DOMMatrixReadOnly.fromFloat64Array_static61796911617911
DOMMatrixReadOnly.fromMatrix_static61796911617911
DOMMatrixReadOnly.inverse61793311613311
DOMMatrixReadOnly.is2D61793311613311
DOMMatrixReadOnly.isIdentity61795911615911
DOMMatrixReadOnly.m1161793311613311
DOMMatrixReadOnly.m1261793311613311
DOMMatrixReadOnly.m1361793311613311
DOMMatrixReadOnly.m1461793311613311
DOMMatrixReadOnly.m2161793311613311
DOMMatrixReadOnly.m2261793311613311
DOMMatrixReadOnly.m2361793311613311
DOMMatrixReadOnly.m2461793311613311
DOMMatrixReadOnly.m3161793311613311
DOMMatrixReadOnly.m3261793311613311
DOMMatrixReadOnly.m3361793311613311
DOMMatrixReadOnly.m3461793311613311
DOMMatrixReadOnly.m4161793311613311
DOMMatrixReadOnly.m4261793311613311
DOMMatrixReadOnly.m4361793311613311
DOMMatrixReadOnly.m4461793311613311
DOMMatrixReadOnly.multiply61793311613311
DOMMatrixReadOnly.rotate61793311613311
DOMMatrixReadOnly.rotateAxisAngle61793311613311
DOMMatrixReadOnly.rotateFromVector61793311613311
DOMMatrixReadOnly.scale61793311613311
DOMMatrixReadOnly.scale3d61793311613311
DOMMatrixReadOnly.skewX61793311613311
DOMMatrixReadOnly.skewY61793311613311
DOMMatrixReadOnly.toFloat32Array61793311613311
DOMMatrixReadOnly.toFloat64Array61793311613311
DOMMatrixReadOnly.toJSON61796211616211
DOMMatrixReadOnly.toString61793311613311
DOMMatrixReadOnly.transformPoint61793311613311
DOMMatrixReadOnly.translate61793311613311
DOMMatrixReadOnly.worker_support61796911617911
DOMPoint61793110.1613110.3
DOMPoint.DOMPoint61793110.1613110.3
DOMPoint.fromPoint_static61796210.1616210.3
DOMPoint.w61793110.1613110.3
DOMPoint.worker_support61796910.1617910.3
DOMPoint.x61793110.1613110.3
DOMPoint.y61793110.1613110.3
DOMPoint.z61793110.1613110.3
DOMPointReadOnly61793110.1613110.3
DOMPointReadOnly.DOMPointReadOnly61796210.1616210.3
DOMPointReadOnly.fromPoint_static61796210.1616210.3
DOMPointReadOnly.matrixTransform61796911617911
DOMPointReadOnly.toJSON61796210.1616210.3
DOMPointReadOnly.w61793110.1613110.3
DOMPointReadOnly.worker_support61796910.1617910.3
DOMPointReadOnly.x61793110.1613110.3
DOMPointReadOnly.y61793110.1613110.3
DOMPointReadOnly.z61793110.1613110.3
DOMQuad61793111613111
DOMQuad.DOMQuad61793111613111
DOMQuad.fromQuad_static61796911617911
DOMQuad.fromRect_static61796911617911
DOMQuad.getBounds61796211616211
DOMQuad.p161793111613111
DOMQuad.p261793111613111
DOMQuad.p361793111613111
DOMQuad.p461793111613111
DOMQuad.toJSON61796211616211
DOMQuad.worker_support61796911617911
DOMRect61792710.1612710.3
DOMRect.DOMRect61793110.1613110.3
DOMRect.fromRect_static61796910.1617910.3
DOMRect.height61792710.1612710.3
DOMRect.width61792710.1612710.3
DOMRect.worker_support61796910.1617910.3
DOMRect.x61793110.1613110.3
DOMRect.y61793110.1613110.3
DOMRectList61792710.1612710.3
DOMRectList.item61792710.1612710.3
DOMRectList.length61792710.1612710.3
DOMRectReadOnly61793110.1613110.3
DOMRectReadOnly.DOMRectReadOnly61796210.1616210.3
DOMRectReadOnly.bottom61793110.1613110.3
DOMRectReadOnly.fromRect_static61796910.1617910.3
DOMRectReadOnly.height61793110.1613110.3
DOMRectReadOnly.left61793110.1613110.3
DOMRectReadOnly.right61793110.1613110.3
DOMRectReadOnly.toJSON61796210.1616210.3
DOMRectReadOnly.top61793110.1613110.3
DOMRectReadOnly.width61793110.1613110.3
DOMRectReadOnly.worker_support61796910.1617910.3
DOMRectReadOnly.x61793110.1613110.3
DOMRectReadOnly.y61793110.1613110.3