CSS 2D Transforms

CSS 2D Transforms

CSS transforms allow you to move, rotate, scale, and skew elements.

CSS 2D Transforms Functions

With the CSS transform property you can use the following 2D transformation functions:

  • translate()
  • rotate()
  • scaleX()
  • scaleY()
  • scale()
  • skewX()
  • skewY()
  • skew()
  • matrix()

The translate() Function

The translate() function moves an element from its current position (according to the parameters given for the X-axis and the Y-axis).

The following example moves the <div> element 50 pixels to the right, and 100 pixels down from its current position:

Example

div {
  transform: translate(50px, 100px);
}

The rotate() Function

The rotate() function rotates an element clockwise or counter-clockwise according to a given degree.

The following example rotates the <div> element clockwise with 20 degrees:

Example

div {
  transform: rotate(20deg);
}

Using negative values will rotate the element counter-clockwise.

The following example rotates the <div> element counter-clockwise with 20 degrees:

Example

div {
  transform: rotate(-20deg);
}

The scale() Function

The scale() function increases or decreases the size of an element (according to the parameters given for the width and height).

The following example increases the <div> element to be two times of its original width, and three times of its original height:

Example

div {
  transform: scale(2, 3);
}

The following example decreases the <div> element to be half of its original width and height:

Example

div {
  transform: scale(0.5, 0.5);
}

The scaleX() Function

The scaleX() function increases or decreases the width of an element.

The following example increases the <div> element to be two times of its original width:

Example

div {
  transform: scaleX(2);
}

The following example decreases the <div> element to be half of its original width:

Example

div {
  transform: scaleX(0.5);
}

The scaleY() Function

The scaleY() function increases or decreases the height of an element.

The following example increases the <div> element to be three times of its original height:

Example

div {
  transform: scaleY(3);
}

The following example decreases the <div> element to be half of its original height:

Example

div {
  transform: scaleY(0.5);
}

The skewX() Function

The skewX() function skews an element along the X-axis by the given angle.

The following example skews the <div> element 20 degrees along the X-axis:

Example

div {
  transform: skewX(20deg);
}

The skewY() Function

The skewY() function skews an element along the Y-axis by the given angle.

The following example skews the <div> element 20 degrees along the Y-axis:

Example

div {
  transform: skewY(20deg);
}

The skew() Function

The skew() function skews an element along the X and Y-axis by the given angles.

The following example skews the <div> element 20 degrees along the X-axis, and 10 degrees along the Y-axis:

Example

div {
  transform: skew(20deg, 10deg);
}

If the second parameter is not specified, it has a zero value. So, the following example skews the <div> element 20 degrees along the X-axis:

Example

div {
  transform: skew(20deg);
}

The matrix() Function

The matrix() function combines all the 2D transform functions into one.

The matrix() function take six parameters, containing mathematic functions, which allows you to rotate, scale, move (translate), and skew elements.

The parameters are as follow: matrix(scaleX(), skewY(), skewX(), scaleY(), translateX(), translateY())

Example

div {
  transform: matrix(1, -0.3, 0, 1, 0, 0);
}