DEV Community

Cover image for Creating Essential Geometric Shapes Using CSS Only
Satyam Anand
Satyam Anand

Posted on

Creating Essential Geometric Shapes Using CSS Only

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;
}
Enter fullscreen mode Exit fullscreen mode

If you want to create a rectangle, just adjust the width and height accordingly:

.rectangle {
  width: 150px;
  height: 100px;
  background-color: #e74c3c;
}
Enter fullscreen mode Exit fullscreen mode

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%;
}
Enter fullscreen mode Exit fullscreen mode

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;
}
Enter fullscreen mode Exit fullscreen mode

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%;
}
Enter fullscreen mode Exit fullscreen mode

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%);
}
Enter fullscreen mode Exit fullscreen mode

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;
}
Enter fullscreen mode Exit fullscreen mode

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);
}
Enter fullscreen mode Exit fullscreen mode

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)