CSS Transform: Theory & Interactive Examples

What is CSS Transform?

CSS transform is a powerful property that lets you visually manipulate elements in 2D or 3D space. You can move, scale, rotate, skew, and combine these effects to create engaging, interactive interfaces—all with hardware acceleration and no JavaScript required.

How Does Transform Work?

Common Transform Functions

Transform Origin

The transform-origin property sets the point around which a transformation is applied (default is the element's center). Example: transform-origin: left bottom;

Matrix & 3D Transforms

Interactive Examples

1. Translate

Hover me!
.translate-demo {
  transition: transform 0.4s;
}
.translate-demo:hover {
  transform: translate(40px, -20px);
}

2. Scale

Hover me!
.scale-demo {
  transition: transform 0.4s;
}
.scale-demo:hover {
  transform: scale(1.3);
}

3. Rotate

Hover me!
.rotate-demo {
  transition: transform 0.4s;
}
.rotate-demo:hover {
  transform: rotate(-18deg);
}

4. Skew

Hover me!
.skew-demo {
  transition: transform 0.4s;
}
.skew-demo:hover {
  transform: skew(20deg, 5deg);
}

5. Combined Transforms

Hover me!
.combo-demo {
  transition: transform 0.5s cubic-bezier(.4,1.6,.4,1);
}
.combo-demo:hover {
  transform: scale(1.2) rotate(8deg) translateY(-18px);
}

6. 3D Perspective

Hover me!
.perspective-demo {
  transition: transform 0.6s cubic-bezier(.4,1.6,.4,1);
  perspective: 300px;
}
.perspective-demo:hover {
  transform: rotateY(40deg) scale(1.1);
}

7. Transform Origin

Hover me!
.origin-demo {
  transition: transform 0.5s;
  transform-origin: left bottom;
}
.origin-demo:hover {
  transform: rotate(-30deg) scale(1.1);
}

8. Matrix Transform

Hover me!
.matrix-demo {
  transition: transform 0.5s;
}
.matrix-demo:hover {
  transform: matrix(1, 0.3, 0.3, 1, 20, -10);
}

9. 3D RotateX

Hover me!
.rotatex-demo {
  transition: transform 0.6s cubic-bezier(.4,1.6,.4,1);
  perspective: 300px;
}
.rotatex-demo:hover {
  transform: rotateX(50deg) scale(1.1);
}

10. Image Transform

Image of a man playing with fire
.img-transform-demo {
  width: 100%;
  max-width: 220px;
  border-radius: 10px;
  transition: transform 0.5s cubic-bezier(.4,1.6,.4,1), filter 0.5s;
}
.img-transform-demo:hover {
  transform: scale(1.18) rotate(-6deg);
  filter: brightness(1.1) contrast(1.1);
}

Tip: Hover over the boxes and image to see the transforms in action! Try combining transforms for creative effects.

Best Practices & Notes

Further Exploration