INTRO

INTRO

New

Intro to the Designer

Intro to the Designer

New

2:48

Intro to HTML & CSS

Intro to HTML & CSS

New

3:38

HTML Structure

HTML Structure

New

1:55

WEB STRUCTURE

WEB STRUCTURE

New

The Box Model

The Box Model

New

1:54

Element Hierarchy

Element Hierarchy

New

3:57

Navigator Panel

Navigator Panel

New

2:45

ELEMENTS

ELEMENTS

New

Element Panel

Element Panel

New

1:49

Section

Section

New

4:14

Container

Container

New

2:44

Columns

Columns

New

2:22

Div block

Div block

New

3:37

Buttons & Links

Buttons & Links

New

Button

Button

New

14:08

Link Block

Link Block

New

9:35

Text Link

Text Link

New

1:16

Typography

Typography

New

3:20

Heading

Heading

New

2:02

Paragraph

Paragraph

New

4:42

Rich Text

Rich Text

New

3:52

Text Block

Text Block

New

0:56

Block Quote

Block Quote

New

0:42

List

List

New

2:31

Media

Media

New

Image

Image

New

3:39

Image File Types

Image File Types

New

2:22

Image Resolution

Image Resolution

New

3:28

Assets Panel

Assets Panel

New

3:08

Video

Video

New

1:20

Background Video

Background Video

New

3:15

Components

Components

New

Intro to Forms

Intro to Forms

New

4:55

Styling Forms

Styling Forms

New

2:55

Navbar

Navbar

New

9:38

Styling a Navbar

Styling a Navbar

New

4:34

Navbar Menu Button

Navbar Menu Button

New

4:51

Slider

Slider

New

4:56

Tabs

Tabs

New

4:38

Lightbox

Lightbox

New

3:44

Map

Map

New

2:58

Dropdown

Dropdown

New

4:38

Social Media Buttons

Social Media Buttons

New

2:49

Custom Code Embed

Custom Code Embed

New

1:24

Symbols

Symbols

New

3:47

Styling Basics

Styling Basics

New

Intro to Style Panel

Intro to Style Panel

New

3:15

HTML Tags

HTML Tags

New

3:59

Classes

Classes

New

2:46

Combo Classes

Combo Classes

New

4:05

Text Style Inheritance

Text Style Inheritance

New

3:18

Style Manager

Style Manager

New

1:56

States

States

New

2:47

Transitions

Transitions

New

2:40

Color Picker & Swatches

Color Picker & Swatches

New

3:51

Color Values

Color Values

New

3:22

Layout Basics

Layout Basics

New

Intro to Web Layout

Intro to Web Layout

New

2:27

Display Settings

Display Settings

New

2:54

Padding & Margin

Padding & Margin

New

2:48

Width & Height Units

Width & Height Units

New

3:59

Floats & Clears

Floats & Clears

New

1:52

Flexbox & Grid

Flexbox & Grid

New

Intro to Flexbox

Intro to Flexbox

New

2:27

Centering elements with Flexbox

Centering elements with Flexbox

New

1:20

Equal height layouts with Flexbox

Equal height layouts with Flexbox

New

1:47

Grid layouts overview

Grid layouts overview

New

4:18

Flexbox vs. Grid

Flexbox vs. Grid

New

4:00

Advanced Layout

Advanced Layout

New

Positioning Overview

Positioning Overview

New

1:48

Relative Positioning

Relative Positioning

New

1:43

Absolute Positioning

Absolute Positioning

New

1:43

Fixed Positioning

Fixed Positioning

New

1:27

Z-Index

Z-Index

New

1:49

Overflow

Overflow

New

1:49

Styling Typography

Styling Typography

New

Intro to Web Typography

Intro to Web Typography

New

3:20

Typography Units

Typography Units

New

2:43

Line Height

Line Height

New

1:38

Advanced Typography Styles

Advanced Typography Styles

New

3:01

Google Fonts

Google Fonts

New

1:18

Custom Fonts

Custom Fonts

New

1:27

Text Shadow

Text Shadow

New

2:36

Background & Border Styles

Background & Border Styles

New

Background Styles Overview

Background Styles Overview

New

2:20

Background Image

Background Image

New

2:04

Background Gradient

Background Gradient

New

3:02

Border

Border

New

3:07

Border Radius

Border Radius

New

3:22

Box Shadow

Box Shadow

New

3:34

3D Styles

3D Styles

New

Intro to 3D

Intro to 3D

New

2:25

3D Perspective

3D Perspective

New

4:01

2D & 3D Transforms

2D & 3D Transforms

New

4:53

EFFECTS

EFFECTS

New

Opacity

Opacity

New

1:44

Filters

Filters

New

2:59

Cursors

