The matrix() CSS function defines a homogeneous 2D transformation matrix. Its result is a <transform-function> data type.
On this page
matrix()
Try it
Note: matrix(a, b, c, d, tx, ty) is a shorthand for matrix3d(a, b, 0, 0, c, d, 0, 0, 0, 0, 1, 0, tx, ty, 0, 1).
Syntax
The matrix() function is specified with six values. The constant values are implied and not passed as parameters; the other parameters are described in the column-major order.
css
matrix(a, b, c, d, tx, ty)
Values
- a b c d
-
Are
<number>s describing the linear transformation. - tx ty
-
Are
<number>s describing the translation to apply.
| Cartesian coordinates on ℝ^2 | Homogeneous coordinates on ℝℙ^2 | Cartesian coordinates on ℝ^3 | Homogeneous coordinates on ℝℙ^3 |
|---|---|---|---|
[a b c d tx ty] |
The values represent the following functions: matrix(scaleX(), skewY(), skewX(), scaleY(), translateX(), translateY())
Examples
HTML
html
<div>Normal</div>
<div class="changed">Changed</div>
CSS
css
div {
width: 80px;
height: 80px;
background-color: skyblue;
}
.changed {
transform: matrix(1, 2, -1, 1, 80, 80);
background-color: pink;
}
Result
Specifications
| Specification |
|---|
| CSS Transforms Module Level 1 # funcdef-transform-matrix |
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
matrix |
1 | 12 | 9 | 10.5 | 3.1 | 2 | 18 | 4 | 11 | 3.2 | 1.0 | |
See also
transform- Individual transform properties:
<transform-function>matrix3d()- Understanding the CSS Transforms Matrix
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/matrix