Jak utworzyć kwadratowy element z CSS o dynamicznej szerokości

<div class="square">
  <div class="content">
    Hello!
  </div>
</div>

.square {
  position: relative;
  width: 50%;
}

.square:after {
  content: "";
  display: block;
  padding-bottom: 100%;
}

.content {
  position: absolute;
  width: 100%;
  height: 100%;
}
Yasiel Cabrera