Cursors

New

1:45

Responsive Design

Responsive Design

New

new course
CSS grid landing page tutorial (36min)

Lesson info

Lesson info

In web design, transforms allow you to manipulate an element's appearance and position without changing the actual dimensions of the element, or affecting the other elements around it. There are four kinds of transforms:

  1. Move
  2. ‍Scale
  3. ‍Rotate
  4. ‍Skew

In this video, we'll show you to add each of these transform types to your web designs, whether they're 2D or 3D. We'll also briefly cover how to use transforms to smooth out transitions between states like hover, pressed, and focused.

Explore this project

Want to dig into the project featured in this video and see how everything is put together? We've included the full project we used when making this lesson, and we've shared the link right under this very paragraph.

View and clone this projectDownload lesson assets
Clone this projectDownload project assets

Transcript

Just like setting relative position on an element, Transforms give us the power to manipulate without interrupting the default document flow. That (what we just said) is a technical and likely obnoxious way of saying: Transforms only affect an element and its children without pushing other stuff around. We can move an element, affect its scale or size, rotate the element, skew its proportions, and control specific settings regarding how each of these Transform values affects styling.

Instead of going through this content on the None state — which we know isn't so much a state as it's just styling the normal element — instead of going through all of this on None, we're going to add our Transforms on hover.

Why? Good question.

Let's start with Move.

With our element selected — and this is a link block, but this works on almost any kind of element like buttons or text or Adamantium — we're going to head on over to our Hover state. And as we make changes to this state, not only are we affecting this element; we're affecting the other two link blocks as well. They've all been styled using the same class.

So in Hover, let's move things around using a Transform. And here we can adjust the X value to move left and right. We can adjust the Y value to move up and down. We can use combinations of X and Y to move things diagonally. And we can change our Z value. Whoops, that's embarrassing. Except it isn't.

The Z value is essentially pushing or pulling an object away from or towards what we think of as the screen. It's our depth value. So we have to set our Children Perspective on one of the parent elements. We can just select our section? And set our Children Perspective to — let's say — 1000 pixels.

Back to our Link Block, back into where we were controlling our Transform? We can move our Z value accordingly. And now that depth — that perspective — is more apparent.

If we hover over these Link Blocks, we can see our Transform effect in action. But it's a bit abrupt. Let's go in (we're going to style None) and we'll go and add a Transition. What kind of Transition? A Transition affecting Transforms. And we'll set the duration to 500 milliseconds (half a second).

Hover now, and we can see that move in action. Right on our Link Blocks.

That's Move. Let's do Scale.

And from our Move controls, we can switch over to scale. Keep in mind that doing this loses all our Move values. Each Transform type (like move, scale, rotate...) must be made separately. We can add a separate one for each. So if we go back to Move? Tweak some values? That's cool. We can close out and add a separate Transform, and now we can choose Scale.

Notice how the changes we made on the Move Transform still exist — because this is separate. We can adjust our X and Y values (these are linked by default). Or we can unlink and adjust x and y values independently.

If we go to test this out? Take a look at hover? We can see the Transform properties we just set.

And what about Z? This is actually kind of cool. It's really powerful. And right now it does nothing. We cover this more in 3D Perspective, but here we'll say Z scaling is an option.

Let's delete our existing Transforms so we can clean house. And we'll move on to Rotate.

Add a Transform? Rotate. We can rotate about the x-axis. We can rotate about the y-axis. We can rotate about the z-axis. If we hover over these Link Blocks, we can again preview what this Transform is looking like on hover.

And the reason this looks 3D — which it is — is because we added that Child Perspective to our section. If we go back into the section and remove that Child Perspective? We get a bit of flattening. Not always the intended look.

That's Rotate. Let's do Skew.

And Skew is one of those Transforms that's great to assess visually. We'll delete our Rotate Transform, then add a new one for Skew. Adjusting the x value here controls shearing along the x-axis, and adjusting the y-value controls shearing along the y-axis.

That's Skew. And finally, let's look at some settings.

Inside Settings, we can control our Transform origin. This is like setting our anchor point. If we add a Transform and go over to scale? We can see that everything is scaling from the center. That's because the origin is in the center.

If we click out, go back to Settings, and adjust the Transform origin to the bottom-right? We'll notice that our anchor point (that Transform origin) is scaling from the bottom-right. If we go to Rotate? That's the Transform origin for rotations as well.

Self Perspective can be used if we only want to affect our element and its children, but the 3D effect is relative to itself. It's not taking into account what we'd expect the perspective to be inside, say, our section.

And backface? This is how we can set whether or not the backside of an object is visible.

So. Transforms. A powerful tool to affect movement, scaling, rotation, skewing, and skewering. Of course additional settings to control these values.