JSFiddle - React, Tailwind, and code Playground

by Константин Дралюк

HTML

<div class="hexagon">
  <div class="hexagon__box -size260 -outline">
    <div class="hexagon__outline">
      <div class="hexagon__box">
        <div class="hexagon__figure"></div>
      </div>
    </div>
    <div class="hexagon__figure"></div>
  </div>
</div>

<div class="hexagon">
  <div class="hexagon__box -size260">
    <div class="hexagon__figure"></div>
  </div>
</div>

CSS

body {
  margin: 0;
}
.hexagon {
  float: left;
  color: #f0f;
  display: inline-flex;
  vertical-align: top;
}
.hexagon__box {
  position: relative;
}
.hexagon__box.-size260 {
  width: 260px;
}
.hexagon__box.-outline {
  margin: 0 7.5%;
}
.hexagon__box:before {
  content: '';
  padding-bottom: 115.5%;
  display: table;
}
.hexagon__figure {
  box-sizing: content-box;
  width: 100%;
  background: currentColor;
  border: inherit;
  position: absolute;
  top: 25%;
  padding-bottom: 57.75%;
}
.hexagon__figure:before, .hexagon__figure:after {
  content: '';
  background: inherit;
  border: inherit;
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.hexagon__figure:before {
  transform: rotate(60deg);
}
.hexagon__figure:after {
  transform: rotate(-60deg);
}
.hexagon__outline {
  margin-top: -115%;
  transform: rotate(30deg);
}
.hexagon__outline .hexagon__figure {
  background: transparent;
  border-style: solid;
  border-color: currentColor;
  border-width: 0 1px 0 1px;
}