CSS Effects: CSS3 Animation Examples and Tutorials
CSS3 has introduced many possibilities for UX designers, and the best thing about them is that the are really simple to implement.
Just a couple of lines of code will give you an WOW transition effects that will excite your users, increase engagement and ultimately, increase your conversions.
The examples on this page will work now in Firefox, Safari, Chrome, Opera and Internet Explorer 10. In older browsers you will see either no effects, or the transforms taking place without any animation.
All of these effects are controlled with the transition property. So we can see these effects working, we’ll set up a div in an HTML page:
[code lang=”html”]
<!DOCTYPE html>
<html>
<head>
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cstyle%20type%3D%22text%2Fcss%22%3E%0A%20%20%20%20%3C%2Fstyle%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="<style>" title="<style>" />
</head>
<body>
<div></div>
</body>
</html>
[/code]
Having done so, set its width and height (so it has dimensions), its background color (so we can see it) and its transition property.
[code lang=”html”]
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cstyle%20type%3D%22text%2Fcss%22%3E%0Abody%20%3E%20div%0A%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20width%3A483px%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20height%3A298px%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20background%3A%23676470%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20transition%3Aall%200.3s%20ease%3B%0A%7D%0A%3C%2Fstyle%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="<style>" title="<style>" />
[/code]
The transition property has three values: the properties to transition (in our case all of them) the speed of the transition (in our case 0.3 seconds) and a third value which lets you change how the acceleration and deceleration is calculated, but we’ll stick with the default by leaving this blank.
Now all we need to do is change properties, and they’ll animate for us…
If you’d like to follow along you can download the demo files here.
1. FADE IN
Having things fade in is a fairly common request from clients. It’s a great way to emphasize functionality or draw attention to a call to action.
Fade in effects are coded in two steps: first, you set the initial state; next, you set the change, for example on hover:
[code lang=”css”].fade
{
opacity:0.5;
}
.fade:hover
{
opacity:1;
}[/code]
(Make sure you set the class of your div to “fade” to see this working.)
2. CHANGE COLOR
Animating a change of color used to be unbelievably complex, with all kinds of math involved in calculating separate RGB values and then recombining them. Now, we just set the div’s class to “color” and specify the color we want in our CSS:
[code lang=”css”].color:hover
{
background:#53a7ea;
}[/code]
3. GROW AND SHRINK
To grow an element, you used to have to use its width and height, or its padding. But now we can use CSS3’s transform to enlarge.
Set your div’s class to “grow” and then add this code to your style block:
[code lang=”css”].grow:hover
{
-webkit-transform: scale(1.3);
-ms-transform: scale(1.3);
transform: scale(1.3);
}[/code]
Shrinking an element is as simple as growing it. To enlarge an element we specify a value greater than 1, to shrink it, we specify a value less than 1:
[code lang=”css”].shrink:hover
{
-webkit-transform: scale(0.8);
-ms-transform: scale(0.8);
transform: scale(0.8);
}[/code]
4. ROTATE ELEMENTS
CSS transforms have a number of different uses, and one of the best is transforming the rotation of an element. Give your div the class “rotate” and add the following to your CSS:
[code lang=”css”].rotate:hover
{
-webkit-transform: rotateZ(-30deg);
-ms-transform: rotateZ(-30deg);
transform: rotateZ(-30deg);
}[/code]
5. SQUARE TO CIRCLE
A really popular effect at the moment is transitioning a square element into a round one, and vice versa. With CSS, it’s a simple effect to achieve, we just transition the border-radius property.
Give your div the class “circle” and add this CSS to your styles:
[code lang=”css”].circle:hover
{
border-radius:50%;
}[/code]
6. 3D SHADOW
3D shadows were frowned upon for a year or so, because they weren’t seen as compatible with flat design, which is of course nonsense, they work fantastically well to give a user feedback on their interactions and work with flat, or fake 3D interfaces.
This effect is achieved by adding a box shadow, and then moving the element on the x axis using the transform and translate properties so that it appears to grow out of the screen.
Give your div the class “threed” and then add the following code to your CSS:
[code lang=”css”].threed:hover
{
box-shadow:
1px 1px #53a7ea,
2px 2px #53a7ea,
3px 3px #53a7ea;
-webkit-transform: translateX(-3px);
transform: translateX(-3px);
}[/code]
7. SWING
Not all elements use the transition property. We can also create highly complex animations using @keyframes, animation and animation-iteration.
In this case, we’ll first define a CSS animation in your styles. You’ll notice that due to implementation issues, we need to use @-webkit-keyframes as well as @keyframes (yes, Internet Explorer really is better than Chrome, in this respect at least).
[code lang=”css”]@-webkit-keyframes swing
{
15%
{
-webkit-transform: translateX(5px);
transform: translateX(5px);
}
30%
{
-webkit-transform: translateX(-5px);
transform: translateX(-5px);
}
50%
{
-webkit-transform: translateX(3px);
transform: translateX(3px);
}
65%
{
-webkit-transform: translateX(-3px);
transform: translateX(-3px);
}
80%
{
-webkit-transform: translateX(2px);
transform: translateX(2px);
}
100%
{
-webkit-transform: translateX(0);
transform: translateX(0);
}
}
@keyframes swing
{
15%
{
-webkit-transform: translateX(5px);
transform: translateX(5px);
}
30%
{
-webkit-transform: translateX(-5px);
transform: translateX(-5px);
}
50%
{
-webkit-transform: translateX(3px);
transform: translateX(3px);
}
65%
{
-webkit-transform: translateX(-3px);
transform: translateX(-3px);
}
80%
{
-webkit-transform: translateX(2px);
transform: translateX(2px);
}
100%
{
-webkit-transform: translateX(0);
transform: translateX(0);
}
}[/code]
This animation simply moves the element left and right, now all we need to do is apply it:
[code lang=”css”].swing:hover
{
-webkit-animation: swing 1s ease;
animation: swing 1s ease;
-webkit-animation-iteration-count: 1;
animation-iteration-count: 1;
}[/code]
8. Inset border
One of the hottest button styles right now is the ghost button; a button with no background and a heavy border. We can of course add a border to an element simply, but that will change the element’s position. We could fix that problem using box sizing, but a far simpler solution is the transition in a border using an inset box shadow.
Give your div the class “border” and add the following CSS to your styles:
[code lang=”css”].border:hover
{
box-shadow: inset 0 0 0 25px #53a7ea;
}[/code]
Don’t forget to share your doubts in the comment box and also share this post on social media and with your friends because “You share, I share, let’s make the world aware”.
You may want to take a look at the following related posts:
- Easiest Drop Down Menu Using Jquery and CSS3
- Awesome Input Type Text Focus Effects Using CSS
- Add Google Maps on Your Website Tutorial
- Creative HTML Form Example
Also for more awesome tutorials, please don’t forget to like our facebook page Meul Tech .
Bonus: We also give training on following topics:
1. Web Designing Training in Mumbai.
2. Bootstrap Training Course in Mumbai.
4. UI / UX Training.