7+ CSS Arrow Box Examples

This post contains a total of 7+ CSS Arrow Box Examples with Source Code. All these Arrow Boxes are made using CSS.

You can use the source code of these examples with credits to the original owner.

Related Posts

CSS Arrow Box Examples

1. Arrow box

Made by Daniel Sitek. Source

Arrow box
<!DOCTYPE html>
<html lang="en" >
<head>
  <title></title>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">
<style>
body {
  font-family: "Open Sans", sans-serif;
  line-height: 1.5;
  font-size: 1.2em;
  background: #212121;
}
.arrowbox {
  display: block;
  width: 500px;
  margin: 200px auto 0 auto;
  padding: 10px 20px;
  background: #fff;
  box-sizing: border-box;
  position: relative;
}
.arrowbox:before, .arrowbox:after {
  position: absolute;
  content: "";
}

.arrow-inside:before {
  top: -30px;
  left: 0;
  width: 50%;
  height: 1px;
  border: 30px solid transparent;
  border-width: 0 30px 30px 0;
  border-bottom-color: #fff;
  box-sizing: border-box;
}
.arrow-inside:after {
  top: -30px;
  right: 0;
  width: 50%;
  height: 1px;
  border: 30px solid transparent;
  border-width: 0 0 30px 30px;
  border-bottom-color: #fff;
  box-sizing: border-box;
}

.arrow-bottom:after {
  bottom: -30px;
  left: 50%;
  width: 1px;
  height: 1px;
  margin-left: -40px;
  border: 30px solid transparent;
  border-width: 30px 40px 0px 40px;
  border-top-color: #fff;
  box-sizing: border-box;
}


.arrow-bordered {
  border: 5px solid #23bdc2 ;
}
.arrow-bordered:before {
  bottom: -30px;
  left: 50%;
  width: 1px;
  height: 1px;
  margin-left: -40px;
  border: 30px solid transparent;
  border-width: 30px 40px 0px 40px;
  border-top-color: #23bdc2 ;
  box-sizing: border-box;
}
.arrow-bordered:after {
  bottom: -30px;
  left: 50%;
  width: 1px;
  height: 1px;
  margin-left: -40px;
  margin-bottom: 7px;
  border: 30px solid transparent;
  border-width: 30px 40px 0px 40px;
  border-top-color: #fff;
  box-sizing: border-box;
}
</style>
</head>
<body>
  <div class="arrowbox arrow-bottom" id="box">
  <p>Text Here</p>
</div>
</body>
</html>

2. Css-arrow mixin for sass/scss

Made by Erin Keeffe. Source

Css-arrow mixin for sass/scss
<!DOCTYPE html>
<html lang="en" >
<head>
  <title></title>
<style>
.wrap {
  margin: 10% auto;
  width: 480px;
  height: 100%;
}

