Who doesnβt love subtle animations? Theyβre a nice way to add a bit of complexity to your website. If done well they can look gorgeous and professional at the same time.
In this tutorial, weβre going to show you how to add subtle, animated shapes using Divi and its built-in options. No extra CSS needed. Once you get the approach and practice with the examples below, the sky becomes the limit. You can create all kinds of shapes and apply them on your website with little effort.
Result
Before we dive into the tutorial, letβs take a quick look at the four different animated shapes weβll recreate.
Animated Shape #1

Animated Shape #2

Animated Shape #3

Animated Shape #4

How to Add Subtle & Animated Shapes to Your Website with Divi
Subscribe To Our Youtube Channel
Approach
- Weβre placing the shapes in new rows of which weβll remove all the padding (to limit the extra space thatβs being created)
- Depending on which side you want your animated shapes to appear, youβll have to modify the row alignment
- A left or right row alignment makes sure these animated shapes remain on that side of the screen no matter what screen size
- Weβre using empty Text Modules to create the shapes
- Using an empty Text Module allows you to benefit from all the other Divi built-in options
- Custom margin and padding play an important role in making the objects fit
- Weβre using positive and negative margins to reduce the space that was created by the row and modules and kind of make them overlap with two different sections
- The padding, on the other hand, is used to create the kind of shape you want
- The Background, Border and Box Shadow subcategories allow you to design the type of shape you want
- Weβre adding linear animation loops which will keep the animation going on at a slow pace
- You can apply the same method while using your own shapes within Image Modules
Create New Page with Design Conference Home Page
Create New Page
Once you read the general approach and keep it in mind, go ahead and create a new page on your WordPress dashboard.

Switch Over to Visual Builder
After adding a title, switch over to Visual Builder right away.

Upload Design Conference Home Page
In this tutorial, weβll focus on creating the animated objects. And what better way is there to do this than by using a premade layout? For this tutorial, weβre going to choose the homepage of the Design Conference Layout Pack which you can find in your premade layouts. But of course, you can apply these animated shapes to any page or layout.

Add Animated Shape #1
Add New Row
Row Position
Now, to add the first animated shape, add a new row to your hero section:

Column Structure
Weβre using two columns for this row.

Row Alignment
Then, go to the Design tab and select left Row Alignment because we want the animated shape to appear on the left side of the screen.

Spacing
Next, open the Spacing subcategory and remove all of the default padding this row contains by adding β0pxβ to each one of the options.

Add Empty Text Module to Column 1
Add Text Module & Leave Content Box Empty
Time to start adding the shape! Add a Text Module to column 1. Weβre not going to share any text or copy within this Text Module, weβre rather using it for its Divi built-in options. So, make sure you leave the content box empty.

Background Color
Then, add βrgba(255,255,255,0.14)β as the background color of this Text Module.

Spacing
Weβre going to do two four things within the Spacing subcategory; making a shape with the custom padding, getting rid of the space thatβs been created by the row and module, pushing the shape more to the left and making the Text Module overlap the second row:
- Top Margin: -100px
- Right Margin: 100px
- Bottom Margin: -500px
- Left: -100px
- Top Padding: 200px
- Bottom Padding: 400px

Border
To create a circle of the rectangle, open the Border subcategory and apply β500pxβ to each one of the corners.

Animation
Lastly, add your loop animation by opening the Animation subcategory and applying the following settings:
- Animation Style: Roll
- Animation Repeat: Loop
- Animation Direction: Center
- Animation Duration: 20000ms
- Animation Intensity: 500%
- Animation Start Opacity: 100%
- Animation Speed Curve: Linear

Clone Row
Row Position
Weβre going to save ourselves some time by cloning this entire row to create the shape in the bottom right corner of the hero section.

Change Row Alignment
The first thing weβll need to change about this row is the Row Alignment. Instead of left, use right.

Place Empty Text Module in Column #2
Evidentally, weβll also need to place the Text Module in the second Column instead of the first.

Change Empty Text Module Spacing
Weβre going to change the spacing of this Text Module as well (push it to the right instead of left):
- Right Margin: -50px
- Bottom Margin: -350px
- Left: 50px
- Top Padding: 250px
- Bottom Padding: 250px

Add Animated Shape #2
Create Animated Shape #1
To create the second animated shape, simply go through the process of creating the animated shape #1 first. Weβll need to make few modifications only.
Modify BothΒ Empty Text Modules
Border
The first thing youβll need to modify is the rounded corners of the Border subcategory. Use β20pxβ instead of β500pxβ for each one of the corners.

Animation
Because of the shape, it will roll a lot quicker than the circle shape does. Thatβs why weβre going to increase the Animation Duration to β100000msβ.

