Тёмный

Tru Narla: Building a design system in Next.js with Tailwind 

Vercel
Подписаться 91 тыс.
Просмотров 147 тыс.
50% 1

Learn how to set up a design system in a Next.js application, and how to build an accessible and easily customizable user interface with Tru Narla, Software Engineer at Discord.
Design at the moment of inspiration: vercel.fyi/WEI...
Speaker: / trunarla

Наука

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

 

29 сен 2024

Поделиться:

Ссылка:

Скачать:

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

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 181   
@oemeraran8183
@oemeraran8183 Год назад
cva was exactly the missing piece i was looking for when building components with tailwind. I was building something like this myself.
@DisasterQ
@DisasterQ Год назад
Try Windstitch.
@mewtru
@mewtru Год назад
Cva is so good!!
@matthewbeardsley7004
@matthewbeardsley7004 Год назад
The ButtonOrLink component is seriously the best takeaway from this video! Thanks so much, I was banging my head on the desk for ages trying to come up with the best way of solving this.
@michaelmannucci8585
@michaelmannucci8585 Год назад
She never talked about it though... I need to figure out how it works.
@ThomasBurleson
@ThomasBurleson Год назад
I watched your video... double-blined over clsx, gasped at cva and said 'oh daaaamn' at the Zod usages. Really great video. Love your energy, insight, style, and tutorial. Super job.
@piyushaggarwal5207
@piyushaggarwal5207 Год назад
Really loved the content. I could understand everything properly.
@snackdonw
@snackdonw Месяц назад
You basically saved my job. Thankyou 😭❣💯
@rodz
@rodz Год назад
Bruh, you all are trying hard to make her feel smaller. Try gifting our community by mentoring instead of BSing in the comments. Why would your 9yo career inflate your ego so much when you aren’t mentoring others with your senior knowledge? Great job Mewtru 💪🏻
@mewtru
@mewtru Год назад
thank you haha :D!
@GeorgeArthurjoe
@GeorgeArthurjoe Год назад
Finally chanced on your videos... I've been following you on Twitter. I really had a wide smile on when I saw you here...
@bessimboujebli1076
@bessimboujebli1076 Год назад
love these videos, thx for the great content!!!
@oussamasethoum1665
@oussamasethoum1665 Год назад
Beautiful explanation.
@charles_hacks
@charles_hacks Год назад
Can you please share a link to this codebase?
10 месяцев назад
Whoa…. You deserve a statue to be raised in every ui engineer’s backyard! Omg, this was great.
@ps__9979
@ps__9979 11 месяцев назад
Hi I see on your storybook that you have null value for button variants under controls. I'm also having it in my storybook, but example button doesn't have that. This comes from inferring CVA props into button. How can I either remove that null value from Storybook controls, or when clicked to fallback to default value? An shouldn't those inferred types be strict, not involving null and undefined? Thank you
@soumya_495
@soumya_495 Год назад
Helpful video 🚀
@chiragsingla.
@chiragsingla. Год назад
I use this path alias { "paths": { "@/*": ["src/*"] } } So i don't have to care about path alias when renaming, making or deleting a directory
@fernandosalcedo1400
@fernandosalcedo1400 Год назад
Amazing video! Is there any way to use cva for disabled/loading button states?
@ramsundararaman6615
@ramsundararaman6615 Год назад
That’s a great question. Did you try anything?
@tastymuffinmm
@tastymuffinmm Год назад
cva looks nice, but is there a way to get tailwindcss intellisense working with it?
@rodz
@rodz Год назад
Yes, you can find a regex on the README
@tastymuffinmm
@tastymuffinmm Год назад
@@rodz what regex would you use? the variants don’t have any pattern to them
@davidkawogo3681
@davidkawogo3681 Год назад
can someone help me where i can i find a select input in tailwind, this is so much easier with tools like select2 with jquery, i really like to use tailwind, but the overwhelming of creating everything from scratch is killing me
@a89529294
@a89529294 Год назад
Vim?
@kazinafizanam9397
@kazinafizanam9397 Год назад
can i get your repo pls.. then it will be easy to make our own from the base of yours
@kaiser2608
@kaiser2608 Год назад
I feel so outdated when people use Typescript nowadays.
@elpolodiablo5486
@elpolodiablo5486 Год назад
I feel so outdated when people use JavaScript nowadays.
@husseinkizz
@husseinkizz Год назад
Nice one just I think it's over engineering, but the typescript @path tip is a golden buzzer for me!
@rodz
@rodz Год назад
Why over-engineering? Doesn't this feel minimalistic in a way while still maintaining similarities to Stitches API? To me, this library is so minimal that, at some point, you'll need to write your own wrapper around CVA just to encapsulate your own components. Copying-paste boilerplate for each component & its VariantProps becomes unnecessary big later on.
@garyg3327
@garyg3327 Год назад
You must be new here.
@husseinkizz
@husseinkizz Год назад
@@garyg3327 Am not new!
@husseinkizz
@husseinkizz Год назад
Well I think doing all these hacks kinda defeats the purpose of why these tech were invented, to enable flexibility and simplicity. Therefore my tool kit and workflow goes like setup tailwind and next js, install tailwind intellisense and inline fold extensions for vscode, get to build large code bases without feeling the surge, no crap and no whatever, use template literals for class concatenation, that's it!!!
@garyg3327
@garyg3327 Год назад
@@husseinkizz Ha. You are still a baby, Hussein.
@bitbybit981
@bitbybit981 Год назад
Thank you sooooooooooo much!! I've literally spent the last month thinking and researching ways to use tailwind as the foundation for a component library. The mention of CVA is worth the price of admission alone. Please upload a repo for this
@JakeJJKs
@JakeJJKs Год назад
I'm almost upset I haven't come across your work and online presence earlier! So much good information packed into a short span of time! Kudos
@TomNook.
@TomNook. Год назад
This is not vim
@swig.
@swig. Год назад
this is true
@fawwazmamin4346
@fawwazmamin4346 Год назад
@@swig. *tru
@connorallen162
@connorallen162 Год назад
Coming up with a component library that I'm happy with has been a HUGE pain, this video would have been SO helpful like 3 months ago when I decided to move off MUI. This is a great overview of the component library problem.
@mewtru
@mewtru Год назад
Thank you!!!
@bilencekic
@bilencekic Год назад
bro i just move to MUI recently :D is it a bad decision ? i found it very simple and rich component library.
@rahulpatil3942
@rahulpatil3942 Год назад
@@bilencekic It's not bad at all. It totally depends on your use case. If your project requires you to heavily reset your chosen framework styles then you're better off building design system from scratch.
@norliegh
@norliegh Год назад
@@bilencekic if you're more of a infrastruture (backend) core dev. stay with mui as it'll let you focus more on the backend and ui won't be much of a hassle. however, it'll limit your creativity. if you want complete control of you ui. build one from scratch.
@bilencekic
@bilencekic Год назад
@@norliegh thanks man! i was thinking exactly same. I bought a MUI template from mui webpage and i can easily build all the pages i need easily including reports+ validations + day/night switch etc. Datagrid control is awesome since i deal with big size of data. Everyting is really perfect. That was the answer i need. thank you. for now product's usability is important for me :D and it gives me that much of flexibilty
@mewtru
@mewtru Год назад
Hi everyone! It’s Tru from the video! I’ll have a repo up soon so you can take a look at the code :). Thank you all for watching! And for those who are opposed to tailwind, this is just one solution, and for those who are mad at the intro, what can I say I’m a popular person 😎
@enyelsequeira3619
@enyelsequeira3619 Год назад
Hey quick question how were you able to handle responsiveness as CVA itself doesn’t provide an api for it?
@tzlukoma
@tzlukoma Год назад
@@enyelsequeira3619 Tailwind can help with the responsiveness
@phucnguyen0110
@phucnguyen0110 Год назад
Lovely presentation! I've been playing with Tailwind a bit recently thanks to not having a project with my current company. This is super helpful actually!
@phucnguyen0110
@phucnguyen0110 Год назад
@@enyelsequeira3619 there are utility classes in Tailwind that can help you with it (sm:, md:, lg:, etc.)
@enyelsequeira3619
@enyelsequeira3619 Год назад
I know that guys. Just wondering if it would be possible like stitches, currently under their repo, it says it doesn’t support it
@DavidWMiller
@DavidWMiller Год назад
Not sure if I hate this or not yet, but this is a damn good talk, good shit.
@demiann4160
@demiann4160 Год назад
Great video! I'm always struggling into decide if using a well testes open source UI components library like Chakra, Mantine, Mui, or to develop one from scrath. What's stand in front to go from the scratch solution is a lot of UI components library are not giving you styles but sometimes accesibility, community approved UX patterns, accesibility, hooks (if React) and help you in building complex components (for eg, a calendar picker). Even with this drawbacks would you consider going scratch? I like the mix approach of RadixUI plus Tailwind but I heard from people having problems integrating Tailwind with Radix. Another mix choice would be using TailwindUI components which is kind of a rich extension of what Headless UI is. This is topic for me that I don't have a definitive choice fir sure.
@codewithguillaume
@codewithguillaume Год назад
Hello Tru! I didn’t know you but as a senior FE Engineer I clearly recognized your expertise and knowledge. Will follow you for sure ! Best
@mewtru
@mewtru Год назад
Thank you so much :)!! Means a lot
@diegocamera898
@diegocamera898 Год назад
Very good talk, Could we have the URL for the repo?
@mihir5846
@mihir5846 Год назад
Would love to see this with NextJs13’s new app folder structure. Also link to this codebase please.
@japarradog
@japarradog 7 месяцев назад
🎯 Key Takeaways for quick navigation: 00:08 🌟 *Introducción a Design Systems en Next.js con Tailwind* - Definición de un sistema de diseño. - Opciones para implementar sistemas de diseño: bibliotecas preconstruidas vs. crear uno propio. 02:03 🎨 *Personalización de Tailwind CSS para el sistema de diseño* - La flexibilidad de Tailwind CSS para personalizar estilos. - Ejemplo de personalización del color de la marca en Tailwind. 03:28 ♿ *Consideraciones de accesibilidad en el diseño del sistema* - Uso de bibliotecas de accesibilidad como Headless UI. - Importancia de la accesibilidad en el desarrollo de componentes de diseño. 05:25 🔗 *Integración de TypeScript, Alias de Ruta y Storybook* - Uso de TypeScript con alias de ruta para componentes de diseño. - Implementación de Storybook para probar componentes de diseño de manera aislada. 06:52 🚀 *Demostración práctica del sistema de diseño en Next.js* - Visualización y personalización de botones con Class Variants Authority (CVA) y Tailwind CSS. - Uso de componentes accesibles con Headless UI en la demo. 13:17 👋 *Cierre y recursos adicionales* - Información de contacto y redes sociales del presentador. - Finalización de la conferencia sobre sistemas de diseño en Next.js con Tailwind. Made with HARPA AI
@faahkoo
@faahkoo Год назад
The idea is really cool, but tailwind has really bad readability x_x. I use it just for small stuff, but for a whole Design System, I still prefer to use a lib that keeps closer to CSS syntax.
@8497715
@8497715 Год назад
Like for CVA, great library 🔥
@VKD007
@VKD007 Год назад
Seems like a okaish way, i would prefer to build the components with scss or postcss with classname and variant utility function predefined in my utils file. Why to junk up the js bundle for this simple thing. Keep in mind ive use material, chakra etc too. I can use tailwind if i dont wanna spend time on creating the design system.
@anmol_dot_ninja
@anmol_dot_ninja Год назад
WHY HAVE I NOT HEARD ABOUT CLSX
@zl9o1
@zl9o1 Год назад
CSV looks amazing. I’m always in trouble handle all the props and style variations. Thanks for sharing! I’m chillin on my couch but now I have to try this things out 😂
@wlockuz4467
@wlockuz4467 Год назад
There are two types of people - Those who love Tailwind - Those who hated Tailwind but now love it
@faahkoo
@faahkoo Год назад
I still don't love it ahhaah but I can see the benefit in certain use cases!
@RyuuuGamingUnlimited
@RyuuuGamingUnlimited Год назад
Still hate it. Ugly markup. Non contextual classes. Need to configure a lot of shit just to have granular control of a custom figma design, which already have most of the CSS given to you.
@andrewwilkin1611
@andrewwilkin1611 Год назад
Really cool, definitely going to try CVA, is there an example project you can share?
@im_parth
@im_parth 9 месяцев назад
Great content 💯. BTW does anyone know what font is that ?
@bramreinold
@bramreinold 15 дней назад
Hi, what chair are you using?
@SREERAJM
@SREERAJM Месяц назад
Thank you
@jugalkumarseth7675
@jugalkumarseth7675 Год назад
Thanks for video. Really informative.
@Otomega1
@Otomega1 Год назад
What developers wants isn't features, they want order and neatness
@Gumshoe21
@Gumshoe21 Год назад
This is awesome, I never thought about organizing my Tailwind work this way. Thanks! 🤟
@mewtru
@mewtru Год назад
Thank you so much :)
@jboxy
@jboxy Год назад
Very helpful ty
@bun_bon_bon_1204
@bun_bon_bon_1204 5 месяцев назад
thank you so much
@NammaPayakaDiaries
@NammaPayakaDiaries Год назад
Cringe intro
@texoport
@texoport Год назад
@@PhilippBlum Or, you know, it could be an attempt at humor. Turns out women like irony just as much as us.
@mewtru
@mewtru Год назад
Bruh I’m just having fun over here 😂
@mewtru
@mewtru Год назад
@@PhilippBlum don’t be cringe 😂
@ThingEngineer
@ThingEngineer Год назад
I know I’m a little late, I’ve been busy, but this is amazing!
@hanes2
@hanes2 Год назад
not gonna lie, the whole tsx/react code makes tailwind seem way more over-complex than it is.
@CaliburPANDAs
@CaliburPANDAs Год назад
Just use CSS modules
@jshstuff
@jshstuff Год назад
I’m trying to be convinced that there’s a better pattern than CSS Modules but haven’t found anything better yet. I’m someone who likes going easy on the utility classes so I’m biased.
@supafast1314
@supafast1314 Год назад
Source code ?
@shamil1
@shamil1 Год назад
This is a truly cool video) Do you use the "tailwind-merge" package?
@shantanu_kumar
@shantanu_kumar Год назад
jump cuts, jump cuts, jump cuts. Informative video though :)
@27sosite73
@27sosite73 4 месяца назад
shadcn, hah?
@CaryKelnhofer
@CaryKelnhofer Год назад
great video this offers some nice tools for working with tailwindcss that i missed from theme-ui. thanks for sharing.
@jearthman
@jearthman Год назад
So good. Trying to study and get into frontend devrel. Had no idea about Storybook and that would help so much with large, data-dependent apps.
@killerdroid99
@killerdroid99 Год назад
I really like your way of teaching
@muzammilsyed2339
@muzammilsyed2339 Год назад
Repo?
@IcedCupcakes
@IcedCupcakes Год назад
whats the diff between Tailwind Variants and CVA?
@yusuphh.kajabukama4029
@yusuphh.kajabukama4029 Год назад
Thank you @Narla for this amazing content, very helpful, I really liked the vscode theme you are using, very pleasing, what's it name if you dont mind
@michaelavnyin9673
@michaelavnyin9673 Год назад
that was awesome thanks shed some good light on how tailwind could really help, it just seems so convoluted for writing just css but I guess you get use to it
@ignacioarriagadairiarte4338
Veré very good video What is tour vscode theme?
@raqibnur
@raqibnur Год назад
Amazing presentation ❤❤
@user-vr9jq5xk3m
@user-vr9jq5xk3m Год назад
How does the bundling work as a library (monorepo or independent repo)? Does it include all the components not required for the page, or only load components required for that page?
@podeig
@podeig 11 месяцев назад
Thank you Tru! Is it possible to fork this project?
@brayancuenca6925
@brayancuenca6925 Год назад
how do you add nextjs font api to my variants?
@damiantriebl1747
@damiantriebl1747 Год назад
Tailwind is now supported in turbopack?
@DiegoOliveira-ow1np
@DiegoOliveira-ow1np Год назад
Amazing content! I loved how much you can do with Tailwind and cva integrated with Typescript autocomplete.
@Balance-8
@Balance-8 Год назад
is the repo available to the public?
@BearkFearGamer
@BearkFearGamer Год назад
cva is the same as vinpac/windstitch
@igrb
@igrb Год назад
Banger talk
@stevesango4855
@stevesango4855 Год назад
Please give us more info on this. I have been looking for such for a long time. BIG THANK YOU!!!
Год назад
Awesome! Thanks! This taught me a lot!
@renaud689
@renaud689 Год назад
I learned a lot of cool tips, thanks
@fieryscorpion
@fieryscorpion Год назад
Can you please do a demo on setting up Tailwind on Blazor?
@paultnewsam8737
@paultnewsam8737 Год назад
This is so money. Thanks for sharing!
@Rantalytics
@Rantalytics Год назад
thank you so much. between you and lee you guys are giving out incredible information. so greatful
@facundomartin6993
@facundomartin6993 Год назад
This content is insane! After watching this I feel like I've been living under a rock...
@danvilela
@danvilela Год назад
Where is the git for this??
@dwisatriow
@dwisatriow Год назад
Anyone know the vscode theme name?
@amsterdamtinus8456
@amsterdamtinus8456 Год назад
With next.js?
@mr.random8447
@mr.random8447 Год назад
Why use this cva over stitchesjs?
@AnindoSarker
@AnindoSarker Год назад
This is a so influential video for me. I'll use these for every project now
@maxpower7735
@maxpower7735 Год назад
Great intro to CVA, thank you so much!
@luizakataoka7501
@luizakataoka7501 Год назад
This is great! Is it possible to make it a NPM package?
@minma02262
@minma02262 Год назад
My gawd. I serious need this.
@ste-fa-no
@ste-fa-no Год назад
Storywhaaat? 🤯 very cool!
@returnZeroo
@returnZeroo Год назад
Learned a lot
@aliarslanansari
@aliarslanansari Год назад
@mewtru I was facing issues with variants when I tried building components with tailwindcss few months back, this video was helpful, will be following up your work
@taunado
@taunado Год назад
Great. Thanks for sharing.
@runonce
@runonce Год назад
7:04 Actual demo of CVA.
@james.restall
@james.restall Год назад
Great presentation, cva is a game changer for keeping the design system maintainable.
@mohtashimali581
@mohtashimali581 Год назад
can you provide github repo for it?
@oleksandrfomin326
@oleksandrfomin326 Год назад
Top notch content. Thank you so much!
@technicalanalysisbyblockem9964
Where can I read more about cva?
@abel090713
@abel090713 Год назад
damn no link to creator in description
@abenjamin13
@abenjamin13 Год назад
OMG 😳 I need this thank you 🙏.
@showbikshowmma3520
@showbikshowmma3520 Год назад
Why nit scss or sass😭
@phordan
@phordan Год назад
Do you know what concept I can study to understand how your 'ButtonOrLinkProps' are just "basic button props" (mentioned at 8:39 )? I'm not too learned in typescript and props, so getting 'className' to apply to the button (not throw errors) is proving beyond my declarative capabilities in my own speculative version of your "ButtonOrLink.tsx" import and what it contains. Thanks for this great overview it really tied a lot of things together for me, and storybook is great.
@rahulpatil3942
@rahulpatil3942 Год назад
ButtonOrLinkProps are basically types for a normal button which are then extended by Varient props.
Далее
10 common mistakes with the Next.js App Router
20:37
Просмотров 216 тыс.
This might change how we build UI forever
15:14
Просмотров 128 тыс.
Barno
00:22
Просмотров 701 тыс.
Translating a Custom Design System to Tailwind CSS
10:10
cn() - Every Tailwind Coder Needs It (clsx + twMerge)
7:46
Theo Browne: Next.js is a backend framework
11:44
Просмотров 157 тыс.
Applying clean architecture to my Next.js project
20:15
ShadCN’s Revolutionary New CLI
12:11
Просмотров 48 тыс.
Build anything with v0 (3D games, interactive apps)
9:05
How the PROS Use Tailwind
9:55
Просмотров 51 тыс.
Shadcn + Next.js 13 is HEAVEN | A QUICK GUIDE
13:30
Просмотров 136 тыс.
CED: часть 1
23:37
Просмотров 55 тыс.
Скучнее iPhone еще не было!
10:48
Просмотров 594 тыс.