CSS Transforms
CSS transforms allow you to move, rotate, scale, and skew HTML elements without changing the normal document flow.
What is CSS Transform?
The CSS transform property is used to visually
modify an element by changing its position, size, angle,
or shape.
Transforms are commonly used for buttons, cards, images, menus, animations, hover effects, and interactive components.
Interactive Transform Image
Move your mouse over the image to see the CSS transform effect. The image will scale and rotate smoothly.
Hover or focus on the image to see
scale() and rotate()
working together.
Transform Syntax
selector {
transform: function(value);
}
Simple Explanation
The transform property is used with
transform functions such as
translate(),
rotate(),
scale(), and
skew().
How CSS Transforms Work
1. translate()
The translate() function moves an element
from its original position.
.translate-box {
transform: translate(40px, 20px);
}
Meaning
40px moves the element horizontally and
20px moves it vertically.
Output
2. rotate()
The rotate() function rotates an element
around its center.
.rotate-box {
transform: rotate(15deg);
}
Output
3. scale()
The scale() function increases or decreases
the size of an element.
.scale-box {
transform: scale(1.3);
}
Output
4. skew()
The skew() function tilts or slants an element
along the horizontal or vertical direction.
.skew-box {
transform: skew(15deg);
}
Output
5. scaleX() and scaleY()
You can scale an element separately on the X-axis or Y-axis.
.scale-x {
transform: scaleX(1.5);
}
.scale-y {
transform: scaleY(1.4);
}
6. Combining Transform Functions
Multiple transform functions can be combined in a single
transform declaration.
.combined-box {
transform: translate(20px, 10px)
rotate(10deg)
scale(1.1);
}
Output
7. transform-origin
The transform-origin property defines the
point from which a transformation starts.
.origin-box {
transform-origin: top left;
transform: rotate(15deg);
}
Default Origin
By default, the transformation origin is approximately the center of the element.
Common Transform Functions
| Function | Purpose | Example |
|---|---|---|
translate() |
Moves an element | translate(20px, 10px) |
rotate() |
Rotates an element | rotate(15deg) |
scale() |
Changes size | scale(1.2) |
skew() |
Slants an element | skew(15deg) |
scaleX() |
Scales horizontally | scaleX(1.5) |
scaleY() |
Scales vertically | scaleY(1.4) |
Practical Example: Hover Card
Transforms are frequently combined with hover states to create interactive cards.
.course-card {
transition: transform 0.3s ease;
}
.course-card:hover {
transform: translateY(-8px) scale(1.02);
}
Output
CSS Course
Learn modern CSS concepts with practical examples.
Hover over the card to see the transform effect.
Transform + Transition
A transform changes the visual state immediately unless a transition is added. Combining both creates a smooth effect.
.box {
transition: transform 0.3s ease;
}
.box:hover {
transform: scale(1.1);
}
Why combine them?
transform defines the visual change,
while transition controls how smoothly
the change happens.
Important Note
Transforms visually modify an element without normally changing the space reserved for that element in the document layout.
Best Practices
- Use transforms for visual movement and interaction.
- Combine transforms with transitions for smoother effects.
- Avoid excessive rotation or movement that distracts users.
- Keep hover effects subtle and consistent.
- Test transformed elements on mobile devices.
Summary
CSS transforms allow elements to be moved, rotated,
scaled, and skewed. Important functions include
translate(), rotate(),
scale(), and skew().
Transforms are commonly combined with
transition and pseudo-classes such as
:hover to create interactive effects.