This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The createSVGTransformFromMatrix() method of the SVGSVGElement interface creates an SVGTransform object outside of any document trees, based on the given DOMMatrix object.
createSVGTransformFromMatrix(matrix)
An SVGTransform object, initialized to the given matrix transform. It is a matrix() transform if the matrix is 2D, and a matrix3d() transform otherwise.
<svg id="exampleSVG" width="200" height="200"> <rect id="exampleRect" x="50" y="50" width="100" height="50" fill="blue" /> </svg>
const svgElement = document.getElementById("exampleSVG");
const rectElement = document.getElementById("exampleRect");
// Create a new matrix
const matrix = svgElement.createSVGMatrix();
matrix.a = 1; // Scale x
matrix.d = 1; // Scale y
matrix.e = 50; // Translate x
matrix.f = 50; // Translate y
// Create a new SVGTransform from the matrix
const transform = svgElement.createSVGTransformFromMatrix(matrix);
// Apply the transform to the rectangle
rectElement.transform.baseVal.appendItem(transform);
| Specification |
|---|
| Scalable Vector Graphics (SVG) 2> # __svg__SVGSVGElement__createSVGTransformFromMatrix> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
createSVGTransformFromMatrix |
1 | 12 | 1.5 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 | 1 |
© 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/SVGSVGElement/createSVGTransformFromMatrix