Тёмный

Build a Reusable Component in React (Shadcn/ui, Tailwind) 

Cosden Solutions
Подписаться 87 тыс.
Просмотров 20 тыс.
50% 1

🚀 Project React → cosden.solutions/project-react
Join The Discord! → discord.cosdensolutions.io
VSCode Theme | Font → Material Theme Darker | Menlo, Monaco "monospace"
In this video we will be building a component in React that is similar to shadcn/ui. We will be using tailwind, cva (class-variance-authority), and clsx for this. The component will be reusable, customizable, and will be a simpler version of what shadcn/ui offers. Through this video you will learn how to build production ready UI components that you can use in your projects. You'll also be able to easily understand shadcn/ui's components and integrate them in your own project!

Опубликовано:

 

12 мар 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 53   
@51Grimz
@51Grimz 3 месяца назад
What a quality video! It is great to show how to make reusable components built on top of base html elements. I like the little things like the smooth mouse movement.
@Farruh_13
@Farruh_13 3 месяца назад
Please make a video demonstrating how to animate components on mounting and unmounting without any animation library, like shadcn ui does. Shadcn ui animates components with tailwindcss-animate plugin, by using data attributes.
@design-with-hannah
@design-with-hannah 3 месяца назад
Great video with a ton of free value on React. And being in the design space, I love Tailwind. I can tell you'll be at 100k subscribers soon, the helpful content and production is on point🚀👏
@cosdensolutions
@cosdensolutions 3 месяца назад
thank you for the kind words!
@mohammadkhosrotabar2215
@mohammadkhosrotabar2215 3 месяца назад
I really needed this, thank you so much!
@samahgad241
@samahgad241 3 месяца назад
Easy to follow, thanks aalot Cosden❤
@utibeabasiekpenyong7231
@utibeabasiekpenyong7231 2 месяца назад
If I keep watching your video I bet it I would be a senior developer soon, You teaching procedure is top rated
@ronaldos3738
@ronaldos3738 28 дней назад
Great job dude, new subs, thanks for the knowledge
@eca8799
@eca8799 3 месяца назад
amazing explanation thank you so much
@medas4923
@medas4923 3 месяца назад
Instead of copying the buttonVariant type to the props, you could infer it with the help of VariantProps like this: VariantProps and you won't need to touch props ever again, even if you later decide to add an additional variant or a new class.
@samrat_malisetti
@samrat_malisetti 2 месяца назад
High level stuff ❤
@demicoderr
@demicoderr 3 месяца назад
I'm really anticipating Project React! I really pray it is affordable.
@nemeziz_prime
@nemeziz_prime 3 месяца назад
This amazing 🔥 Could you also do a video where you show how one can make their custom production ready UI component library using Storybook, Tailwind and say Shad CN UI?
@EnesKab
@EnesKab 2 месяца назад
Hey Darius ! That's a great one as usual ! Can we also make a video combining this with an headless UI like Radix? So we can fully understand how to develop our very own library and components from scratch with primitives. I know you already explained the tricky part here, but you know newbies like me, we all ask for more... 😄 Btw I have checked Project React and it seems really promising. What kept me back for that course is the lack of NextJS. I know the importance of a good React knowledge to work comfortably with NextJS, but also we all know that NextJS is something else. It has it's own interesting and tricky parts like caching for example. So, if you could add NextJS into the pack as an extension, that would be great ! On the other hand it is a great decision to keep the TypeScript out in the course ! Thank you for that
@TheIlkzz
@TheIlkzz 3 месяца назад
Is there a way to do the merge with other component/css libraries? I like this setup but we don’t use tailwind at work for example. We use bootstrap so would be awesome to do something similar
@kaswanpradeep
@kaswanpradeep 3 месяца назад
Can you do one for input element, as it has different types, it would be really awesome if you do it.
@nurpaisorozulbaev7451
@nurpaisorozulbaev7451 3 месяца назад
Great! Thank you! Do you have any typescript tutorials?
@cosdensolutions
@cosdensolutions 3 месяца назад
not directly, but all my videos are in TS
@psrs985
@psrs985 20 дней назад
why cant we use clsx directly instead of cva
@navaneeth9103
@navaneeth9103 18 дней назад
how to setup cli install
@julienheng3880
@julienheng3880 21 день назад
can you achieve this without typescript?
@hithere7145
@hithere7145 3 месяца назад
wht your take on nvidia's ceo statement
@antsii
@antsii 3 месяца назад
Should've used forwardRef to be able to pass ref?
@cosdensolutions
@cosdensolutions 3 месяца назад
yeah I could've, but given that it's going to be deprecated, I decided to leave it out. It's easy to add it if needed
@heysahilsingh
@heysahilsingh 3 месяца назад
I was expecting something different, as this component is too easy to create. I think a dialogue box, a card or something would be better. But still, m gonna like this ❤️
@cosdensolutions
@cosdensolutions 3 месяца назад
fair point! thanks for the feedback ☺️
@fabianpetersen2452
@fabianpetersen2452 3 месяца назад
The principle will be the same though,..if you can understand this you will be able to do it for any other component
@cosdensolutions
@cosdensolutions 3 месяца назад
that was the idea, yes
@sae4622
@sae4622 3 месяца назад
What is difference of using HTMLAttributes and ComponentProps?
@cosdensolutions
@cosdensolutions 3 месяца назад
not much, I usually use ComponentProps but shadcn uses HTMLAttributes so I decided to use those too!
@somtechnology1811
@somtechnology1811 3 месяца назад
can you make a full project using React and taliwaindcss
@cosdensolutions
@cosdensolutions 3 месяца назад
That's what Project React is all about 😁
@d1zzy155
@d1zzy155 3 месяца назад
Whats difference between HTMLAttributes and ComponentProps
@ShivaprasadBilgundi
@ShivaprasadBilgundi 3 месяца назад
can give any idea on the pricing of the course?
@cosdensolutions
@cosdensolutions 3 месяца назад
details are coming most likely next week!
@sahibibadov
@sahibibadov 3 месяца назад
react-twc + tailwind-variants the best.
@bugraotken
@bugraotken Месяц назад
Hello Darius, thank you for the video but there is a little problem here. You said that you will provide a repo but there is no repo so I have created my own project with tailwindcss and vite. But the thing is since I was writing the code like you do, there is no color at buttons and I have been looking for 20 mins to find the solution. Finally I found that you typed "from-primary-500 to-primary-700" but since I don't have your repo and I created a project myself, there is no primary color at my project. Oh man, there is nothing wrong with "not sharing a repo" it's totally fine but please next time if you don't provide a repo, pls at least show us all the "non default" things you do in your project like defining primary color for your tailwind.config.js file or just go with default settings so any people who is following your code and create their own projects cause you don't provide one, don't have issues like this =)
@islambn8962
@islambn8962 3 месяца назад
what about ref ? Great content tho 🎉
@cosdensolutions
@cosdensolutions 3 месяца назад
You can pass it through props! ForwardRef is going away
@naranyala_dev
@naranyala_dev 2 месяца назад
tanstack, tanstack, tanstack
@user-dc7jb3vk5y
@user-dc7jb3vk5y 3 месяца назад
There is no need to wright ButtonProps, but only Props, because we understand that it is Button component
@cosdensolutions
@cosdensolutions 3 месяца назад
Better to write explicit names, in case you need to import in other components
@user-dc7jb3vk5y
@user-dc7jb3vk5y 3 месяца назад
@@cosdensolutions Yes, but if we want to use type or interface in more then one place I think we should make some types / interfaces folder for this
@cosdensolutions
@cosdensolutions 3 месяца назад
@@user-dc7jb3vk5y not necessarily, often times you just use one component in the other and still want to allow props to be passed to it, so you just import the type. no need to create anything extra
@cat-cx7sv
@cat-cx7sv 3 месяца назад
این نیز بگذرد؟ persian tato nice
@user-uk5tj3qn5q
@user-uk5tj3qn5q 2 месяца назад
Try tailwind-variant
@manjaresaskiajamesbacea6268
@manjaresaskiajamesbacea6268 3 месяца назад
is the project-react course free? thankyouu
@rt7rt790
@rt7rt790 3 месяца назад
It is a "course" not a tutorial , definitely it'll be a paid one
@hrithikvishwakarma001
@hrithikvishwakarma001 3 месяца назад
Tell me how will you pass ref?
@cosdensolutions
@cosdensolutions 3 месяца назад
Through props like any other
@user-qj4rr1rm8i
@user-qj4rr1rm8i 3 месяца назад
Your Repo is empty.
@user-qj4rr1rm8i
@user-qj4rr1rm8i 12 дней назад
​@@sarqnieree The link to the repository for this youtube video was empty. And now is the link gone, maybe cosden has removed it. My comment was not intended to blame his channel. Just to inform that the link was empty. Thanks for asking about my repositories, my repos are good and I'm gonna make one more today.😄🙂😁
Далее
Why I Pick ShadCN and Tailwind for all my projects
18:53
Turning bad React code into senior React code
13:10
Просмотров 86 тыс.
This UI component library is mind-blowing
8:23
Просмотров 607 тыс.
Common Mistakes and Advanced Typescript Techniques
10:49
Efficiently Render 100,000 Rows in React
16:41
Просмотров 16 тыс.
You Are Using useEffect Wrong
14:40
Просмотров 32 тыс.
10 Tailwind Classes I Wish I Knew Earlier
13:31
Просмотров 167 тыс.
Svelte UI Libraries Have Leveled Up
12:14
Просмотров 54 тыс.