Scroll to top
Read Time: 3 min

Welcome to the magical world of CSS transforms! Picture this: you have a square element on your web page, but you decide it should twist, spin, grow, or even dance. The CSS transform property is your magic wand. It allows you to perform all these enchanting operations and more, opening a realm of possibilities to animate and morph your web elements in exciting ways!


The transform property’s default value is none, which means no transformations are applied. Its syntax is quite straightforward, and here is how you can summon the magic with a simple spell:

selector {
  transform: transform-function(transform-value);

In the above snippet, replace transform-function with the kind of transformation you want. You can even chain multiple transformations to create a sequence of magical effects!

The transform property can be applied to all elements except non-replaced inline boxes, table-column boxes, and table-column-group boxes.

Code Snippet:

This example applies two functions to one element.

div {
  transform: rotate(30deg) scale(1.2);

Transform Functions and Values

There’s a vibrant palette of functions you can use with the CSS transform property to bring your creative visions to life:

2D Transform Functions

  • translate(): Moves an element from its current position in a 2D space.
  • translateX(): Moves an element along the x-axis.
  • translateY(): Moves an element along the y-axis.
  • rotate(): Rotates an element from a given point, based on a specific angle.
  • scale(): Alters the size of an element.
  • scaleX(): Scales an element along the x-axis.
  • scaleY(): Scales an element along the y-axis.
  • skew(): Skews an element along the x and y-axis.
  • skewX(): Skews an element along the x-axis.
  • skewY(): Skews an element along the y-axis.
  • matrix(): Applies a 2D transformation matrix to an element, defined by six values.

3D Transform Functions

  • translate3d(): Moves an element in a 3D space.
  • translateZ(): Moves an element along the z-axis.
  • rotate3d(): Rotates an element in 3D space using four values.
  • rotateX(): Rotates an element around the x-axis in a 3D space.
  • rotateY(): Rotates an element around the y-axis in a 3D space.
  • rotateZ(): Rotates an element around the z-axis in a 3D space.
  • scale3d(): Scales an element in a 3D space.
  • scaleZ(): Scales an element along the z-axis in a 3D space.
  • matrix3d(): Applies a 3D transformation matrix to an element, defined by 16 values.
  • perspective(): Applies a perspective view to an element.
If using perspective() as one of multiple function values, it must be the first one listed.

Additional Transform Functions

  • none: Resets the transform property, representing no transformation.

Example Usage

/* Using 2D functions */
.element {
  transform: rotate(30deg) translateX(50px) scaleY(1.2);
/* Playing with 3D transformations */
.element3d {
  transform: rotate3d(1, 0, 0, 45deg) translateZ(100px) scale3d(1.0, 1.2, 1.5);

These functions can be mixed and matched, and even chained together to create complex transformations and delightful effects. Play with the demos below to see how some of the translate functions affect a square div:





Did you know? The transform property can work hand in hand with the transform-origin property, allowing you to change the point around which the transformation occurs. It’s like choosing the stage from where your element performs its fascinating dance, adding a fresh perspective to the transformations!

Additional Resources

For those keen to delve deeper into the mysteries and wonders of the transform property, here are some valuable resources:

Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Web Design tutorials. Never miss out on learning about the next big thing.
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.