.arrow {
  position: relative;
  float: left;
  float: left;
  width: 100px;
  height: 30px;
  padding: 10px 5px 0;
  margin: 20px;
  background: black;
  -moz-border-radius: 3px;
  -webkit-border-radius: 3px;
  border-radius: 3px;
  font-family: menlo, monaco, "andale mono", "courier new", fixed;
  font-size: 16px;
  color: white;
  text-align: center;
}
.arrow.default:after, .arrow.default:before {
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
  border: solid rgba(255, 255, 255, 0);
}
.arrow.default:after {
  border-color: rgba(255, 255, 255, 0);
  border-width: 9px;
  bottom: -18px;
  border-top-color: black;
  left: 50%;
  margin-left: -9px;
}
.arrow.default:before {
  border-color: rgba(255, 255, 255, 0);
  border-width: 10px;
  bottom: -20px;
  border-top-color: none;
  left: 50%;
  margin-left: -10px;
}
.arrow.small {
  background: #afb4d7;
}
.arrow.small:after, .arrow.small:before {
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
  border: solid rgba(255, 255, 255, 0);
}
.arrow.small:after {
  border-color: rgba(255, 255, 255, 0);
  border-width: 5px;
  left: -10px;
  border-right-color: #afb4d7;
  top: 50%;
  margin-top: -5px;
}
.arrow.small:before {
  border-color: rgba(255, 255, 255, 0);
  border-width: 6px;
  left: -12px;
  border-right-color: none;
  top: 50%;
  margin-top: -6px;
}
.arrow.med {
  background: #959cca;
}
.arrow.med:after, .arrow.med:before {
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
  border: solid rgba(255, 255, 255, 0);
}
.arrow.med:after {
  border-color: rgba(255, 255, 255, 0);
  border-width: 7px;
  top: -14px;
  border-bottom-color: #959cca;
  left: 0;
  margin-left: 11px;
}
.arrow.med:before {
  border-color: rgba(255, 255, 255, 0);
  border-width: 8px;
  top: -16px;
  border-bottom-color: none;
  left: 0;
  margin-left: 10px;
}
.arrow.large {
  background: #7b83bd;
}
.arrow.large:after, .arrow.large:before {
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
  border: solid rgba(255, 255, 255, 0);
}
.arrow.large:after {
  border-color: rgba(255, 255, 255, 0);
  border-width: 13px;
  bottom: -26px;
  border-top-color: #7b83bd;
  right: 0;
  margin-right: 26px;
}
.arrow.large:before {
  border-color: rgba(255, 255, 255, 0);
  border-width: 14px;
  bottom: -28px;
  border-top-color: none;
  right: 0;
  margin-right: 25px;
}
.arrow.border {
  color: #6d9e28;
  width: 98px;
  height: 28px;
  border: 1px solid #97d045;
  background: #d6edb6;
}
.arrow.border:after, .arrow.border:before {
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
  border: solid rgba(255, 255, 255, 0);
}
.arrow.border:after {
  border-color: rgba(255, 255, 255, 0);
  border-width: 17px;
  top: -34px;
  border-bottom-color: #d6edb6;
  left: 50%;
  margin-left: -17px;
}
.arrow.border:before {
  border-color: rgba(255, 255, 255, 0);
  border-width: 18px;
  top: -36px;
  border-bottom-color: #97d045;
  left: 50%;
  margin-left: -18px;
}
.arrow.flag {
  color: #6d9e28;
  -moz-border-radius: 3px 0 0 3px;
  -webkit-border-radius: 3px;
  border-radius: 3px 0 0 3px;
  background: #cce8a4;
  -moz-box-shadow: 0 1px 0 #afb4d7;
  -webkit-box-shadow: 0 1px 0 #afb4d7;
  box-shadow: 0 1px 0 #afb4d7;
  -moz-border-radius: 2px;
  -webkit-border-radius: 2px;
  border-radius: 2px;
}
.arrow.flag:after, .arrow.flag:before {
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
  border: solid rgba(255, 255, 255, 0);
}
.arrow.flag:after {
  border-color: rgba(255, 255, 255, 0);
  border-width: 19px;
  right: -38px;
  border-left-color: #cce8a4;
  top: 50%;
  margin-top: -19px;
}
.arrow.flag:before {
  border-color: rgba(255, 255, 255, 0);
  border-width: 19px;
  right: -38px;
  border-left-color: #959cca;
  top: 50%;
  margin-top: -18px;
}
</style>
</head>
<body>
  <div class="wrap">
  <div class="arrow default">default</div>
  <div class="arrow small">small</div>
  <div class="arrow med">med</div>
  <div class="arrow large">large</div>
  <div class="arrow border">border</div>
  <div class="arrow flag">flag</div>
</div>
</body>
</html>

3. Arrow Box with CSS (12 positions)

Made by Yiwei Ma. Source

Arrow Box with CSS (12 positions)
<!DOCTYPE html>
<html lang="en" >
<head>
  <title></title>
