Comment

Comment by SebastianKra

That's what components are for. One of the issues with classes is that you inevitably run into a behavior that requires additional dom nodes or js. For example, what if your most of your buttons need to show loading states [^1].

Bootstrap is actually not as bad as I remember, but I still see quite a few examples where their api requires complex & specific combinations of elements. Just compare their Accordion to ShadCN's.

For simple buttons you may get away with classes only (not worth the risk imo), but anything more complex than a dropdown should be a component. Case in point: daisyUIs dropdown doesn't support arrow key navigation or escape.

[^1]: https://www.radix-ui.com/themes/docs/components/button#loadi...

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton