How to Create a Transparent Triangle with a Border Using CSS

In this post, we will explore how to create a triangle with a transparent background using CSS. This seemingly complex design element can be achieved by understanding and manipulating CSS properties and pseudo-elements. We will use properties such as width, height, border, position, and transform, along with ::before and ::after pseudo-elements to shape and position our triangle. The transform property rotates these pseudo-elements to form the triangle, while the border property outlines it.

By manipulating these properties and pseudo-elements, we can create a triangle with a transparent background and a solid border. This technique is a testament to the power and flexibility of CSS, and it’s a great example of how we can create complex shapes and design elements with pure CSS.

Step By Step Guidelines

Here’s a step-by-step guide on how to create a transparent triangle border using pure CSS.

Html:

The first step is to create a div element in HTML. This div will be transformed into a triangle using CSS.

<div class = 'triangle'></div>
HTML

CSS Border Triangle

The next step is to style the div using CSS. The width and height of the div are set to a specific size, and the border-left is given a solid color. The position is set to relative to allow for the positioning of pseudo-elements.

.triangle {
  width: 150px;
  height: 150px;
  border-left: 5px solid green;
  position: relative;
  margin: 50px;
}
CSS

Output:

Triangle Border

Create the triangle shape: The triangle shape is created using the ::before and ::after pseudo-elements. These pseudo-elements are used to insert content before and after the content of the div. The content property is set to an empty string, and the position is set to absolute. The height is set to a specific size, and the background is given a solid color.

.triangle::after, .triangle::before {
  content: "";
  position: absolute;
  height: 5px;
  background: green;
  transform-origin: 0 0;
}
CSS

Related Post

Position the triangle: The final step is to position the triangle using the transform property. The transform property applies a 2D or 3D transformation to an element. In this case, the rotate function is used to rotate the pseudo-elements to create the triangle shape.

.triangle::before {
  top: 0;
  left: 0;
  right: 3px;
  transform: rotate(30deg);
}
.triangle::after {
  bottom: 0;
  right: 7px;
  left: -2.5px;
  transform: rotate(-30deg);
}
CSS

CSS Triangle with Shadow

Adding a box-shadow to a CSS triangle can be a bit tricky because the box-shadow property applies to the box that contains the triangle, not the triangle itself. However, there is a workaround using filter property and drop-shadow.

.triangle {
            width: 150px;
            height: 150px;
            border-left: 5px solid green;
            position: relative;
            margin: 50px;
            filter: drop-shadow(0 0 10px rgba(255,0,0,0.5));
        }
CSS

In this code, the filter: drop-shadow(0 0 10px rgba(0,0,0,0.5)); line adds a shadow to the triangle. The drop-shadow function works similarly to box-shadow, but it applies to the shape of the element, including pseudo-elements, rather than the box that contains the element. You can adjust the parameters of the drop-shadow function to change the offset, blur radius, and color of the shadow.

If you’re interested in downloading the source code, just click the button 🔘 below 👇. It’s as simple as that!


Conclusion

Creating a triangle with a transparent background and a solid border using pure CSS might seem like a daunting task, but with a clear understanding of CSS borders and pseudo-elements, it becomes a manageable and even enjoyable task. This technique opens up a world of possibilities for creating complex shapes and designs using pure CSS. So go ahead, experiment with different shapes, colors, and sizes, and see what unique designs you can come up with!

Leave a Comment