<style>
@import url("https://fonts.googleapis.com/css?family=OpenSans");
.box {
  width: 150px;
  height: 100px;
  background-color: #3498db;
  position: relative;
  border-radius: 4px;
}
.box:after {
  content: "";
  display: block;
  border-width: 10px 10px 0;
  border-style: solid;
  border-color: #3498db transparent transparent;
  margin-left: -10px;
  position: absolute;
  bottom: -10px;
  left: 50%;
}
.box.arrow-bottom-left:after,
.box.arrow-bottom-right:after,
.box.arrow-top-left:after,
.box.arrow-top-right:after,
.box.arrow-left-top:after,
.box.arrow-left-bottom:after,
.box.arrow-right-top:after,
.box.arrow-right-bottom:after {
  border-width: 5px;
  margin: 0;
}
.box.arrow-bottom-left:after,
.box.arrow-bottom-right:after {
  border-left-color: #3498db;
}
.box.arrow-bottom-left:after {
  left: 0;
  right: auto;
}
.box.arrow-bottom-right:after {
  border-left-color: transparent;
  border-right-color: #3498db;
  left: auto;
  right: 0;
}
.box.arrow-top-center:after,
.box.arrow-top-left:after,
.box.arrow-top-right:after {
  border-top-color: transparent;
  border-bottom-color: #3498db;
  top: -10px;
  bottom: auto;
}
.box.arrow-top-center:after {
  border-top-width: 0;
  border-bottom-width: 10px;
}
.box.arrow-top-left:after,
.box.arrow-top-right:after {
  border-width: 5px;
  border-left-color: #3498db;
}
.box.arrow-top-left:after {
  left: 0;
  right: auto;
}
.box.arrow-top-right:after {
  border-left-color: transparent;
  border-right-color: #3498db;
  left: auto;
  right: 0;
}
.box.arrow-left-center:after,
.box.arrow-left-top:after,
.box.arrow-left-bottom:after {
  border-width: 10px;
  border-left-color: transparent;
  border-left-width: 0;
  border-top-color: transparent;
  border-right-color: #3498db;
  margin: -10px 0 0;
  left: -10px;
  right: auto;
  top: 50%;
  bottom: auto;
}
.box.arrow-left-top:after,
.box.arrow-left-bottom:after {
  border-width: 5px;
  margin: 0;
}
.box.arrow-left-top:after {
  border-top-color: #3498db;
  top: 0;
}
.box.arrow-left-bottom:after {
  border-bottom-color: #3498db;
  top: auto;
  bottom: 0;
}
.box.arrow-right-center:after,
.box.arrow-right-top:after,
.box.arrow-right-bottom:after {
  border-width: 10px;
  border-right-width: 0;
  border-top-color: transparent;
  border-left-color: #3498db;
  margin: -10px 0 0;
  left: auto;
  right: -10px;
  top: 50%;
  bottom: auto;
}
.box.arrow-right-top:after,
.box.arrow-right-bottom:after {
  border-width: 5px;
  margin: 0;
}
.box.arrow-right-top:after {
  border-top-color: #3498db;
  top: 0;
}
.box.arrow-right-bottom:after {
  border-bottom-color: #3498db;
  top: auto;
  bottom: 0;
}
.box.arrow-bottom-left,
.box.arrow-left-bottom {
  border-bottom-left-radius: 0;
}
.box.arrow-bottom-right,
.box.arrow-right-bottom {
  border-bottom-right-radius: 0;
}
.box.arrow-top-left,
.box.arrow-left-top {
  border-top-left-radius: 0;
}
.box.arrow-top-right,
.box.arrow-right-top {
  border-top-right-radius: 0;
}
html,
body {
  background: #f5f5f5;
  font-size: 100%;
  font-family: 'Open Sans', sans-serif;
  width: 100%;
}
h3 {
  position: relative;
  text-align: center;
  text-transform: uppercase;
  width: 240px;
  display: block;
  margin: 20px auto;
}
h3:before,
h3:after {
  content: "";
  display: block;
  height: 1px;
  width: 50px;
  background-color: #ddd;
  position: absolute;
  top: 50%;
  left: -60px;
}
h3:after {
  right: -60px;
  left: auto;
}
.box {
  margin: 20px 10px;
  float: left;
}
.box.blue {
  background-color: #3498db;
}
.box.blue.arrow-bottom-center:after,
.box.blue.arrow-bottom-left:after,
.box.blue.arrow-bottom-right:after {
  border-top-color: #3498db;
}
.box.blue.arrow-bottom-left:after {
  border-left-color: #3498db;
}
.box.blue.arrow-bottom-right:after {
  border-right-color: #3498db;
}
.box.blue.arrow-top-center:after,
.box.blue.arrow-top-left:after,
.box.blue.arrow-top-right:after {
  border-bottom-color: #3498db;
}
.box.blue.arrow-top-left:after {
  border-left-color: #3498db;
}
.box.blue.arrow-top-right:after {
  border-right-color: #3498db;
}
.box.blue.arrow-left-center:after,
.box.blue.arrow-left-top:after,
.box.blue.arrow-left-bottom:after {
  border-right-color: #3498db;
}
.box.blue.arrow-left-top:after {
  border-top-color: #3498db;
}
.box.blue.arrow-left-bottom:after {
  border-bottom-color: #3498db;
}
.box.blue.arrow-right-center:after,
.box.blue.arrow-right-top:after,
.box.blue.arrow-right-bottom:after {
  border-left-color: #3498db;
}
.box.blue.arrow-right-top:after {
  border-top-color: #3498db;
}
.box.blue.arrow-right-bottom:after {
  border-bottom-color: #3498db;
}
.box.green {
  background-color: #1abc9c;
}
.box.green.arrow-bottom-center:after,
.box.green.arrow-bottom-left:after,
.box.green.arrow-bottom-right:after {
  border-top-color: #1abc9c;
}
.box.green.arrow-bottom-left:after {
  border-left-color: #1abc9c;
}
.box.green.arrow-bottom-right:after {
  border-right-color: #1abc9c;
}
.box.green.arrow-top-center:after,
.box.green.arrow-top-left:after,
.box.green.arrow-top-right:after {
  border-bottom-color: #1abc9c;
}
.box.green.arrow-top-left:after {
  border-left-color: #1abc9c;
}
.box.green.arrow-top-right:after {
  border-right-color: #1abc9c;
}
.box.green.arrow-left-center:after,
.box.green.arrow-left-top:after,
.box.green.arrow-left-bottom:after {
  border-right-color: #1abc9c;
}
.box.green.arrow-left-top:after {
  border-top-color: #1abc9c;
}
.box.green.arrow-left-bottom:after {
  border-bottom-color: #1abc9c;
}
.box.green.arrow-right-center:after,
.box.green.arrow-right-top:after,
.box.green.arrow-right-bottom:after {
  border-left-color: #1abc9c;
}
.box.green.arrow-right-top:after {
  border-top-color: #1abc9c;
}
.box.green.arrow-right-bottom:after {
  border-bottom-color: #1abc9c;
}
.box.orange {
  background-color: #e67e22;
}
.box.orange.arrow-bottom-center:after,
.box.orange.arrow-bottom-left:after,
.box.orange.arrow-bottom-right:after {
  border-top-color: #e67e22;
}
.box.orange.arrow-bottom-left:after {
  border-left-color: #e67e22;
}
.box.orange.arrow-bottom-right:after {
  border-right-color: #e67e22;
}
.box.orange.arrow-top-center:after,
.box.orange.arrow-top-left:after,
.box.orange.arrow-top-right:after {
  border-bottom-color: #e67e22;
}
.box.orange.arrow-top-left:after {
  border-left-color: #e67e22;
}
.box.orange.arrow-top-right:after {
  border-right-color: #e67e22;
}
.box.orange.arrow-left-center:after,
.box.orange.arrow-left-top:after,
.box.orange.arrow-left-bottom:after {
  border-right-color: #e67e22;
}
.box.orange.arrow-left-top:after {
  border-top-color: #e67e22;
}
.box.orange.arrow-left-bottom:after {
  border-bottom-color: #e67e22;
}
.box.orange.arrow-right-center:after,
.box.orange.arrow-right-top:after,
.box.orange.arrow-right-bottom:after {
  border-left-color: #e67e22;
}
.box.orange.arrow-right-top:after {
  border-top-color: #e67e22;
}
.box.orange.arrow-right-bottom:after {
  border-bottom-color: #e67e22;
}
.box.red {
  background-color: #e74c3c;
}
.box.red.arrow-bottom-center:after,
.box.red.arrow-bottom-left:after,
.box.red.arrow-bottom-right:after {
  border-top-color: #e74c3c;
}
.box.red.arrow-bottom-left:after {
  border-left-color: #e74c3c;
}
.box.red.arrow-bottom-right:after {
  border-right-color: #e74c3c;
}
.box.red.arrow-top-center:after,
.box.red.arrow-top-left:after,
.box.red.arrow-top-right:after {
  border-bottom-color: #e74c3c;
}
.box.red.arrow-top-left:after {
  border-left-color: #e74c3c;
}
.box.red.arrow-top-right:after {
  border-right-color: #e74c3c;
}
.box.red.arrow-left-center:after,
.box.red.arrow-left-top:after,
.box.red.arrow-left-bottom:after {
  border-right-color: #e74c3c;
}
.box.red.arrow-left-top:after {
  border-top-color: #e74c3c;
}
.box.red.arrow-left-bottom:after {
  border-bottom-color: #e74c3c;
}
.box.red.arrow-right-center:after,
.box.red.arrow-right-top:after,
.box.red.arrow-right-bottom:after {
  border-left-color: #e74c3c;
}
.box.red.arrow-right-top:after {
  border-top-color: #e74c3c;
}
.box.red.arrow-right-bottom:after {
  border-bottom-color: #e74c3c;
}
</style>
</head>
<body>
  <div id="container">
  <h3>Arrow Box with CSS </br><span style="font-size: 80%; color:#999">(12 positions)</span></h3>

  <!-- the boxes -->
  <div id="boxContainer"></div>
