<button class="btn" data-hover-text="hello, world!!"></button>
.btn {
  border: 0;
  background: green;
  display: inline-block;
  width: 3em;
  height: 3em;
  border-radius: 1.5em;
  overflow: hidden;
  transition: width 0.2s linear;
}
.btn::before {
  display: inline-flex;
  width: 100%;
  height: 100%;
  color: white;
  justify-content: center;
  align-items: center;
  white-space: nowrap;
  transition: letter-spacing 0.2s linear;
  letter-spacing: -2px;
  content: ">";
}
.btn:hover {
  width: 10em;
}
.btn:hover::before {
  letter-spacing: 0px;
  content: attr(data-hover-text);
}
https://jsfiddle.net/gbzcsuo2/