This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The skew() CSS function defines a transformation that skews an element on the 2D plane. Its result is a <transform-function> data type.
transform: skew(0);
transform: skew(15deg, 15deg);
transform: skew(-0.06turn, 18deg);
transform: skew(0.312rad);
<section id="default-example">
<img
class="transition-all"
id="example-element"
src="/shared-assets/images/examples/firefox-logo.svg"
width="200" />
</section>
This transformation is a shear mapping (transvection) that distorts each point within an element by a certain angle in the horizontal and vertical directions. The effect is as if you grabbed each corner of the element and pulled them along a certain angle.
The coordinates of each point are modified by a value proportionate to the specified angle and the distance to the origin. Thus, the farther from the origin a point is, the greater the value added to it.
skew(ax) skew(ax, ay)
axIs an <angle> representing the angle to use to distort the element along the x-axis.
ay OptionalIs an <angle> representing the angle to use to distort the element along the y-axis. If not defined, its default value is 0, resulting in a purely horizontal skewing.
| Cartesian coordinates on ℝ^2 | Homogeneous coordinates on ℝℙ^2 | Cartesian coordinates on ℝ^3 | Homogeneous coordinates on ℝℙ^3 |
|---|---|---|---|
| | | | |
[1 tan(ay) tan(ax) 1 0 0] |
<skew()> =
skew( [ <angle> | <zero> ] , [ <angle> | <zero> ]? )
<div>Normal</div> <div class="skewed">Skewed</div>
body {
margin: 20px;
}
div {
width: 80px;
height: 80px;
background-color: skyblue;
}
.skewed {
transform: skew(10deg); /* Equal to skewX(10deg) */
background-color: pink;
}
<div>Normal</div> <div class="skewed">Skewed</div>
body {
margin: 20px;
}
div {
width: 80px;
height: 80px;
background-color: skyblue;
}
.skewed {
transform: skew(10deg, 10deg);
background-color: pink;
}
| Specification |
|---|
| CSS Transforms Module Level 1> # funcdef-transform-skew> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
skew |
1 | 12 | 3.5Firefox 14 removed experimental support forskew(), but it was reintroduced in Firefox 15. |
10.5 | 3.1 | 18 | 4 | 11 | 3.2 | 1.0 | 2 | 3.2 |
© 2005–2025 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/skew