Inset fill sweep
Inset fill sweep: a CSS button. Copy the rules, or the prompt that rebuilds it.
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.