There'd be a lot less boilerplate if you offered stylesheet with applied components like tailwind discusses in maintability section. It would allow users to override some of the styles. I think with the components, you can redeclare a new button that extends your definition.