DEV Community

CodePassion
CodePassion

Posted on

CSS Rotate Property Explained

Understanding the CSS Rotate Property:
The rotate property is part of the CSS transform module, which allows developers to apply different transformations to elements on a webpage. The rotate function allows you to rotate items by a specified angle, changing their orientation but not their location in the document flow. This characteristic provides tremendous versatility by permitting rotations in both clockwise and anticlockwise orientations.

Syntax and Usage:

The CSS rotate property’s syntax is rather easy. Developers define the desired rotation angle within the brackets of the rotate function, as follows:

.rotate {
    transform: rotate(45deg);
}
Enter fullscreen mode Exit fullscreen mode

In this example, the .rotate class rotates the target element 45 degrees clockwise. It is important to note that angles can be written in a variety of units, including degrees (deg), radians (rad), and gradians (grad), giving developers the freedom to select the most appropriate unit for their needs. (read more example of css rotate property)

Practical example-

Animated flip card using using CSS Transform property
output-

card flip

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Animated Flip Card</title>
</head>
<body>
<div class="card-container">
    <div class="card" id="card" onclick="togglebuton();">
        <div class="front" style="background-color: #ee3646; color: #fff;">
            <h2>Front</h2>
        </div>
        <div class="back" style="background-color: #353535; color: #fff;">
            <h2>Back</h2>
        </div>
    </div>
</div></body>
</html>

Enter fullscreen mode Exit fullscreen mode

CSS:

.card-container {
        perspective: 1000px;
    }
    .card {
        width: 200px;
        height: 200px;
        position: relative;
        transform-style: preserve-3d;
        transition: transform 0.6s;
    }
    .card.flip {
        transform: rotateY(180deg);
    }
    .card .front,
    .card .back {
        width: 100%;
        height: 100%;
        position: absolute;
        backface-visibility: hidden;
    }
    .card .back {
        transform: rotateY(180deg) translateZ(1px);
    }

Enter fullscreen mode Exit fullscreen mode

This code creates a simple CSS-based card flip animation. Let’s take it step by step:

  1. .card-container: This class is assigned to the container element that contains the cards. The perspective attribute specifies the depth of the 3D space in which the cards are rendered. A greater value produces more noticeable 3D effects.

  2. .card: This class corresponds to each individual card. Its width and height are fixed at 200 pixels, and its position is set to relative. The transform-style: preserve-3d feature ensures that the card’s child elements maintain their 3D positioning when transformed.

  3. .card.flip: This class is added to a card when it is required to be flipped. It performs the transformation using rotateY(180deg), which rotates the card 180 degrees around the Y-axis, effectively flipping it over. The transform attribute provides the transition’s duration (0.6 seconds) and ease.

  4. .card .front, .card .back: These classes represent the card’s front and back faces, respectively. They are perfectly positioned within the card element, occupying its complete width and height. The backface-visibility: hidden feature ensures that the back face is not visible when the card is facing forward.

  5. .card .back: This seminar focuses solely on the card’s back face. It is initially rotated 180 degrees along the Y-axis and translated by one pixel along the Z-axis. This translation is required to avoid potential flickering or z-fighting issues caused by the back face being exactly behind the front face.

Javascript:

function togglebuton(){
    document.getElementById("card").classList.toggle('flip');
}
Enter fullscreen mode Exit fullscreen mode

document.getElementById – to select the HTML element with the ID card. The document object represents the webpage, and getElementById is a method that retrieves an element by its ID attribute.

.classList.toggle(‘flip’); :- This part uses the classList property of the selected element, which provides methods to manipulate the classes of the element. The toggle method is called with the argument ‘flip’. This method adds the class ‘flip’ to the element if it is not already present, and removes it if it is present.

Conclusion
The CSS rotate feature is a versatile and effective tool for applying rotation effects to web items. Understanding how to use this attribute effectively, whether you’re generating simple rotations or complicated animations, may improve the visual attractiveness and interaction of your online applications significantly. Experiment with different angles, transitions, and combinations to unlock the full power of the rotate feature in your designs.

Top comments (0)