CSS Transforms

By  on  

CSS has become more and more powerful over the past few years and CSS transforms are a prime example. CSS transforms allow for sophisticated, powerful transformations of HTML elements.  One or more transformations can be applied to a given element and transforms can even be animated using CSS animations.

Transform Types

There are several types of CSS transforms, each performing a different function.  The following are the transform types with example value:

  • transform: none
  • transform: matrix(1.0, 2.0, 3.0, 4.0, 5.0, 6.0)
  • transform: matrix3d(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0)
  • transform: rotate(0.5turn)
  • transform: rotateX(3deg)
  • transform: rotateY(3deg)
  • transform: rotateZ(3deg)
  • transform: rotate3d(1, 2.0, 3.0, 3deg)
  • transform: scale(3, 3.5)
  • transform: scaleX(3)
  • transform: scaleY(0.6)
  • transform: scaleZ(0.9)
  • transform: scale3d(2.5, 1.2, 0.3)
  • transform: skewX(44deg)
  • transform: skewY(1.9rad)
  • transform: translate(12px, 20%)
  • transform: translateX(5em)
  • transform: translateY(9in)
  • transform: translateZ(4px)
  • transform: translate3d(40px, 20%, 5em)
  • transform: perspective(40px)

All text, imagery, background imagery, and other elements will be transformed accordingly.

Multiple Transforms

Applying multiple transforms to an element is simple:

.myTransformElement {
	transform: scale(2) skewY(0.3) rotate(4deg);
}

Separate multiple transforms using spaces!

Sibling Property: transform-origin

Transforms have a sibling property of transform-origin.  The transform-origin property provides a point of origin for the given transform to take place:

.myTransformElement {
	transform: scale(2) skewY(0.3) rotate(4deg);

	transform-origin: 0 0;
	transform-origin: 50% 50%;
	transform-origin: -5em 3em;
}

As you can see above, there are several formats of transform-origin to choose from.

Animating Transforms

Animating CSS transforms is just as easy as animating any other CSS property:

.container {
	transform: rotateY(2deg);
	transition: 0.6s;
	transition-property: transform;
}

.container:hover {
	transform: rotateY(180deg);
}

@keyframe animations can also be used to animate CSS transforms.

CSS Transform Examples

Recent Features

  • By
    Introducing MooTools Templated

    One major problem with creating UI components with the MooTools JavaScript framework is that there isn't a great way of allowing customization of template and ease of node creation. As of today, there are two ways of creating: new Element Madness The first way to create UI-driven...

  • By
    9 Mind-Blowing WebGL Demos

    As much as developers now loathe Flash, we're still playing a bit of catch up to natively duplicate the animation capabilities that Adobe's old technology provided us.  Of course we have canvas, an awesome technology, one which I highlighted 9 mind-blowing demos.  Another technology available...

Incredible Demos

  • By
    MooTools, Mario, and Portal

    I'm a big fan of video games. I don't get much time to play them but I'll put down the MacBook Pro long enough to get a few games in. One of my favorites is Portal. For those who don't know, what's...

  • By
    Retrieve Your Gmail Emails Using PHP and IMAP

    Grabbing emails from your Gmail account using PHP is probably easier than you think. Armed with PHP and its IMAP extension, you can retrieve emails from your Gmail account in no time! Just for fun, I'll be using the MooTools Fx.Accordion plugin...

Discussion

    Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!