Hacker News new | ask | show | jobs
by presentation 855 days ago
Don’t have any thoughts about this cli tool but am I the only one that thinks that the ShadCN components, besides looking pretty, actually are not good? I used it in a project and regret it since the actual code is written in a way that does not lend itself to modular usage (the form components are particularly bad) with wrappers upon contexts upon wrappers obscuring the true abstraction; I don’t like Tailwind so I had to rewrite all the styles; and ultimately it’s just a wrapper on Radix UI which already is a reasonable abstraction (though even further, React Aria seems nicer from the get-go). Ended up just rewriting practically everything it produced to not suck.

EDIT: actually read the README here, I guess this is cool in that I could register components that, unlike ShadCN, don’t suck, and still lead to the same vendored approach that allowed me to rewrite all the ShadCN components. It seems kind of ridiculous as the other commenters mentioned that this is a cli for a registry on top of a cli from another registry…

3 comments

I agree, if you don't like a key feature of a library, like tailwind-based styling which is meant to be customized, then that library is probably not for you.

The form component is more the exception for its complexity but forms are also very complex on the web.

Being a wrapper on top of Radix is kind of the point. You can't build a nice-looking MVP in an afternoon with Radix - you need one afternoon just to style every state of button - but with shadcn you can. Their experiment is to give you the ability to still spend an afternoon styling the button later without having to hack around a complex library. Your ability to rewrite it even away from tailwind is exactly the point. Ever tried rewriting MUI to use tailwind?

I chose Shadcn for my latest project. I don’t regret choosing it but I didn’t anticipate how much tweaking it requires. One example, and maybe I am using it incorrectly but the dialogue component didn’t accommodate for any overflow - the overflowing content is just cut off by the window.
Shadxn will allow you to reuse your tweaked dialog component
Thanks for pointing this out.