097/100 Buttons.
Total time so far: 473h
The button uses two versions stacked on top of each other.
Using here clip-path for the hover. So the hover version starts clipped to the size of the dot on the right.
clip-path: inset(
calc(50% - var(--dot-size) * 0.5)