When it comes to web design, CSS isn’t just for styling text or creating layouts—it can also be used to create visually engaging shapes!
Whether you're building icons, UI elements, or just having fun experimenting, CSS offers a wide range of possibilities for creating shapes purely with code. In this post, we'll walk through how to create some common shapes—like circles, triangles, and squares—using only CSS.
1. Squares & Rectangles
Squares and rectangles are the simplest shapes to create in CSS. All you need to do is define a width
, height
, and a background color.
.square {
width: 100px;
height: 100px;
background-color: #3498db;
}
If you want to create a rectangle, just adjust the width
and height
accordingly:
.rectangle {
width: 150px;
height: 100px;
background-color: #e74c3c;
}
2. Circles
To make a perfect circle, we start with a square and use the border-radius
property to round the corners. When the width and height are equal, setting border-radius
to 50%
will create a circle.
.circle {
width: 100px;
height: 100px;
background-color: #2ecc71;
border-radius: 50%;
}
3. Triangles
Creating triangles in CSS is a bit of a trick, but it's simple once you understand the basics. You can create a triangle using borders, where the actual shape is made by hiding three of the borders and manipulating the fourth one.
.triangle {
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 100px solid #f39c12;
}
Here, we set width
and height
to 0
to collapse the element, and use border-left
and border-right
to create transparency. The color and size of the triangle come from the border-bottom
.
4. Ellipses
An ellipse is similar to a circle but stretched either horizontally or vertically. You can achieve this effect by adjusting the border-radius
for both axes.
.ellipse {
width: 150px;
height: 100px;
background-color: #9b59b6;
border-radius: 50%;
}
This creates a horizontally elongated ellipse. To create a vertically elongated one, swap the width
and height
values.
5. Pentagons and Other Polygons
Using the clip-path
property, you can create more complex shapes like pentagons or even polygons with as many sides as you like. Here’s an example of a pentagon:
.pentagon {
width: 100px;
height: 100px;
background-color: #f1c40f;
clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%);
}
The clip-path
property allows you to specify a shape by defining the coordinates of its vertices. You can experiment with this property to create any polygonal shape.
6. Hearts
You can also create a heart shape using CSS, combining multiple properties like border-radius
and transform
.
.heart {
width: 100px;
height: 100px;
background-color: #e74c3c;
position: relative;
transform: rotate(45deg);
}
.heart::before,
.heart::after {
content: '';
position: absolute;
width: 100px;
height: 100px;
background-color: #e74c3c;
border-radius: 50%;
}
.heart::before {
top: -50px;
left: 0;
}
.heart::after {
top: 0;
left: 50px;
}
Here, we use the ::before
and ::after
pseudo-elements to create the top curves of the heart, and then rotate the whole element to get the final shape.
7. Using transform
for 3D Shapes
CSS transforms can also be used to create 3D effects. For example, using rotateX
, rotateY
, or rotateZ
, we can simulate a cube:
.cube {
width: 100px;
height: 100px;
background-color: #1abc9c;
transform: rotateX(45deg) rotateY(45deg);
}
Conclusion
As you can see, CSS can be a powerful tool for creating shapes without needing any images or SVGs. Whether you're designing simple UI elements or exploring more creative concepts, CSS gives you the flexibility to manipulate shapes with just a few lines of code.
If you’re looking to create more advanced shapes, CSS also supports gradients, animations, and transitions to give your shapes dynamic, interactive effects.
The key is experimentation! So, next time you're building a UI, try out these shapes to add some visual flair to your website—all with pure CSS.
Happy Coding!
🙋 Follow me @uiuxsatyam for more cool informational content on Web Development & FrontEnd.
If you are into UIUX Design , follow me on other social platforms for more amazing posts on UIUX Design, Figma, & Tech.
Linkedin : https://www.linkedin.com/in/uiuxsatyam
Twitter : https://twitter.com/uiuxsatyam
Threads : https://www.threads.net/@satyam.satx
Thanks for reading the post 🙌
Share with your developer friends, if found this useful. ↗️
Top comments (0)