</div>
      <script>
var CLASS_NAME_LOOKUP = {
  "bottom center": "",
  "bottom left": "arrow-bottom-left",
  "bottom right": "arrow-bottom-right",
  "top center": "arrow-top-center",
  "top left": "arrow-top-left",
  "top right": "arrow-top-right",
  "left center": "arrow-left-center",
  "left top": "arrow-left-top",
  "left bottom": "arrow-left-bottom",
  "right center": "arrow-right-center",
  "right top": "arrow-right-top",
  "right bottom": "arrow-right-bottom" };


var BOX_BG_CLASS = ["blue", "green", "orange", "red"];

(function () {
  var targetNode = document.getElementById("boxContainer");
  var boxesHTML = "";
  var classNames = "";
  var i = 0;

  for (var pos in CLASS_NAME_LOOKUP) {
    classNames = "box " + BOX_BG_CLASS[Math.floor(i / 3)];
    classNames += " " + CLASS_NAME_LOOKUP[pos];
    //var div = document.createElement("div");
    var div = "<div class='" + classNames + "'></div>";
    boxesHTML += div;
    ++i;
  }

  targetNode.innerHTML = boxesHTML;
})();
    </script>
</body>
</html>

4. Box with arrow

Made by Ismael Messa. Source

Box with arrow
<!DOCTYPE html>
<html lang="en" >
<head>
  <title></title>
  <link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css'> 
