I really like Headless UI. You say more control comes with more responsibility, I believe it ultimately depends on your skills. Personally, I need to ensure that I deliver the exact custom design my client requires. Having the ability to create consistent designs using custom CSS or Tailwind CSS, along with the freedom to animate elements however I choose or utilize any animation library, is a significant advantage. For those of us who are passionate about UI/UX, I think this is one of the greatest advancements in front-end development.
You talk about depending on the project to stay viable, yet then you mention UI libraries. If the UI library dies, it’s not just about swapping components; it essentially means reprogramming the entire application.
For me Headless UI is meant for people who want to just use a component library but still get to customize the styling so it doesn't look like every other app (think of the bazillion of apps using material UI). 1:30 I do agree on the idea that a Headless UI doesn't really mean owning the code as you are still literally using a dependency. however i don't think most people really care about that. As long as they own the styling and can *_slightly_* tweak the behavior, they're happy 1:53 however, i don't think this other point is really fair, the point of the Headless UI librairies *_IS_* to give that slight bit of flexibility. In the mantine example, the pagination component is a complete black box and easily styling its inner part would be fully dependent on its API. the shadcn/ui version is a *_slightly less_* black box whit a bit more control. Even though i see a lot of people are disagreeing completely with you in the comments. we know for a fact that many share the same feeling as you just by looking at how popular non headless UI libraries are. Ultimately these discussions are important because they show that there is not a single way to do things and that the diversity in developer needs will always create new and interesting patterns and paradigms. overall great content!
So for you personally, you want already styled components because you don't enjoy or as you have claimed you are not great at UI/UX design. That's fine, but its purely a personal decision. as someone who has a background in front end design I was delighted that there was no styling already to override which can be a pain. Further more, its completely open source so you DO own the code, you can maintain and change things that you like or just do a complete fork if you know what you are doing. Even if it did get abandoned, many people use it and will probably be forked and taken over by another team.
The shadcn/ui code is dependent on Radix primitives, you don't own that. This reasoning can go on and on and is primarily based on the nature of the React (and other JS frameworks) ecosystem, which is completely based on depending on others people's code. There nothing inherently wrong with dependency, but if the goal is to *_"own"_* the code, then a component *_library_* is not the way to do it.
The biggest issue with headlessui is that in many cases it overcomplicates things that could be done with just 20 lines of plain css. Transitions for example give more problems than they solve, even implementing a complex dialog can become a nightmare and make you loose a lot of time. The lack of style, although makes sense for a UA-cam video because not everyone might be familiar with the term “headless”, it’s not the point and actually it a pro rather than a con. For solo developers, I would rather suggest to invest a considerable amount of time and think of their own design system and write their own reusable components, so when you need something you know where to find it and how to tweak it.
Like the other comments say, this is worse than bad advice because it has the semblance of good advice. The video is logically inconsistent with the reasons why it prefers a UI library, citing less bloat or difficulty handling the component. I don’t feel the presenter has coded enough to know how much easier it is to work with shadcn and radix rather than trying to customize a library where every is abstracted away from the developer
many ui libraries just reinvent things you can already do with semantic html. if not with tags, then with roles and aria attributes. you can just style those directly. i don’t get why you'd need a library that you style based on data-attributes and classes.
Ngl this sounds like skill issues and like you don’t understand how and why you’d want to use components like shad. I don’t miss writing it all myself that’s for sure, and ui libraries that hold your hand also keep you down in a lot of ways
This is great advice if you never want to improve at all! All programmers know you have to keep learning though, you're only hurting yourself long term with this attitude. Honestly your job is 100% replaceable by AI if you can't even make custom components.
missed the hole point of headless ui`s, instead chooses to use component libraries that use JS most of the time that sometimes isn't even server component ready (chakraUi). You do you, i would choose Radix/Shadcn everyday
Dude face look like he's 40, but with a 16 years old teenager haircut 🤡
This is probably one of the worst advices I have watched on UA-cam yet.
Yep
I really like Headless UI. You say more control comes with more responsibility, I believe it ultimately depends on your skills. Personally, I need to ensure that I deliver the exact custom design my client requires. Having the ability to create consistent designs using custom CSS or Tailwind CSS, along with the freedom to animate elements however I choose or utilize any animation library, is a significant advantage. For those of us who are passionate about UI/UX, I think this is one of the greatest advancements in front-end development.
You talk about depending on the project to stay viable, yet then you mention UI libraries. If the UI library dies, it’s not just about swapping components; it essentially means reprogramming the entire application.
For me Headless UI is meant for people who want to just use a component library but still get to customize the styling so it doesn't look like every other app (think of the bazillion of apps using material UI).
1:30 I do agree on the idea that a Headless UI doesn't really mean owning the code as you are still literally using a dependency.
however i don't think most people really care about that. As long as they own the styling and can *_slightly_* tweak the behavior, they're happy
1:53 however, i don't think this other point is really fair, the point of the Headless UI librairies *_IS_* to give that slight bit of flexibility. In the mantine example, the pagination component is a complete black box and easily styling its inner part would be fully dependent on its API. the shadcn/ui version is a *_slightly less_* black box whit a bit more control.
Even though i see a lot of people are disagreeing completely with you in the comments. we know for a fact that many share the same feeling as you just by looking at how popular non headless UI libraries are. Ultimately these discussions are important because they show that there is not a single way to do things and that the diversity in developer needs will always create new and interesting patterns and paradigms.
overall great content!
Bro should watch his videos before uploading
So for you personally, you want already styled components because you don't enjoy or as you have claimed you are not great at UI/UX design. That's fine, but its purely a personal decision. as someone who has a background in front end design I was delighted that there was no styling already to override which can be a pain.
Further more, its completely open source so you DO own the code, you can maintain and change things that you like or just do a complete fork if you know what you are doing. Even if it did get abandoned, many people use it and will probably be forked and taken over by another team.
1. You need to learn design then.
2. In shadcn, you own the code. In Mantime, you don't. So no idea why that was rhe complaint point?
You own the maintenance as well. Tradeoffs as always.
The shadcn/ui code is dependent on Radix primitives, you don't own that. This reasoning can go on and on and is primarily based on the nature of the React (and other JS frameworks) ecosystem, which is completely based on depending on others people's code.
There nothing inherently wrong with dependency, but if the goal is to *_"own"_* the code, then a component *_library_* is not the way to do it.
@@kangar1797 precisely
I only need 3 libraries ever: HTML, CSS and JS
You never worked on a big project with deadlines then
The biggest issue with headlessui is that in many cases it overcomplicates things that could be done with just 20 lines of plain css. Transitions for example give more problems than they solve, even implementing a complex dialog can become a nightmare and make you loose a lot of time. The lack of style, although makes sense for a UA-cam video because not everyone might be familiar with the term “headless”, it’s not the point and actually it a pro rather than a con. For solo developers, I would rather suggest to invest a considerable amount of time and think of their own design system and write their own reusable components, so when you need something you know where to find it and how to tweak it.
Like the other comments say, this is worse than bad advice because it has the semblance of good advice. The video is logically inconsistent with the reasons why it prefers a UI library, citing less bloat or difficulty handling the component. I don’t feel the presenter has coded enough to know how much easier it is to work with shadcn and radix rather than trying to customize a library where every is abstracted away from the developer
To be honest, shadcn is the best ui library i ever found. You can build something fast with so many components. Skipped the video after 1 minute
many ui libraries just reinvent things you can already do with semantic html.
if not with tags, then with roles and aria attributes.
you can just style those directly.
i don’t get why you'd need a library that you style based on data-attributes and classes.
L take (didn't watch)
The title and tumbnail is clickbait. The actual take is not as bad.
@MrinmoyRoy1990 doesnt deserve viewer retention then
23 likes and 20 dislikes, thats wild
соболезную братишка, что не осилил shadcn
How high are you?
Me: "Headless UI's sucks"
Ngl this sounds like skill issues and like you don’t understand how and why you’d want to use components like shad. I don’t miss writing it all myself that’s for sure, and ui libraries that hold your hand also keep you down in a lot of ways
Its just a rage bait
This is great advice if you never want to improve at all!
All programmers know you have to keep learning though, you're only hurting yourself long term with this attitude.
Honestly your job is 100% replaceable by AI if you can't even make custom components.
Another prospective of thinking
missed the hole point of headless ui`s, instead chooses to use component libraries that use JS most of the time that sometimes isn't even server component ready (chakraUi). You do you, i would choose Radix/Shadcn everyday
Horrible advice, just horrible....
Bad content bro
Skill issue
L take (didn't watch)