UI Libraries Are Dying, Here's Why

  Рет қаралды 258,186

Theo - t3․gg

Theo - t3․gg

4 ай бұрын

I still get the occasional question about Material UI, Chakra, Bootstrap, and more. I think Shadcn/ui represents more than a trend, it represents a move away from UI libraries as a whole
Check out my Twitch, Twitter, Discord more at t3.gg
S/O Ph4se0n3 for the awesome edit 🙏

Пікірлер: 764
@rianfuro4088
@rianfuro4088 4 ай бұрын
Love how we went full circle on dependency management there. From copying files on the internet into our own project, to complex package management and versioning, right back to copying code from the internet into our own project 😅
@ninhdang1106
@ninhdang1106 4 ай бұрын
We have been going full circle with everything in frontend lol
@TheTigerus
@TheTigerus 4 ай бұрын
You could always copy code from NPM to your code, you just decided to not do this. Every dependency installed from NPM is literally copy pasted full source code into your project.
@shinoobie1549
@shinoobie1549 4 ай бұрын
hahaha Yes! I was about to say this was the EXACT experience using Bootstrap when it just came out
@rianfuro4088
@rianfuro4088 4 ай бұрын
@@TheTigerus I'm not saying that you couldn't, but I'm talking about what the community at large advocated for.
@user-qr4jf4tv2x
@user-qr4jf4tv2x 4 ай бұрын
just like clothing. trends are bs
@dancarter5595
@dancarter5595 4 ай бұрын
Excellent, now I have 40 new UI components in my codebase to maintain.
@Sorkstryparen
@Sorkstryparen 4 ай бұрын
Haha! Thats very true 😂
@user-gi8ud2jn6z
@user-gi8ud2jn6z 3 ай бұрын
My guess is the final project will look like an early geocities page, because each component from a different author has a different idea which fonts, colors, sizes, margins etc. to use.
@atava85
@atava85 3 ай бұрын
What a mess AI-generated programming is going to be (for those who are willing to use it)
@dancarter5595
@dancarter5595 3 ай бұрын
@@atava85 huh?
@atava85
@atava85 3 ай бұрын
@@dancarter5595 What I meant is that this practice of copy-pasting AI-generated code (not only for UI, but also for logic) looks very brittle to me... how can you entrust any part of your business application to this? We are accustomed to not be 100% sure of our code even with heavy testing... piecing together some pregenerated bits like this looks terrible to me (personal feeling). (I was expanding on the "v0" part of the video)
@UbuntuBanksie
@UbuntuBanksie 4 ай бұрын
I’m not convinced that this is better than a UI library for small/medium scale projects
@quadmasterXLII
@quadmasterXLII 4 ай бұрын
THis is going to be hell to maintain lol. 100x boost in number of lines of code a developer can inject into the repo per hour, no change in number of lines of code a developer can read in the repo per hour.
@TheBrister123
@TheBrister123 3 ай бұрын
Exactly. I don't mean to bash this stuff, its great but I'm using a 3rd. party tool to build blazor apps. Less lines of code, I have less time to read them and I don't really care about ownership. The app works! Great, on to the next one...
@Joker-fj8hg
@Joker-fj8hg 3 ай бұрын
Wait until AI assisted maintenance becomes mainstream
@royronalds
@royronalds 3 ай бұрын
I like the approach. I also wonder about the optimization of resulting bundle size and tree shaking when every app has to handle that itself.
@nontonn
@nontonn 3 ай бұрын
I also think the same until - we need to custom - change bootstrap to others and might have to rewrite the whole. its also plain mostly open source still need to maintain such as minor or major upgrade or even sunset. I not sure when we easier to develop but not difficult to maintain. write our owned code might be?
@RockRespawn
@RockRespawn 4 ай бұрын
Haven't watched it yet but my guess is its prolly about shadcn
@deniswastaken
@deniswastaken 4 ай бұрын
quite literally written in description.
@mirfan-2020
@mirfan-2020 4 ай бұрын
I prefer tailwind+daisyUI nowadays. It's highly customisable and daisyUI provides some basic components to start with which are also highly customisable with tailwind unlike whatever the hell was mui
@JEsterCW
@JEsterCW 4 ай бұрын
@@mirfan-2020 daisy is a big no to anything
@vvelarm
@vvelarm 4 ай бұрын
​@@deniswastaken sad bully
@vvelarm
@vvelarm 4 ай бұрын
​@@mirfan-2020 i want to move away from that approach, but I like it, and use it extensively at this point.
@proosee
@proosee 4 ай бұрын
Correct me if I'm wrong, but that seems like a one way road to unmaintainable codebase, because I can see how it is faster to build something from scratch, but changing it after time is a frightening idea, especially without proper tests. It reminds me of old days where there was that one brilliant team that decided to fork library to make few changes, years goes by and that one library is becoming a liability which no one wants to touch and it contains old bugs which were fixed & forgotten in the rest of the world. And I've seen this many, many times in different environments. If my only goal was to build one perfect app based on perfect requirements that will never change then it's fine: I will use AI tools, generate tons of code, change it a bit and I can even minimize/pack it, the heck, I don't even need a git repository! It will never change! But we all know the world doesn't work like that, requirement change or are wrongly interpreted, that's why we care about maintainability. Average dev spends 8 times more time on READING code than on WRITING code, that's why every line of code in your repository is a liability, so you need reeeaaally good reason to put one in. But, well, maybe AI tools will get smart enough to comprehend such codebases and will make changes for us, but for now, code is for humans, and humans are limited, limited in memory, limited by mistakes they make, limited in time they have, so you need to keep it simple and clean if you ever want to change it in the future.
@reed6514
@reed6514 4 ай бұрын
I never read code. If there's a bug, i erase everything and restart.
@Paul-zh2jp
@Paul-zh2jp 4 ай бұрын
@@reed6514 BASED
@harryhack91
@harryhack91 4 ай бұрын
@RajinderYadav But you should know that's not how the world works. When was the last time a client switched to your company for maintaining a project and you actually got any meaningful Knowledge Transfer from the previous maintainers? From my experience any documentation provided is highly outdated and you basically have to fuck around and find out to build it and make any changes. And Unit tests are an endangered species as well.
@inwerpsel
@inwerpsel 4 ай бұрын
"Average dev spends 8 times more time on READING code than on WRITING code" This is exactly why an approach like ShadCN's can work better. If you're committing to only installing code as a library, and accept every single line of it that is not relevant to your use case, you'll end up reading (and debugging) code that is significantly more complex than what you need, all the time.
@proosee
@proosee 4 ай бұрын
@RajinderYadav so I need to copy the code, maintain it, document it, write tests for it? How's that simpler than reusing components from library that are already tested by automatic tests as well as millions of users around the world? I love when people make mess in codebase and then call it "skill issue" if someone is lost in that spaghetti.
@rianfuro4088
@rianfuro4088 4 ай бұрын
I end up writing a lot of administration ui in my day job, so i have a different perspective on this: I don't need all of this customizability for writing those kinds of UIs because nobody cares or pays for that. What I need are UI components that look good by default and are as simple to use as possible. Bootstrap is perfect for that.
@witchmorrow
@witchmorrow 4 ай бұрын
fair point
@user-sh5qp6uu1e
@user-sh5qp6uu1e 4 ай бұрын
You should always do a little bit more than needed. That's how you become THE GUY
@rianfuro4088
@rianfuro4088 4 ай бұрын
@@user-sh5qp6uu1e Fair point. I prefer to be THE GUY that does the complicated features in less time and adds more convenience features though. In my experience that's appreciated way more by customers.
@dimlucas3931
@dimlucas3931 4 ай бұрын
Completely agree. Customers and stakeholders don't care if you use the latest hot Twitter/Reddit tech. I've seen teams having to double the size of the frontend dev team to maintain their React+Tailwind+ monstrosity of a frontend while paying 5x the infrastructure cost. We get things done with Bootstrap and focus more on delivering high quality services where it matters.
@rand0mtv660
@rand0mtv660 4 ай бұрын
Hmm I think this depends on your clients and projects. I work at an agency where we work a lot on dashboard UI projects that are either external or internal and we never use these UI libraries. They always end up blocking us in some way, whether it's styling which usually can be addressed, or worse UX which is usually harder to address because you have to fork the project or end up using some other component from some other package and style it. It also impacts designers and what they can do because it's not fun just assembling random UI library components and it's hard to know how much you can customize them as a designer to fit the project. We do still use libraries like Radix so that we get nice accessible headless components that we can control almost 100%, but fully styled libraries have been a pain point for us so we decided not to use them.
@SasLuca
@SasLuca 4 ай бұрын
Nice video, tho it is not clear to me how you deal with updates if you don't use libraries anymore. To me that seems like the main point of having these as libraries/packages. If there is a bug in one of these components I am copy-pasting, and they fix it in the meantime, how do I update? How do I know there is an update? Would have been interesting to see that talked about.
@Sammi84
@Sammi84 4 ай бұрын
I feel this is a symptom of this new iteration of web ui reaching maturity. People aren't worried about getting updates for their components because they feel they're already good enough. And things are understandable enough that fixing anything is something people are able to do themselves.
@JZL003
@JZL003 4 ай бұрын
I guess so but if you also end up modifying your copy a lot, it might not always be obvious how to integrate their new changes
@billcox6791
@billcox6791 4 ай бұрын
I work more on the backend so things are a little different, but, yeah, talking about this being “code you own” sounds like a nightmare There are times it’s frustrating to have to code around a bug or missing feature, but that’s missing the effort multiplying offered by packages If 100 companies use a package, it just takes 1 to identify a bug and the package to fix it for it to be fixed in 100 places With this, it has to be identified and fixed 100 times. They’ve in-sourced that maintenance My goal is to maintain as little code as possible. Sometimes that means building something small on top of a low level library, and sometimes that means building something big on top of a high level library So, this has its place, probably for smaller apps that won’t be adding much code this way Looking to the (near?) future, this will be viable for more projects when AI can own the app and its maintenance instead of just providing boilerplate
@JZL003
@JZL003 4 ай бұрын
I feel like they didn't even try, or maybe I'm misunderstanding Even if they encouraged you to add in npm a package which has no code, but could interact with other dependency management systems like dependabot. When the package updates it won't modify your code but at least it tells you something changed you might want to look at The ai tools are fine I guess, because you're taking ownership of the code as if it was your own. But will people?
@KaKi87
@KaKi87 3 ай бұрын
I'm wondering the same thing. Even if the CLI and website would offer some kind of merging tool, it would still be painful.
@filipesommer8253
@filipesommer8253 4 ай бұрын
Cool insights, thanks! But am I the only one doesn't buy into the "copy instead of npm install" thing? Shadcn depends quite literally on radixUI, which itself is installed in the background for you. I wonder how many files you would need to copy if we also wanted to let users copy vs. install radix into their components
@hariharansreenivas6752
@hariharansreenivas6752 4 ай бұрын
Yeah but with radix you only install a specific component not the whole radix library.
@michaelhildebrand-faust4039
@michaelhildebrand-faust4039 4 ай бұрын
Right?? I think the critical question is what level of aggregation is too much to have it done for you. What are the reliable "primitives" (to use an over-used term) that we should standardize on? Maybe ShadCN represents a better answer to the question than a lib like MUI. But I don't like the framing of "UI libraries are dying".
@alanscodelog
@alanscodelog 4 ай бұрын
Yeah I'm not buying it yet. I looked it up and I would have to digest what I copy PLUS the underlying radix dependency. And many components are broken down into a dozen little component parts which, for example, with vue, it's not a good idea to have a bunch of component instances like this. If they didn't have a dependency I would be more sold. But idk I'm not sold on ANY component library. They all suck in their own ways. At least I know how the ones I make suck, I guess.
@proosee
@proosee 4 ай бұрын
I think that frontend devs are going through all the problems IT had in the past and try all the solution that were already tried. I mean, there is nothing particularly bad about it - maybe previous generation of devs have missed something, maybe frontend is different from other software, but I kinda don't believe in it and will just go with approaches that are well established (in software engineering in general, not in frontend) and let them experiment on their own.
@filipesommer8253
@filipesommer8253 4 ай бұрын
@@hariharansreenivas6752 good point! I confess that I haven’t tried stuff like MUI yet to know if you can install a single component or not there
4 ай бұрын
With real projects, it's not about how quickly you can start, but how it will be maintained and developed. Second thing: a lot of indirect dependencies = hell of dependencies and problems for teams that have to use some common system design or library (for example: problem with tree shaking).
@anttihilja
@anttihilja 4 ай бұрын
The deps are Tailwind and Radix, pretty far from hell. It's your code, not a black box. How's that not maintainable?
4 ай бұрын
@@anttihilja but it will never be just only Radix + Tailwind.
@Dev-fo8zt
@Dev-fo8zt 4 ай бұрын
@ So you just build everything from scratch with vanilla js?
@anttihilja
@anttihilja 4 ай бұрын
@ If you don't like the other deps you can remove them, because it's your code. You rather have the deps a black box you have not control over?
@muslim8622
@muslim8622 4 ай бұрын
The purpose of this new "librarires" is to have full transparency and control about the code you add in your project. Every dependencies are explicitly specify and replaceable We add what we need, we modify what we want If the project end up into hell dependencies, it's just a skill issue like a developer that copy paste every from stackoverflow in his codebase without understanding what the code does
@Descent098
@Descent098 4 ай бұрын
Spent a lot of time in public sector and bootstrap is %90 of what they use. We had ~1k websites at the uni I worked at, all built in bootstrap. Likewise azures power pages is all bootstrap, which was their new site builder this year. I think it's easy to get caught up in the react world, and there bootstrap is less popular, but these ui libraries are honestly still growing, just in different markets than what you see Imo
@thagreatone402
@thagreatone402 4 ай бұрын
Exactly. Theo really lives in the react bubble. I'm a subcontractor for a lot of private international companies and I can tell u that bootstrap isn't going anywhere. Social media Web developers have a sickness for shiny toys.
@yabikami1165
@yabikami1165 4 ай бұрын
@@thagreatone402 just use vanilla css or tailwind ... bootstrap is dead
@zzkevinlim
@zzkevinlim 4 ай бұрын
everything is dying except facebook's products, am i right?
@matiasmiller6119
@matiasmiller6119 25 күн бұрын
React is going to be the new Java
@rapzid3536
@rapzid3536 4 ай бұрын
I also want to toss in that I think Vercel is a blight on the OSS ecosystem. They sell hosting, period. But their VC funds have allowed them to snatch up tons of OSS projects in an effort to control the narrative, acquire mind share, and steer development towards their business model.
@TheSaintsVEVO
@TheSaintsVEVO 3 ай бұрын
Does “blight” mean good or bad
@rapzid3536
@rapzid3536 3 ай бұрын
​@@TheSaintsVEVOcolloquially it does not
@megatronusv2215
@megatronusv2215 3 ай бұрын
​@@TheSaintsVEVObad. Disease
@user-qp2cn5py7f
@user-qp2cn5py7f 2 ай бұрын
@@TheSaintsVEVO It means bad
@TheSaintsVEVO
@TheSaintsVEVO 2 ай бұрын
@@user-qp2cn5py7f thanks
@pencilcheck
@pencilcheck 4 ай бұрын
I think it really depends on the person developing the code and who is managing it and what is the goal of the project. I would still use UI framework and library for developing UI in a foreseeable future for my projects.
@GetFitEatRight
@GetFitEatRight 4 ай бұрын
Or if you're already using bootstrap on a 5000+ page site. We just dropped jQuery from the entire website. In the long run he's right though.
@andythedishwasher1117
@andythedishwasher1117 4 ай бұрын
Javascript horoscope 2024: There will be many more meetings about which UI library to use and whether or not you should be required to build one.
@naughtiousmaximus7853
@naughtiousmaximus7853 4 ай бұрын
Javascript horoscope 😂😂😂😂
@system12dev
@system12dev 3 ай бұрын
HAAHAHHHAAHHA
@MisraPreetiman
@MisraPreetiman 4 ай бұрын
Governments around the world still use technologies like PHP and dotnet, still relying primarily on frameworks like bootstrap (almost all Indian govt websites). They are not going anywhere, yet.
@curtisw0234
@curtisw0234 4 ай бұрын
Dotnet is not legacy
@xtremescript
@xtremescript 4 ай бұрын
​@@curtisw0234Nor is PHP.
@Argomundo
@Argomundo 3 ай бұрын
You havnt touched PHP in a long time have you?
@veerasinghindia
@veerasinghindia 2 ай бұрын
@@justin.johnson Bootstrap if still popular outside India too....People are too much emerged in the react world, they refuse to see the simplicity of using Bootstrap....Imagine a major update in react, you have to again rewrite your application and creating builds....
@zekrodev
@zekrodev 4 ай бұрын
I also started building my first pages using UI libraries like bootstrap, and I learned a lot about CSS and general DOM styling by analyzing the classes bootstrap brings. Later on I used Material UI for Agnular, and there started my aversion to these UI libraries, because you sometimes want to style things in their components a little bit differently. And to to so, you either can't entirely or you need to perform some super ugly trickery (ng-deep, I hated it so much) to modify and customize these stuff. On the other hand, there are some very nice and highly customizable component libraries out there, but then you need to literally study their way how to style and modify their components. So I just started do build my own components using Styled Components for React, which is a wonderful solution to be able to build modular components which you can copy from one project to another.
@stunna4498
@stunna4498 4 ай бұрын
In my experience making your own styling components in real project makes things much worse. You want to ship your app as fast as possible. I can agree with you that these ui libs are sometimes hard to customize , but they give you everything that you need to start working on the application. What i suggest is pick a ui lib , try to customize it in a general way so all the other pages use the same components (ex : boostrap button btn-primary instead of blue is purple or modals) so everytime you use it you get the same for all components.
@tomtom2755
@tomtom2755 3 ай бұрын
@@stunna4498 Don't even get me started on accessibility... It's better to use an unstyled component library and fulfill 90% of your needs than to spend ages with a custom component library
@bloozy85
@bloozy85 3 ай бұрын
​@@stunna4498 Bs. Customizing ui libs takes longer, than writing own stuff you can expand on in your desired way. Building dependencies is always not a good idea for starting up a business. Also when i think of UI libs that get updated nearly weekly doing things differently over and over ... it is most of the time a better choice to do things yourself. I hate that full service mentality, where you give everything in others hands.
@stunna4498
@stunna4498 3 ай бұрын
​@@bloozy85 well i can only speak for my experience . for example in my company we use alot of mui .Some components are hard to customize but you eventually overcome it and do it. Now building it from the ground up is a waist of time. I had a colleague who was said the same thing and created multiple customized components. everytime there was a change he had to waist weeks to fix it and making sure it would work in every single place you used that. No need to tell you how that project went. Unless there is a very good reason to make a component from the ground up , in my opinion it's a waist of time. sorry for my bad english
@bloozy85
@bloozy85 3 ай бұрын
@@stunna4498 I think building components yourself can never be a waste of time, only because of the aspect of learning. If your companies dev, needs weeks to fix his own code, sry, then he is not a good dev :D But i see this a lot nowadays, devs can only copy & paste stuff and are not able to code basic things. And hey let's be honest, most of the UI lib stuff is basic stuff.
@vibrantneon.
@vibrantneon. 4 ай бұрын
Haven't done much react yet, I've been helping a friend with their project where they are mainly using Vue. I'm relatively new to the whole component UI structure and can see the benefit that it's more templated components that get created. Helpful video, and understand your point of view.
@reed6514
@reed6514 4 ай бұрын
I haven't used any such library at length, but i did a couple prototypes with vue and it was nice.
@AndrewBone
@AndrewBone 4 ай бұрын
What are your thoughts on react aria components from Adobe?
@oziabr
@oziabr 3 ай бұрын
I would really like to know what practical stuff can you make with any of your tools that I'm not able with pug+bootstrap. I've been asking around for some time, but haven't got any answers worth a second thought
@lakelimbo
@lakelimbo 4 ай бұрын
I like Shadcn-ui, and use it a lot (well, shadcn-svelte more specifically), but it only works with frontend frameworks, when I'm not doing that, IMO Bootstrap (or Bulba, whatever) is still the better option simply by the fact that I can customize it SCSS, or I can just drop the CDN link in the and don't need to worry about anything else.
@joshuagalvan7260
@joshuagalvan7260 4 ай бұрын
Big upvote from me. This game me a lot of useful tools to use. I've never been sold on the traditional component libraries and enjoy having full control over the component myself and would spend time recreating components just to have them in my project and be fully curated by me. I love this approach and will be adopting this.
@galgrunfeld9954
@galgrunfeld9954 4 ай бұрын
Some components are made of what could be considered as parts or sub-components, e.g for a search box - a text box and a search icon. But let's say I want to change just the icon with some other part. With a component library I'd be limited to a prop, or doing manual work. How would something like this save me the work of needing to understand/work with the whole component? Or do I not need to?
@Imaginativeone_DF
@Imaginativeone_DF 3 ай бұрын
It’s been far too long since I’ve seen you. I’m so glad to see your work again.
@kennyPAGC
@kennyPAGC 4 ай бұрын
My app is 10 years old with legacy jquery code I am in the process of rewriting. We don't have the resources for a full reimplementation in modern js technologies, but I wonder how feasable would it be to start writing new front end code with react (and in turn adapt the backend)? How much of a mess of traditional js code + react code would it turn out to be? How can both parts integrate?
@HumanoAI
@HumanoAI 4 ай бұрын
Very easy with AI now, To resolve broken code, assuming you know terminology and how things work. That’s the key knowing how to ask, prompting, you can’t ask if you can’t explain it in technical terms. So knowing the languages in your stack is very important.
@JEsterCW
@JEsterCW 4 ай бұрын
The only one lib that I'm using is NextUI, shadcn is highly overhyped, basically poor overlay on top of radix, which is unwanted abstraction, still better to just use vanillia radix. I overall would make all ui components from scratch, but i dont wanna spend to much time for every common ui component cuz i want to deliver functionality. Normally i still would make a design system with ui, but ui libs like shad are only good for smaller projects.
@Tanner-cz4bd
@Tanner-cz4bd 4 ай бұрын
NextUI is great
@JEsterCW
@JEsterCW 4 ай бұрын
@@Tanner-cz4bd Yup, it has kinda wack apis in some components, but its toleratable, all other ui libs that i have used in the past i had to quit after 3 days cuz how awful the api was with dx
@HikaruAkitsuki
@HikaruAkitsuki 4 ай бұрын
I first using Bootstrap when I was using just plain HTML and CSS. But when I trying to starting to switch on react, I realized that it is more logical to built component by my self rather to relay on CSS framework. One more thing that some React UI problem is it's not gonna work on other framework using React. Lets say Headless UI doesn't run on next because of webpack.
@zlatkoiliev8927
@zlatkoiliev8927 4 ай бұрын
I very much agree! I even think this will soon become the new web standard, maybe in HTML6-7. I really hope we will have native components that look more modern, support light and dark mode, and the api allows to be styled better. For example the input select, date picker, checkbox, radio buttons. Those are all really annoying to be styled.
@HumanoAI
@HumanoAI 4 ай бұрын
Yup, there are two things websites which you guys like to call Web apps or some of you call them apps. Anything running from the browser is a website regardless of what type of website it is. Even if you’re running logic on the back end, it’s a website on a browser. Native Apps now that’s a different beast, that need better UIs or the ability to js and css directly on them. Then we have the fact that many libraries make end products look like clones, which happens by default because rarely do we have a new component we haven’t seen. UI for Native APPs or better css support without stacking frameworks.
@Adjilino
@Adjilino 4 ай бұрын
I used and loved, but faced an downside if the component have some bug is hard to follow the fix
@andybrice2711
@andybrice2711 4 ай бұрын
What might also be useful is if we could try and settle on a fairly standard API for these common components and UI patterns. So you don't have to learn a different HTML structure with different tag and attribute names for each UI library.
@zebedie2
@zebedie2 4 ай бұрын
radix-ui feels close to that, there are implementations for react and vue at least
@alecdowning2520
@alecdowning2520 4 ай бұрын
I feel like these solutions offer both! The HTML structure will never be identical, so you can copy in the HTML structure everyone knows. And with shadcn, you can use name the exported components however you like.
@JosueRodriguez08
@JosueRodriguez08 4 ай бұрын
Webcomponents already exist, lol
@andybrice2711
@andybrice2711 4 ай бұрын
​@@JosueRodriguez08 That's not really what I'm talking about though. Web Components don't define a standardized syntax for declaring common GUI elements like (for example) accordions, carousels, and calendar views.
@proosee
@proosee 4 ай бұрын
@@andybrice2711 the problem is that no one knows what is "the right" way to go with this and people argue about it, thus: different approaches. Some die, some keep living, but there is no consensus and I don't think there will be soon. If something is well established then it becomes the part of HTML, but that's quite rare - you already have and no one use it.
@MichaelLazarski
@MichaelLazarski 4 ай бұрын
1) I want to see the upgrade path of these new "build your own component libs" tools. I have not seen an automatic way of doing it 2) None of these tools right now has good editable tables. Which is one of the hardest things to get right if you have bigger tables. 3) I can see the push back to solutions of tailwind because of the 1) and how hard it is to upgrade your large codebase. Its just a matter of time when more and more people will run into this problem.
@kubakazimierczak6646
@kubakazimierczak6646 4 ай бұрын
Can you elaborate more on "how hard it is to upgrade your large codebase"? I don't think I understand this point.
@MichaelLazarski
@MichaelLazarski 4 ай бұрын
@@kubakazimierczak6646 When you have a large codebase with a lot of components and you use for example the color green you now must go through every component and check if this is that green (okay simple search) and check if that green would need to be changed. What we have done we went for example from "colors" to intent with css vars. So instead of saying class="green" we have class="success". This also helps with theming. The other problem is with breaking changes in tailwind and how things work together. This with the combination of "copying someone elses code into your code base and then extending it" is nothing new and was already not very maintainable back in the days were you would buy component libs from vendors.
@peteredmonds1712
@peteredmonds1712 4 ай бұрын
alpine also quietly launched their own headless components products recently, its really powerful. worth looking into for the vanilla-js pilled
@riman8493
@riman8493 4 ай бұрын
Recently started a new project at work and went with Radix and StyleX from the bottom. Been loving it so far!
@mickolesmana5899
@mickolesmana5899 4 ай бұрын
i have a great time with Shadcn, unlike other UI libraries, IT EASILY expands and modifies the components, and it sits perfectly in the middle. It is easily modifiable like tailwinds but also has a great just-get-go component like MUI. The only gripe is when you tried modified the underlying radix part, but that's kinda my problem not the shadcn itself
@CodyIddings-Makeshapes
@CodyIddings-Makeshapes 3 ай бұрын
Can you please update this video with your thoughts on Aria vs Radix? It seems like Headless UI will no longer be supported
@Sindoku
@Sindoku 4 ай бұрын
I wish you’d talk about Chakra UI sometime. It has a ton of features that scale from small to large projects. Everything any other lib can do, Chakra can also do. You can make your own component library with it as well.
@magne6049
@magne6049 4 ай бұрын
Chakra can’t avoid having a runtime. That’s why they built Panda to replace it. Also, Chakra doesn’t work crossplatform (React Native plus web). But Tamagui can.
@code.smiles
@code.smiles 4 ай бұрын
He has talked about Chakra before kzbin.info/www/bejne/eYLYhXljl9CCncU
@heoTheo
@heoTheo Ай бұрын
Any advice to get better at building the UI from a Figma? I’m working on this and I’m so slow on it. How do I get better?
@XxlolktkatxX
@XxlolktkatxX 4 ай бұрын
What do you think about Next UI? I love using so much
@Sorkstryparen
@Sorkstryparen 4 ай бұрын
Agree!
@for-pete-sake
@for-pete-sake 4 ай бұрын
I am looking for a library like shadcn for react native, is there any ?
@geochampapp
@geochampapp 3 ай бұрын
Are there any unstyled component libarries for angular?
@nic_s3385
@nic_s3385 4 ай бұрын
I've used bootstrap and material in the past, but although it was great getting started I usually ended up not using most of the library and also ended up overriding a lot I was using. Another thing I realized was that I actually needed very little CSS in the first place. So a couple of years ago I started a new project and decided to not use anything and just roll my own CSS from scratch. Not only did I end up with something incredibly lightweight, but I learned a lot in the process. With the use of some CSS variables I could also change the colors quite easily and so create themes for different clients. It was simple, it was fast, and it's just basic CSS with no build step.
@edindurak2042
@edindurak2042 3 ай бұрын
Did you use plain CSS or modified it with SCSS ?
@noirpi
@noirpi 3 ай бұрын
That's the perfect example how to NOT use bootstrap... That way its sure way easier then rebuilding the whole needed css by yourself... cause who wants to have some extra work to make the own code look clean... I used Bootstrap, MaterialUI and a bunch of other stuff... and NEVER ever had i touched the bootstrap stuff... i wrote my own shit or i used what i got there... But changing Bootstrap Stuff or Library Stuff always sticks you to that specific version... and i hate everyone that make me fiddle that shit out later.... Its a mere horror to do so cause sometime somewhere need to split this shit again...
@PerryWagle
@PerryWagle 3 ай бұрын
How do you upgrade or (say) security patch the code that you have inlined? Grabbing snapshots of a moving target, and, in that way freezing it becomes a nightmare. Been there, done that.
@PerryWagle
@PerryWagle 3 ай бұрын
@@keyboardtapper I dunno, input sanitization? imgs.xkcd.com/comics/exploits_of_a_mom.png Trojan horses?
@CottidaeSEA
@CottidaeSEA 4 ай бұрын
I think this has more to do with the necessity to make changes to UI components and not being strictly bound to the limitations of the library. It's not so much that the libraries are not useful.
@margueratube
@margueratube 4 ай бұрын
I think it would be nice to have a native way to customize the look and feel of the checkboxes and select field. I really gussed by the title of the video that it would be something on this direction :(. Other than that I don't see those UI frameworks dying, I would say that we can maybe see they migrating to this same path.
@RevoSW
@RevoSW 3 ай бұрын
When it comes to stylable select fields and checkboxes, I hope the work that the people behind open-ui do eventually comes to life
@Toberumono
@Toberumono 3 ай бұрын
That’s… that’s just CSS. Like… literally. That’s what CSS is for.
@leroviten
@leroviten 4 ай бұрын
I wish combobox was for “selecting multiple things at the same time” though. Had to implement my own thing with Command and popover
@0M9H4X_Neckbeard
@0M9H4X_Neckbeard 3 ай бұрын
If you make your components git submodules you can still version, pin and update them in a central place if you want to reuse them across many projects
@falasefemi3344
@falasefemi3344 4 ай бұрын
The vercel UI library is it free?
@seppoayravainen
@seppoayravainen 4 ай бұрын
If the shadcn/ui devs improve one of their components, how do you bring these improvements into your own (possibly modified) codebase? Just go through the changes one by one and copy-paste?
@michaelmcglynn968
@michaelmcglynn968 3 ай бұрын
Yeah this seems like the biggest thing to me. How do you "upgrade" a component made like this? Whether for new features or bug fixes?
@umitcelik5508
@umitcelik5508 3 ай бұрын
What about React Native? Is there any stable component libs for RN?
@Dorchwoods
@Dorchwoods 4 ай бұрын
I love the concept, but i don't seen this working at enterprise companies out in the real job market. To me, design systems built with web components make the most sense at large scale. Big companies typically have multiple, silo'd teams, but upper management always wants a consistent UI across all products. Since most product teams at enterprise companies ive worked at have significantly different tech stacks, it would be impossible to align on using react only. Web components really shine as UI libraries in my opinion and they're only getting better
@jonnielappen5916
@jonnielappen5916 4 ай бұрын
design systems will stay. you need components. it's a good experience. shadcn covers what brad frost calls recipes
@Dorchwoods
@Dorchwoods 4 ай бұрын
@@jonnielappen5916 yep for sure. UI's that are composed up of smaller components. We create recipes as stackblitz examples where I work and have had a lot of success with them.
@bennguyen1313
@bennguyen1313 3 ай бұрын
Can shadcn , v0 dev by Vercel , tailwind ui or Radix ui generate Flutter code?
@felixmervamee7834
@felixmervamee7834 3 ай бұрын
What would this mean for "code you own" when it is so similar to many other projects'? Couldn't it cause issues when the first ones to use the tool accuse the others of plagiarism? Is the code (or should it be) generated somehow under a special open source license to avoid such claims?
@garybenade
@garybenade 3 ай бұрын
with this cloned version of their code at a point in time in your code base that you can change at will how will updates work? npm update and npm upgrade are awesome
@31redorange08
@31redorange08 4 ай бұрын
I'm starting to learn Bootstrap. It seems to be alive and well.
@lechprotean
@lechprotean 3 ай бұрын
yeah, do'n't listen to some bs that is just to attract views and discussion. Stick with proven and popular tech - Bootstrap, maybe React later
@31redorange08
@31redorange08 3 ай бұрын
​@@lechproteanTheo is a junior to me. I just occasionally watch for inspiration. I have already worked with React for a few years, but never really got into CSS.
@eamax
@eamax 3 ай бұрын
If you are just starting out, this discussion is not for you!
@31redorange08
@31redorange08 3 ай бұрын
@@eamax Why?
@Ivan-Bagrintsev
@Ivan-Bagrintsev 3 ай бұрын
@@31redorange08, you need to learn at least something before you can understand what is good for you
@smooth1x
@smooth1x 3 ай бұрын
Sure coping the code into your project and modifying it is easier and gives more control in the short term but a) do you really need your controls to be THAT different from everyone else? A radio button is a radio button, a text box is a text box. And when fixes/enhancements are applied to the code you copied, how do you pick them up?
@TigreXspalterLP
@TigreXspalterLP 4 ай бұрын
pls stop shilling for vercel
@mkmalikcom
@mkmalikcom 4 ай бұрын
Let's hope your comment will not be deleted.
@JZL003
@JZL003 4 ай бұрын
How do updates work?
@SebastianGrant-lj4qq
@SebastianGrant-lj4qq 4 ай бұрын
How do we get rid of the auto import from radix? It's literally my only gripe with this magical creation.
@voidmind
@voidmind 4 ай бұрын
Personally, I'm interested in UI libraries, but the reason I generally don't use them is that on most projects, I only need one component from it. That's usually fine if that's all, but what if I need one widget from UI library X and one from UI library Y (if not more). I'm now importing from big code bases that work differently, potentially add a lot of code to my bundle size, use different styles I have to customize, etc. I find that Bootstrap is another category than these component libraries, though. The main reason to use is to do responsive UIs without having to figure out the CSS for it yourself. That's still valuable for junior devs who have enough things to learn on their plate beside wrestling with the intricacies of CSS or Tailwind. But once you understand CSS Grid and container queries, responsive frameworks like Bootstrap feel like they add too much markup to your code.
@orcofnbu
@orcofnbu 3 ай бұрын
if you own component code base that means you are responsible from maintaining that codebase too. if you manipulate them in a significant way, that means you need to test it from start like you build it from scratch. i'm using ul library because i do not want to maintain frontend code. most of the time i just need basic styling and basic styling does not need maintain. i dont think this will replace bootstrap.
@proevilz
@proevilz 4 ай бұрын
But its still pulling in Radix as a dependency, so it's only slightly less removed on the normal model of pulling in a traditional UI library. Can't help but feel it's a sleight of hand trick.
@HumanoAI
@HumanoAI 4 ай бұрын
In minutes you can deduct this. It was a “kinda”…
@PHAL__
@PHAL__ 10 күн бұрын
Every couple of months I came back to watch a new Theo video, and every time the whole front-end ecosystem is dying and being reborn into something that will die in another couple of months. It's tiring
@Astrovic1
@Astrovic1 7 күн бұрын
didnt think this would just be an hidden advertisment video for a new technology :'D you got us viewers;)
@josevsebastian2909
@josevsebastian2909 4 ай бұрын
Is there a version that doesn't use tailwind? Css is a mess, and i don't want that mess in my ts files; it needs to stay where it should: in css.
@alapottrachakma4706
@alapottrachakma4706 6 күн бұрын
"css is a mess" that's why I use tailwind tbh
@MarthinusBosman
@MarthinusBosman 4 ай бұрын
Ok, new html spec gets introduced after you've customized it like crazy, how do you update it?
@jamesauble8091
@jamesauble8091 4 ай бұрын
Does shadcn still blow up your existing tailwind.config.js?
@GigaFro
@GigaFro 3 ай бұрын
Anybody have a favorite library for a combobox that is multi-select and displays the selected values below as badges with little x's for removal?
@kevin_nielsen
@kevin_nielsen 3 ай бұрын
Can't agree more. The unstyled component libraries with Tailwind are awesome to work with. You get awesome functionality with complete control on the styling. 🎉
@Ma1ne2
@Ma1ne2 23 күн бұрын
This was insanely interesting. Thanks for sharing your thoughts.
@dasturchiukkikundaligi2810
@dasturchiukkikundaligi2810 4 ай бұрын
will there be vue support?
@svp3g
@svp3g 2 ай бұрын
Not sure on your take here. This example is dependent on Tailwind UI library / Tailwind core CSS. How is that different to loading in and extending Bootstrap in the same way?
@Bartek-ll3dh
@Bartek-ll3dh 12 күн бұрын
Which theme do you use?
@zaabimahdi
@zaabimahdi 3 ай бұрын
I dont undrestant when they say, you don't need to install the component as dependency ... But shadcn cli when executed, it install the radix ui component as dependency ... Am i wrong ???
@ThurstanHethorn
@ThurstanHethorn 3 ай бұрын
I can help but feel that the various libraries add a chunky layer of guff that is no longer required with evergreen browsers and modern possibilities of css3 and html5. Sure there was a time before flex and grid were widespread and layout was a nightmare or css lacked variables to enable global changes, but those days are gone. yes there are irregularities and lag with features, but a polyfil usually exists and becomes obsolete when features are at parity. Am I missing something? Does not letting go of legacy and learning fundamental web dev afresh negate many of the issues these libraries addressed?
@stoogel
@stoogel 3 ай бұрын
People need a combobox, style-able select, listbox, etc. The native HTML elements are not capable of it
@user-xk1fg9iv6k
@user-xk1fg9iv6k 3 ай бұрын
What theme do you use ?
@Mitsunee_
@Mitsunee_ 4 ай бұрын
the big problem with shadcn/ui is that I cannot use it since I do not use tailwind, so I'd have to recreate styles myself and at that point I might as well just stick to Radix
@k00k
@k00k 2 ай бұрын
Is there a non-react version or competitor?
@brunoais
@brunoais 4 ай бұрын
5:00: v0 doesn't seem to work. They want a phone number and then reject when I give it (not USA)
@brtk7
@brtk7 3 ай бұрын
Does Angular have anything similar?
@sadkebab
@sadkebab 4 ай бұрын
The only minor thing that I don't like about shadcn/ui is that the style is a bit too tech-ish by being so minimal and requires some work to make the style fit to a less tech corporate aesthetic. But I guess with time they will add enought customization options for this kind of requirement.
@readywhen
@readywhen 4 ай бұрын
Isn't the whole point that it's unstyled/neutrally styled and you style it according to your brand? I hate presets, they never fit the brand, and customization is mostly done through super basic css, most of which is inherited anyways
@sadkebab
@sadkebab 4 ай бұрын
​@@readywhen yes, what I am saying is that if the branding is not going towards a tech aesthetic, as it is, you will need to do quite some work to adjust it and I wish there was an easy way to adjust it, don't care about presets at all
@EdwinMartin
@EdwinMartin 4 ай бұрын
@2:06 Nice to see tailwind code in practice instead of some small tailored piece of code. How is this tailwind code any better than separate CSS?
@HumanoAI
@HumanoAI 4 ай бұрын
Thank you. That’s what I’m saying, sometimes stacking classes becomes longer than typing the raw CSS, and if you been around you should have some classes that are used a lot. Is there native support for tailwind ? Or what makes it such a go to?
@eltreum1
@eltreum1 4 ай бұрын
That's the best part, it isn't.
@Ivan-Bagrintsev
@Ivan-Bagrintsev 3 ай бұрын
I believe the main purpose of tailwind / windi / unocss is to eliminate the necessity for class naming for css
@wcrb15
@wcrb15 4 ай бұрын
I've kept my eyes on shadcn for a while and I'm excited to play with it.
@mestoris
@mestoris 3 ай бұрын
Copying code into my project for the express purpose of customization makes me so nervous. Whenever I am forced to do this, I try "git subtree" magic to track local changes so I can still apply patches from upstream. This lacks any of that.
@thegrumpydeveloper
@thegrumpydeveloper 4 ай бұрын
Have enjoyed shadcn so much. It’s like how I would have wanted a ui lib that I could move from project to project but customize as needed. It’s so strange to see other libs debate which subset of css to provide via props like p= and px= when this is all solved by providing a className and allowing utility classes. With that the entirety of css is available.
@makeitreality457
@makeitreality457 3 ай бұрын
As someone who sticks with own code, plain HTML/CSS as much as possible, UI libraries couldn't go away soon enough. But standard UI components should be built into HTML. For the most part, they are. I write my code to be standards-compliant and simple. Generating all the extra stuff, such as sitemaps, rss feeds, menus, fancy widgets from that on the fly. That way, if visitors don't have Javascript, or have an old browser, it still works the way I designed it.
@minma02262
@minma02262 6 күн бұрын
Jesus will be impressed on the resurrection skill set.
@dannyprudhomme
@dannyprudhomme 4 ай бұрын
Sadly i started a project with MUI and now it's too late. 😭
@JedHelmers
@JedHelmers 4 ай бұрын
I've been suggesting the copying of code outside node_modules for years, but leads I've worked with want nothing to do with it. Super frustrating
@Jenkkimie
@Jenkkimie 3 ай бұрын
I think it's good. I'm a new developer who learnt UI with Bootstrap. But few things that have always irked me with it is that I get a bunch of components I don't need in my applications and it can be sometimes clumsy to do your custom component styling. Seems like this is a much lighter and flexible method for future UI.
@glorrin
@glorrin 4 ай бұрын
I am sorry I failed to understand the difference between installing radix or a component from another component library. Don't get me wrong I love radix and how easy it is to use and transform to fit the design. But saying we are no longer installing component libraries instead we are installing radix, this is the part I don't understandd.
@duartecunhaleao
@duartecunhaleao 4 ай бұрын
It's just lower level, and otherwise jist an abuse of language to say you're not uaing a UI library anymore.
@HumanoAI
@HumanoAI 4 ай бұрын
It’s a kinda sorta but not really solution. Coincidentally a radix problem was what I initially ran into, I believe it was the carousel. Keep in mind I installed a fresh react just to test shadcn, followed the instructions, had to watch a tutorial by an end user to get it to work, which included some tweaks not in the tutorial. Personally I keep asking myself should I just code it from scratch because this is more about fixing breaks that coding. The idea is good but they don’t flow at fast speeds. AI can now generate the js, and backend. OK time to try another UI then watch it break and have to break my head to make one button sample work. Then on to the next UI I must test them all. I’m UI greedy! It’s an illusion for the most part, of feeling like you’re up to date, but rarely is a new component created.
@gappalchemist
@gappalchemist 4 ай бұрын
Before, I didn't want to use component libraries, but I didn't know how to express why. However, the first time I used Shadcn, I understood.
@chun-lunlin7397
@chun-lunlin7397 2 ай бұрын
I hope it provide more flexible styling tool other than tailwind.
@ravikumarmistry
@ravikumarmistry 4 ай бұрын
It is a maintenance hell. Do not fall for it.
@ChristmasLights2
@ChristmasLights2 4 ай бұрын
Predicting what front end libraries will die or will become popular feels like astrology for nerds. I like learning all these new things, and shadcn/ui loos great, but I bet I’ll still be running into bootstrap or material up for a while to come.
@joaquinbonifacino6964
@joaquinbonifacino6964 4 ай бұрын
Is this supported for angular?
@vasy4321
@vasy4321 4 ай бұрын
how is this glorified copy-pasting better? updating will be much harder than running npm update, especially if we make big changes to the original component and then have to merge them I understand having more control is needed sometimes, but most of the time, I want to be abstracted away from library code we need libraries that have both options: 1. they are npm installable 2. they have a copy source button (for the rare cases when I want to change the component source significantly)
@asimpleguy2730
@asimpleguy2730 4 ай бұрын
A component library, especially when battle tested like Radix, will require much less update than customizations, so copy paste it's a good tradeoff IMO
@rand0mtv660
@rand0mtv660 4 ай бұрын
"updating will be much harder than running npm update, especially if we make big changes to the original component and then have to merge them" -- if you make big changes to the original component, why would you be interested in updating that component from source again if you had to heavily modify it in the first place? It means you didn't really need the original implementation as it was. These copy-paste libraries are used as a good starting point that you can take almost full control over and are not at the mercy of the maintainers of the project to implement something and you can adjust them and do your own additional UX if that's needed.
@KhalidKhan-xq5xp
@KhalidKhan-xq5xp 4 ай бұрын
I initially opted for Shadcn UI in developing our laboratory management app, but unfortunately, I found it to be less than satisfactory. While it boasts an appealing aesthetic, I encountered numerous instances where I had to handle many aspects manually. My preference lies in leveraging a component library that is not just visually pleasing but also comes pre-equipped with almost everything I require, sparing me the need to build components from scratch. After grappling with several challenges, I decided to integrate Mantine into our app. Mantine, with its comprehensive feature set, turned out to be the solution I was seeking. Now, I seamlessly combine Mantine with Tailwind, and the synergy has resulted in a remarkably positive development experience for our project.
@haha-eg8fj
@haha-eg8fj 3 ай бұрын
Thanks I have a look at it and it is pretty cool. I think Shadcn-UI also satisfy my needs but I did need some adjustments because the underlying component they use are sometimes not adequate.
@danhiester9034
@danhiester9034 4 ай бұрын
If the engineering team exercising more ownership over UI code means the company as a whole exercises more ownership over the look and feel of the UI, this has the potential to be something great. I think a lot of teams tend to see "a good start" as "a good final product," but hopefully this style of UI library will help encourage teams to grow beyond square one.
@MirkoVukusic
@MirkoVukusic 4 ай бұрын
Im surprised you haven't mentioned Tailwind Catalys which is in developer preview. It perfectly confirms your vision. One more similar tool emerging
@Tonaldo90
@Tonaldo90 4 ай бұрын
Indeed, challenges Shad
@chrisdaman4179
@chrisdaman4179 4 ай бұрын
They don't pay him vore then vercel does. He is a giant billboard KZbinrs with no opinions, only invoices.
@MirkoVukusic
@MirkoVukusic 4 ай бұрын
@@Tonaldo90 , yes exactly. I love Tailwind and skipped Shadcn mosly because of Radix. Catalyst uses their headlessui, which I already use for some stuff in tailwind ... so Catalyst looks really promising for Tailwind users.
@tvujtatata
@tvujtatata 4 ай бұрын
@@chrisdaman4179 How much do they pay him?
@etzbetz
@etzbetz 4 ай бұрын
I will probably always stay at building this stuff myself 😅
@blinking_dodo
@blinking_dodo 4 ай бұрын
I have always been avoiding libraries whenever i wanted a quick webpage to test things. Just staying with plain HTML/CSS/JS.
@HumanoAI
@HumanoAI 4 ай бұрын
Now is the best time for this, because you should know how to make tweets and know your terms to have AI assist you in coding heavy js logic. HTML and css is simple. Goes further and databases are now easy too.
Responding To The Tailwind Conspiracy
37:25
Theo - t3․gg
Рет қаралды 73 М.
JavaScript Framework Tier List
40:57
Theo - t3․gg
Рет қаралды 274 М.
Normal vs Smokers !! 😱😱😱
00:12
Tibo InShape
Рет қаралды 30 МЛН
[Vowel]물고기는 물에서 살아야 해🐟🤣Fish have to live in the water #funny
00:53
YouTube's Biggest Mistake..
00:34
Stokes Twins
Рет қаралды 65 МЛН
How Senior Programmers ACTUALLY Write Code
13:37
Healthy Software Developer
Рет қаралды 1,3 МЛН
Why Doesn’t Everyone Use This Animation???
23:59
Theo - t3․gg
Рет қаралды 85 М.
The case against htmx
6:21
Mark Jivko
Рет қаралды 9 М.
This UI Library is a GAME CHANGER! (Not Lying)
20:48
Harkirat Singh
Рет қаралды 245 М.
The Most Important Lesson From HTMX
10:01
Theo - t3․gg
Рет қаралды 143 М.
The Problem With UUIDs
25:53
Theo - t3․gg
Рет қаралды 133 М.
Never install locally
5:45
Coderized
Рет қаралды 1,6 МЛН
The purest coding style, where bugs are near impossible
10:25
Coderized
Рет қаралды 829 М.
Using docker in unusual ways
12:58
Dreams of Code
Рет қаралды 378 М.
98% Cloud Cost Saved By Writing Our Own Database
21:45
ThePrimeTime
Рет қаралды 234 М.
Why spend $10.000 on a flashlight when these are $200🗿
0:12
NIGHTOPERATOR
Рет қаралды 17 МЛН
#Shorts Good idea for testing to show.
0:17
RAIN Gadgets
Рет қаралды 3,5 МЛН
Пленка или защитное стекло: что лучше?
0:52
Слава 100пудово!
Рет қаралды 1,6 МЛН
❌УШЛА ЭПОХА!🍏
0:37
Demin's Lounge
Рет қаралды 335 М.