<style>
body{
  background: linear-gradient(to right, #538976, #192e29);
}
.box {
  position: relative;
  width: 350px;
  min-width: 300px;
  max-width: 350px;
  height: 400px;
  min-height: 400px;
  font-size: 11px;
}
.box-img{
  position: absolute;
  z-index: 999;
  overflow: hidden;
  height: 60%;
  left: 5.2%;
  right:1%;
  top: 0%;
  padding: 5px;
}

.item-name {
  position: absolute;
  width: 90%;
  top: 63%;
  left: 6.3%;
  white-space: nowrap; 
  z-index: 999;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: center;
  padding: 3px;
  font-size: 1.7em;
  font-weight: 600;
}
.item-budget {
  position: absolute;
  z-index: 999;
  width: 80%;
  right: 2%;
  top: 75%;
  padding-right: 5px;
  font-size: 1.7em;
  font-weight: 500;
}

.item-budget span:nth-child(1){
  float:left;
}

.item-budget span:nth-child(2){
  float: right;
}
.line{
  position: absolute;
  width: 80%;
  top: 81%;
  right: 3%;
  z-index: 999;
  border: .5px solid gray;
  opacity: 0.5;
}

.box-info{
  position: absolute;
  display: block;
  z-index: 999;
  font-size:1.1em;
  opacity: 0.8;
  width: 80%;
  right: 2%;
  top: 85%;
}
.box-info span:nth-child(1){
  position: absolute;
  top: 5%;
  left: -17%;
  font-size: 30px;
  color: red;
}
.box-info span:nth-child(2){
  float:left;
}
.box-info span:nth-child(3){
  float:right;
}

.box.arrow-top {
  margin: auto;
  margin-top: 40px;
}

.box.arrow-top:after {
  content: "";
  position: absolute;
  display: block;
  z-index:0;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background: white;
  box-sizing: border-box;
  clip-path: polygon( 6% 1%, 99% 1%, 99% 92%, 13% 92%, 1% 99%, 6% 71%);
}

.box.arrow-top:before {
  content: "";
  position: absolute;
  display: block;
  z-index: 0;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background: gray;
  opacity: 0.6;
  box-sizing: border-box;
  clip-path: polygon( 5% 0%, 100% 0%, 100% 93%, 13% 93%, 0% 100.5%, 4.6% 73%);
}
</style>
</head>
<body>
  <div class="box arrow-top">
  <div class="box-img">
<img  src="https://media.gettyimages.com/photos/ford-fairlane-500-convertible-picture-id499598783?s=612x612" alt="test" width='100%' height='100%' />
 </div>
  <div class="item-name"> FORD FAIRLANE </div>
  <div class="item-budget">
    <span>BUDGET</span> 
    <span>$$$$</span>
  </div>
  <div class='line'></div>
  <div class="box-info">
    <span class="icon-heart" >
      <i class="fa fa-heart" aria-hidden="true"></i>
      </span>
    <span>RARE & CUSTOM VEHICULES</span>
    <span>DALLAS. TX</span>
      
    </div>
</div>
</body>
</html>

5. Single SASS mixin for CSS Arrows

Made by Jon Daiello. Source

Single SASS mixin for CSS Arrows
<!DOCTYPE html>
<html lang="en" >
<head>
  <title></title>
  <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:700,400" rel="stylesheet">  
<style>
/* This mixin is for generating CSS arrows on a box */
body {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  padding: 5vmin;
  margin: 0;
  font-family: "Source Sans Pro", sans-serif;
  background: #f9f6ef;
}

.c-header {
  width: 100%;
  text-align: center;
  font-size: calc(100% + 1vmin);
}
.c-header h1 {
  font-weight: 700;
  color: #333;
}

.c-box {
  background: #587b7f;
  font-size: 150%;
  text-align: center;
  color: #fff;
  flex-basis: 30%;
  padding: 5vmin;
  margin: 5vmin;
}
.c-box--arrow-top {
  position: relative;
  z-index: 10;
}
.c-box--arrow-top::after {
  content: "";
  width: 0;
  height: 0;
  display: block;
  position: absolute;
  z-index: 10;
  border: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  margin-left: -10px;
  left: 50%;
  border-bottom: 10px solid #587b7f;
  top: -10px;
}
.c-box--arrow-right {
  position: relative;
  z-index: 10;
}
.c-box--arrow-right::after {
  content: "";
  width: 0;
  height: 0;
  display: block;
  position: absolute;
  z-index: 10;
  border: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  margin-top: -10px;
  top: 50%;
  border-left: 10px solid #587b7f;
  left: auto;
  right: -10px;
}
.c-box--arrow-bottom {
  position: relative;
  z-index: 10;
}
.c-box--arrow-bottom::after {
  content: "";
  width: 0;
  height: 0;
  display: block;
  position: absolute;
  z-index: 10;
  border: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  margin-left: -10px;
  left: 50%;
  border-top: 10px solid #587b7f;
  bottom: -10px;
}
.c-box--arrow-left {
  position: relative;
  z-index: 10;
}
.c-box--arrow-left::after {
  content: "";
  width: 0;
  height: 0;
  display: block;
  position: absolute;
  z-index: 10;
  border: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  margin-top: -10px;
  top: 50%;
  border-right: 10px solid #587b7f;
  left: -10px;
}

.c-footer {
  width: 100%;
  text-align: center;
}

.c-btn {
  background: #d87517;
  display: inline-block;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 0.75em 1.5em 0.85em;
  font-size: 120%;
  line-height: 140%;
  border-radius: 2px;
  border: 3px solid #d87517;
  box-shadow: 0 4px 0 0 rgba(0, 0, 0, 0.1);
  transition: 0.2s all ease-out;
}
.c-btn:hover {
  color: #d87517;
  background: #fff;
  box-shadow: 0 6px 0 0 rgba(0, 0, 0, 0.2);
  border: 3px solid #d87517;
}
</style>
</head>
<body>
  <header class="c-header"><h1>A Single SASS @mixin for Creating CSS Arrows</h1></header>

<div class="c-box c-box--arrow-top">
  This box has a top arrow.
</div>

<div class="c-box c-box--arrow-right">
  This box has a right arrow.
</div>

<div class="c-box c-box--arrow-bottom">
  This box has a bottom arrow.
</div>

<div class="c-box c-box--arrow-left">
  This box has a left arrow.
</div>

<footer class="c-footer">
<a class="c-btn" href="https://gist.github.com/jondaiello/a0cc2dbf8994ff757e4ac13bb8168969" target="_blank">Grab the Gist</a>
</footer>
</body>
</html>

6. Box with triangle arrow

Made by lideo. Source

Box with triangle arrow
<!DOCTYPE html>
<html lang="en" >
<head>
  <title></title>
<style>
.box {
  width: 150px;
  height: 75px;
  background-color: black;
  color: #fff;
  padding: 20px;
  position: relative;
  margin: 40px;
  float: left;
}

.box.arrow-top {
  margin-top: 40px;
}

.box.arrow-top:after {
  content: " ";
  position: absolute;
  right: 30px;
  top: -15px;
  border-top: none;
  border-right: 15px solid transparent;
  border-left: 15px solid transparent;
  border-bottom: 15px solid black;
}

.box.arrow-right:after {
  content: " ";
  position: absolute;
  right: -15px;
  top: 15px;
  border-top: 15px solid transparent;
  border-right: none;
  border-left: 15px solid black;
  border-bottom: 15px solid transparent;
}

.box.arrow-bottom:after {
  content: " ";
  position: absolute;
  right: 30px;
  bottom: -15px;
  border-top: 15px solid black;
  border-right: 15px solid transparent;
  border-left: 15px solid transparent;
  border-bottom: none;
}

.box.arrow-left:after {
  content: " ";
  position: absolute;
  left: -15px;
  top: 15px;
  border-top: 15px solid transparent;
  border-right: 15px solid black;
  border-left: none;
  border-bottom: 15px solid transparent;
}
</style>
</head>
<body>
  <div class="box arrow-top">
  This is a box with some content and an arrow at the top.
</div>

<div class="box arrow-right">
  This is a box with some content and an arrow on the right.
</div>

<div class="box arrow-bottom">
  This is a box with some content and an arrow at the bottom.
</div>

<div class="box arrow-left">
  This is a box with some content and an arrow on the left.
</div>

</body>
</html>

7. box with arrow

Made by David. Source

box with arrow
<!DOCTYPE html>
<html lang="en" >
<head>
  <title></title>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">
<style>
body {
  margin: 0;
  padding: 0;
  background-color: #72BAEC;
  overflow: hidden;
}

.app {
  position: relative;
  width: 100vw;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}
.app .box {
  position: relative;
  width: 200px;
  height: 200px;
  border: 10px solid #FFF;
  border-radius: 20px 0 20px 20px;
  box-shadow: -10px 10px 15px rgba(0, 0, 0, 0.2);
}
.app .box .arrow {
  position: absolute;
  left: 50%;
  width: 10px;
  height: 250px;
  background: #FFF;
  transform: rotate(45deg) translate(-210%, -35px);
  transform-origin: center center;
}
.app .box .arrow::after, .app .box .arrow::before {
  position: absolute;
  content: "";
  width: 15px;
  height: 30px;
  background: #000;
  transform-origin: top center;
  background: #72BAEC;
}
.app .box .arrow::after {
  top: 30px;
  right: 30px;
  transform: rotate(45deg);
}
.app .box .arrow::before {
  top: 30px;
  left: 30px;
  transform: rotate(-45deg);
}
</style>
</head>
<body>
  <div class="app">
  <div class="box">
    <div class="arrow"></div>
  </div>
</div>
</body>
</html>

8. Fancy Block Quotes

Made by Neil. Source

Fancy Block Quotes
<!DOCTYPE html>
<html lang="en" >
<head>
  <title></title>
<style>
*:not(.arrow-down){
			box-sizing:border-box;
			-moz-box-sizing:border-box;
		}
		.arrow-down {
			width: 0; 
			height: 0; 
			border-left: 20px solid transparent;
			border-right: 20px solid transparent;
			border-top: 20px solid #f00;
		}
		article{
			display: block;
			width: 220px;
			float: left;
			margin: 20px;
		}
		article:hover{
			background: rgba(227,114,6,0.15);
		}
		article .header {
			height: 200px;
		}
		article:nth-child(4n+1) .header {
			background-position: left bottom;
		}
		article:nth-child(4n+2) .header {
			background-position: -600px bottom;//units of 300px
		}
		article:nth-child(4n+2) h2 {
			background: #e37206;
			background: rgba(227,114,6,0.85);
		}
		article:nth-child(4n+1) .header:after{
			border-top-color: #118fca;
			border-top-color: rgba(17,143,202,0.85);
		}
		article:nth-child(4n+2) .header:after{
			border-top-color: #e37206;
			border-top-color: rgba(227,114,6,0.85);
		}
		article:nth-child(4n+1) h2 {
			background: #118fca;
			background: rgba(17,143,202,0.85);
		}
		article .header:after{
			content: " ";
			width: 0; 
			height: 0; 
			border-left: 15px solid transparent;
			border-right: 15px solid transparent;
			border-top: 15px solid transparent;
			display: block;
			position: absolute;
			margin-bottom: -20px;
			margin-left: 10px;

		}

		.header h2{
			margin: 0;
			width: 100%;
			height: 185px;
			color: white;
			padding: 20px;
		}
		article .desc p{
			color: #333;
		}
		article .desc{
			padding: 0 15px 8px 12px;		
		}
</style>
</head>
<body>
  <article>
		<div class='header'><h2>Block Quote Header</h2></div>
		<div class='desc'><p>Lorem ipsum dolor sit amet.</p></div>
	</article>
	<article>
		<div class='header'><h2>Block Quote Header</h2></div>
		<div class='desc'><p>Lorem ipsum dolor sit amet.</p></div>
</article>
</body>
</html>