Add Animated Shape #3
Add New Row
Row Position
To create animated shape #3, scroll down your page until you pass the βAbout Divi 100 Designβ section. Add your row as the last row of that section:

Column Structure
Select the following column structure for your row:

Row Alignment
Again, weβre making sure the Row Alignment matches the side weβre adding the animated shapeΒ to. In this case, thatβs the left side.

Spacing
Weβre also removing all of the default padding of this row by adding β0pxβ to each one of the options.Β Β 
Visibility
The two first animated shapes work great on tablet and phone as well. The other two, however, are too invasive for smaller screen sizes. Thatβs why weβre going to disable the entire row on tablet and phone within the Visibility subcategory.

Add Empty Text Module to Column 1
Add Text Module & Leave Content Box Empty
Again, add an empty Text Module to the first column of this row.

Spacing
Weβre going to make sure thereβs no additional space being created by the new row and Text Module by playing around with the custom margin. Open the Spacing subcategory and apply the following values:
- Top Margin: -150px
- Right Margin: 25%
- Bottom Margin: -50px
- Left Margin: -25%
- Top Padding: 250px

Border
Next, weβll add a border to this shape by going to the Border subcategory and applying the following settings:
- Border Width: 5px
- Border Color:Β #4646c4

Box Shadow
Depending on your preferences, you can also add some depth to this object by selecting the first option within the Box Shadow subcategory without making any modifications to the default settings.

Animation
Lastly, weβll apply the loop animation to this object by opening the Animation subcategory and applying the following settings to it:
- Animation Style: Roll
- Animation Repeat: Loop
- Animation Direction: Center
- Animation Duration: 25000ms
- Animation Intensity: 100%
- Animation Starting Opacity: 50%
- Animation Speed Curve: Linear

Clone Empty Text Module & Keep it in Column 1
Change Spacing
Clone the first empty Text Module and leave it in the first column. Weβll make some modifications to it, starting with the Spacing. Open the Text Module settings, go to the Design tab, open the Spacing subcategory and apply the following custom margin and padding to it:
- Top Margin: -50%
- Right Margin: 25%
- Bottom Margin: -200px
- Left Margin: -25%
- Top Padding: 250px

Change Border Color
Weβll also change the border color to β#aaaaaaβ.

Change Animation
The last change weβll need to make is adding an animation delay to this shape by going to the Animation subcategory and adding β1000msβ to the Animation Delay option.

Add Animated Shape #4
Add New Row
Row Position
Weβve reached the final animated shape of this tutorial which weβll place right before the βOur Sponsorsβ Text Module of our page:Β 
Column Structure
Weβre, again, choosing for a row with four columns:
Row Alignment
These animated shapes will appear on the right side of our page so naturally, weβre going to enable right Row Alignment.Β 
Spacing
Weβre going to reduce the space this rowΒ takes up by adding β0pxβ to all of the custom padding options within the Spacing subcategory.Β 
Visibility
And again, we want these animated shapes to appear on tablet only so weβll disable them on tablet and phone in the Visibility subcategory of the Advanced tab.

Add Empty Text Module to Column 4
Add Text Module & Leave Content Box Empty
Letβs start creating the animated shape. Add an empty Text Module to column 4.

Gradient Background
Weβre going to use a gradient background for this Text Module containing the following two colors and the default gradient background settings:
- First Color:Β #d002ba
- Second Color:Β #166cc2

Spacing
The spacing of this Text Module will create a shape, will push the shape to the right and will make it overlap with the previous section. Open the Spacing subcategory and enter the following values:
- Top Margin: -80%
- Right Margin: -25%
- Bottom Margin: -120px
- Left Margin: 25%
- Top Padding: 250px

Border
Weβll also use some rounded corners for this animated shape by going to the Border subcategory and adding β20pxβ to each one of the corners.

Box Shadow
To create more depth, weβll enable the first box shadow option in the Box Shadow subcategory. Weβre using the default values but feel free to modify these to your needs.

Animation
And last but not least, weβll also add the loop animation in the Animation subcategory using the following settings:
- Animation Style: Roll
- Animation Repeat: Loop
- Animation Direction: Center
- Animation Duration: 25000ms
- Animation Intensity: 100%
- Animation Starting Opacity: 70%
- Animation Speed Curve: Linear

Clone Empty Text Module & Keep it in Column 4
Change Spacing
Weβre going to save ourselves some time, clone this empty Text Module and make two small modifications to it. Open the spacing subcategory and change the top margin to β-50%β.

Change Animation
And, as shown in animated shape #3
as well, weβre going to add an animation delay of β1000msβ. And voilΓ , there you have your stunning animated shapes!
Result
Now that weβve gone through all of the examples, letβs take a final look at the result.
Animated Shape #1

Animated Shape #2

Animated Shape #3

Animated Shape #4

