Bird
Raised Fist0
Tailwindmarkup~5 mins

Transform (scale, rotate, translate) in Tailwind

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction

Transforms let you change how an element looks by moving, turning, or resizing it without changing the page layout.

To make buttons grow bigger when hovered over for a nice effect.
To rotate an image slightly to make it look playful or dynamic.
To slide a menu in from the side when a user clicks a button.
To zoom in on a picture when a user focuses on it for better detail.
Syntax
Tailwind
class="transform scale-110 rotate-45 translate-x-4 translate-y-2"
Use transform class to enable transformations on an element.
Combine scale, rotate, and translate classes to change size, angle, and position.
Examples
This makes the text 25% bigger.
Tailwind
<div class="transform scale-125">Text bigger</div>
This rotates the text 90 degrees clockwise.
Tailwind
<div class="transform rotate-90">Rotated text</div>
This moves the text right and down by small steps.
Tailwind
<div class="transform translate-x-6 translate-y-3">Moved text</div>
This example combines scaling down, rotating slightly, and moving right.
Tailwind
<div class="transform scale-90 rotate-12 translate-x-2">Combined transform</div>
Sample Program

This page shows three boxes: a button that grows bigger when hovered, a box rotated 45 degrees, and a box moved right and down. The transform class enables the changes, and scale, rotate, translate classes adjust the look.

Tailwind
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <title>Tailwind Transform Example</title>
  <script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="flex flex-col items-center justify-center min-h-screen gap-6 bg-gray-50">
  <button class="transform scale-110 bg-blue-500 text-white px-6 py-3 rounded hover:scale-125 transition-transform">
    Hover me to grow
  </button>
  <div class="transform rotate-45 bg-green-300 p-4 rounded">
    Rotated box
  </div>
  <div class="transform translate-x-8 translate-y-4 bg-red-300 p-4 rounded">
    Moved box
  </div>
</body>
</html>
OutputSuccess
Important Notes

Always add the transform class before scale, rotate, or translate classes to activate transformations.

Use transition-transform for smooth animation effects when transforms change.

Transforms do not affect the space the element takes on the page, so other elements stay in place.

Summary

Transforms let you move, rotate, or resize elements visually without changing layout.

Tailwind uses transform plus scale, rotate, and translate classes to apply these effects.

Combine transforms and add transitions for smooth interactive effects.

Practice

(1/5)
1. What does the Tailwind class scale-110 do to an element?
easy
A. It makes the element 110% transparent.
B. It rotates the element by 110 degrees.
C. It makes the element 10% larger than its original size.
D. It moves the element 110 pixels to the right.

Solution

  1. Step 1: Understand the scale utility

    The scale-110 class in Tailwind increases the size of the element by 110%, which means 10% larger than normal.
  2. Step 2: Differentiate from other transforms

    Rotation and translation use different classes like rotate- and translate-. Transparency uses opacity classes, not scale.
  3. Final Answer:

    It makes the element 10% larger than its original size. -> Option C
  4. Quick Check:

    scale-110 means 110% size = 10% larger [OK]
Hint: Scale classes change size by percentage, not position or rotation [OK]
Common Mistakes:
  • Confusing scale with rotate or translate
  • Thinking scale changes transparency
  • Assuming scale-110 means 110 pixels
2. Which Tailwind class correctly rotates an element by 45 degrees clockwise?
easy
A. rotate-45
B. scale-45
C. translate-45
D. rotate-90

Solution

  1. Step 1: Identify rotation classes

    Tailwind uses rotate- followed by degrees to rotate elements. rotate-45 means rotate 45 degrees clockwise.
  2. Step 2: Exclude other transform types

    scale- changes size, translate- moves position, and rotate-90 rotates 90 degrees, not 45.
  3. Final Answer:

    rotate-45 -> Option A
  4. Quick Check:

    rotate-45 means 45 degrees rotation [OK]
Hint: Rotate classes use degrees, scale and translate do not rotate [OK]
Common Mistakes:
  • Using scale or translate classes for rotation
  • Choosing wrong rotation degree
  • Confusing clockwise and counterclockwise directions
3. What visual effect will this Tailwind code produce?
<div class="transform translate-x-4 rotate-90 scale-50 bg-blue-500 w-20 h-20">Box</div>
medium
A. A blue box normal size, no rotation, moved right by 4rem
B. A blue box twice its size, rotated 90 degrees, moved left by 4rem
C. A blue box half its size, rotated 45 degrees, moved right by 4rem
D. A blue box half its size, rotated 90 degrees, moved right by 1rem

Solution

  1. Step 1: Decode each transform class

    translate-x-4 moves the element right by 1rem (4 * 0.25rem), rotate-90 rotates it 90 degrees clockwise, and scale-50 scales it to 50% size (half).
  2. Step 2: Combine visual effects

    The box will appear smaller (half size), rotated on its center by 90 degrees, and shifted right by 1rem. The background and size classes set color and base size.
  3. Final Answer:

    A blue box half its size, rotated 90 degrees, moved right by 1rem -> Option D
  4. Quick Check:

    translate-x-4 = 1rem right, rotate-90 = 90°, scale-50 = half size [OK]
Hint: Translate-x-4 equals 1rem right, scale-50 halves size [OK]
Common Mistakes:
  • Misreading translate-x-4 as 4rem
  • Confusing rotate-90 with rotate-45
  • Assuming scale-50 means double size
4. Identify the error in this Tailwind class usage:
<div class="transform scale-150 rotate-360 translate-y-6px">Content</div>
medium
A. translate-y-6px is invalid; Tailwind uses spacing scale, not px units
B. rotate-360 is invalid; rotation max is 180 degrees
C. scale-150 is invalid; scale max is 100
D. transform class is missing

Solution

  1. Step 1: Check translate-y syntax

    Tailwind translate classes use predefined spacing scale like translate-y-6, not custom units like 6px. So translate-y-6px is invalid.
  2. Step 2: Verify rotate and scale values

    rotate-360 is valid (full rotation), and scale-150 is valid (150% size). The transform class is present.
  3. Final Answer:

    translate-y-6px is invalid; Tailwind uses spacing scale, not px units -> Option A
  4. Quick Check:

    Tailwind translate uses scale numbers, not px [OK]
Hint: Tailwind translate classes never use px units, only scale numbers [OK]
Common Mistakes:
  • Using px units in translate classes
  • Thinking rotate-360 is invalid
  • Assuming scale-150 is out of range
5. You want a button that grows 25% bigger and rotates 15 degrees clockwise when hovered. Which Tailwind classes achieve this effect?
hard
A. transform scale-125 rotate-15 hover transition duration-300
B. transform hover:scale-125 hover:rotate-15 transition duration-300
C. hover:transform scale-125 rotate-15 transition duration-300
D. transform hover:scale-150 hover:rotate-90 transition duration-300

Solution

  1. Step 1: Use hover prefix for interactive effects

    To apply scale and rotate only on hover, use hover:scale-125 and hover:rotate-15. The base transform class enables transforms.
  2. Step 2: Add smooth transition

    Include transition duration-300 for smooth animation over 300ms. Other options either miss hover prefixes or use wrong values.
  3. Final Answer:

    transform hover:scale-125 hover:rotate-15 transition duration-300 -> Option B
  4. Quick Check:

    Hover scale 125 + rotate 15 + transition = transform hover:scale-125 hover:rotate-15 transition duration-300 [OK]
Hint: Use hover: prefix for hover effects and transform to enable transforms [OK]
Common Mistakes:
  • Missing hover: prefix on scale or rotate
  • Using wrong scale or rotate values
  • Not including transform class