Inset fill sweep

Inset fill sweep: a CSS button. Copy the rules, or the prompt that rebuilds it.

inset-filloutlinerectanglebox-shadowleft-to-right

CSS
.btn-146 {
  font: 600 14px/1 system-ui,sans-serif;
  color: #111827;
  background: transparent;
  border: 2px solid #111827;
  border-radius: 6px;
  padding: 12px 24px;
  cursor: pointer;
  box-shadow: inset 0 0 0 0 #111827;
  transition: box-shadow .3s ease-out,color .3s
}
.btn-146:hover {
  box-shadow: inset 200px 0 0 0 #111827;
  color: #fff
}
.btn-146:focus-visible {
  outline: 2px solid #111827;
  outline-offset: 3px
}
.btn-146:active {
  box-shadow: inset 200px 0 0 0 #000;
  border-color: #000
}
HTML
<button class="btn-146">Read more</button>
Prompt

An outline button (transparent, 2px #111827 border, 6px radius, 14px semibold dark text, 12px by 24px padding) that fills from the left on hover using an inset box-shadow growing from 0 to 200px horizontal spread, text turning white, 300ms ease-out. Active fills pure black. Focus 2px dark outline offset 3px.