Final Thoughts
In this post, weβve shown you how to add subtle, animated shapes to your website using Diviβs built-in options only. You can apply this method to any other shapes youβd like to add to your website. They help you add a bit of extra interaction and style to your website. If you have any questions or suggestions, make sure you leave a comment in the comment section below!

Thank you Donjete!
One question, I can not put the duration to more then 2000ms… Thoughts?
Thanks,
Hi Johan, you’re welcome! I add the duration manually to the value box, it ignores the max value that is written there.
Thanks! These are really great!
Giving it a go today on #1 and my rectangle is not a circle, but oval when using border 500px. Thoughts?
The bottom padding of 400px should be 200px.
Wow, really rad trick! Love it, thanks for sharing!
My pleasure!
Really smart, thanks for that π
You’re welcome, Felix! π
“Next, open the Spacing subcategory and remove all of the DEFAULT PADDING in this row contains by adding β0pxβ to each one of the options.”
A more complete discussion about this concept would be extremely helpful in build sites. I assume there is a similar occurrence with margin?
Another good topic would be how and why to know when to create margins in px or using %. How do we begin to think about this?
“And again, we want these animated shapes to appear on tablet only so weβll disable them on tablet and phone in the Visibility subcategory of the Advanced tab.” WHAT?
Sorry to be such a pill but it seems this is not correct. Just trying to learn.
I meant on desktop only, my bad! And thanks for the topic suggestion, I’ll keep it in mind π
But to answer your question; it only occurs with top and bottom padding.
Donjete, thank you for doing and sharing this great tut, I love it. Your tuts are also my favourite too!
π
Ah, nice to hear! Thank you Liz π
I dig it.
Haha thanks Britt!
i tried to increase my animation duration to 100000ms and it would not let me, kept snapping back to 2000ms. what am i doing incorrect?
If you use the Visual Builder it allows you to change the duration. It doesn’t work in the Divi Builder for me.
I type the value, it ignores the predefined maximum. If it snaps back, try dragging the option to the max (sometimes these max values change after adjusting it.)
Same here!
Animation Intensity keeps snapping back to 100%
Hi,
That’s very cool.. a very intelligent use of the Animation module.. Thanks there for staying creative !
You’re welcome, Sreeni & thanks! π
Hi Donjete, your tuts are always my favorite! You use exact the style that I love in webdesign.
Would you think that something like animated shape #4 would work together with the Divi 10 year anniversary layout? If i were to make something like the animated gradient squares instead of the .png images of the triangles that come with the theme?
Thank you so much, keep up your GREAT tuts!
Hi Michal, thank you for these kind words π
And yes, you can apply the same animation settings to an Image Module instead!
Excellent! Two questions.
1) When I built these examples, they ‘snap’ at the end of the animation back to the starting position. What setting would make the animation smooth the entire way?
2) The ‘roll’ is always CCW, is there a way to make it rotate CW?
Thanks for all your amazing work. Cheers,
Hi Emilion, I see you’ve already solved your first question. Unfortunately, I’m not sure how to make it rotate CW.
1) was caused by intensity lower than 100%. To achieve the same gentleness I made loop duration 120000.
Great! Thank you.
I have a question : when I try to enter 25000ms in animation duration it return to max 2000ms. Where is the problem?
Shame on me! I’ve never ask anything hum…? π
You’re welcome Philippe! I noticed there’s a connection between the intensity and duration. If you want to increase the intensity but keep the duration slower, you can increase the duration as well. These were the values that worked for me but you can obviously play around with them as much as you like.
I dont think you answered the question here. Others highlight the same problem and I also have it.
The duration can not be set above 2000ms.
Is this a version issue? What version of Divi did you do the tutorial with?
I am using the latest as of 18th April and it wont set times above 2000ms.
I’ve tested this on the latest Divi version and it works. You’ll have to type in the value manually. If it snaps back, the predefined max value will normally have been changed to the value you’ve entered (so you can just drag it to the max).
Thank you for the reply but there is something different between your set up and ones like my own.
I am still limited to 2000ms. I have tried to input this manually but it is still limited. Normally changing this on other parameters changes the range but not on this parameter.
I have tried on several browsers and still the same limitation.
I will keep trying other factors but not a big issue for me at the moment.
Once again thank you very much, your tutorials are always interesting and give us inspiration.
I found out that you can change the time in the Visual Builder but not in the normal Divi Builder. Just another good reason to use the Visual Builder but possibly a bug in system.
Ah might be it, every tutorial I create is done with the Visual Builder.
Like it!
Thank you, David!
You read my mind! I saw a fabulous site on Awwwards this week that had similar animation effects. Way to stay cutting edge, ET!
Looking forward to seeing some of these put into practice!
One word :
Smart !
Thanks!