I feel like it’s a historical accident. In the past the platform couldn’t do it all, and if you wanted a dialog you had to use a library. Developers were trained to reach for libraries when they needed something like a dialog.
Then react came along and all developed learning web development after react had little to no knowledge of the platform. They were taught that touching the DOM was a bad thing to do.
That’s about it. Even now when I advocate for vanilla css I get the side eye and “tailwind and shadcn should be the default”. I get it, it’s what most people are familiar with, even if it’s worse than the platform.
Depends on the criteria, e.g. if dev speed has highest prio, a full blown component lib like Material UI would be superior to shadcn. CSS can obviously do things that tailwind can't, so it is more powerful.
The point of shadcn is you can pull in a component and modify it any way you want. It's always going to be bare bones at the start. Something like MUI locks you into a layout and style that's coupled with the API, and you need to rewrite big chunks of your app if you want to add your own branding.
For me the best middle ground is Headless UI or Bits for Svelte, unstyled and composable but you don't need to vendor code into your repo like shadcn.
This comment is at the same depth of analysis of saying that the only reason for python being successful is that universities started teaching it and then people no longer could do C++
I know you're just meeting the bar, but counterpoint: They're correct. Do you happen to have a deeper analysis above the bar of your own to deny it?
I personally feel they are for the simplest reason that Web Development exploded to the point the new blood and cultural migrants outnumbers and outproduces the old. Those lessons were taught, and kept, the mundane act of googling anything suffixed with "... in React" being the kiss of death that settled it.
ibash · · focus · HN ↗
Then react came along and all developed learning web development after react had little to no knowledge of the platform. They were taught that touching the DOM was a bad thing to do.
That’s about it. Even now when I advocate for vanilla css I get the side eye and “tailwind and shadcn should be the default”. I get it, it’s what most people are familiar with, even if it’s worse than the platform.
corgi192 · · focus · HN ↗
WuxiFingerHold · · focus · HN ↗
tancop · · focus · HN ↗
For me the best middle ground is Headless UI or Bits for Svelte, unstyled and composable but you don't need to vendor code into your repo like shadcn.
WuxiFingerHold · · focus · HN ↗
afiori · · focus · HN ↗
DonaldRitzke · · focus · HN ↗
I personally feel they are for the simplest reason that Web Development exploded to the point the new blood and cultural migrants outnumbers and outproduces the old. Those lessons were taught, and kept, the mundane act of googling anything suffixed with "... in React" being the kiss of death that settled it.