:root {
  --radius: 10px;
}

* {
  user-select: none;
}

.geometry {
  position: absolute;
  resize: both;
  overflow: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
}

.resizer {
  position: absolute;
  width: calc(var(--radius) * 2);
  height: calc(var(--radius) * 2);
  border-radius: 50%;
}

.resizer.top,
.resizer.bottom {
  cursor: row-resize;
}

.resizer.left,
.resizer.right {
  cursor: col-resize;
  transform: rotate(-90deg);
}

.dimension {
  position: absolute;
  width: 60px;
  text-align: center;
  opacity: 0;
}

.dimension.visible {
  opacity: 1;
}

.dimension.left,
.dimension.right {
  transform: rotate(-90deg);
}
