My Professional React & Next.js course is OUT NOW now! Find it here: bytegrad.com/courses/professional-react-nextjs -- this is the #1 resource to master the latest React & Next.js, my absolute best work.
I literally lost my mind over this yesterday. Thank you for this!!!!!!!! I tried to chatgpt my way out of this and literally spent 2 hours on it. That was the end of my coding session yesterday, I was raging so hard I just couldn't continue.
@@bilalch898 it does. You can optimize your build with command "npx tailwindcss -o build.css --minify". But I think this option is not available if you use TW CDN.
I was searching something for the exact problem where I had some color coming from an api and wanted the background of some cards to change according to the color. But it just wasn't happening and I was incredibly frustrated because of it and left the project midway. Thanks for the video. Now I can work on that project again
I remember having to set left margins dynamically, so I made a script which generates ml-[1px] to ml-[10000px] just so that I can reference any of them dynamically.. no idea if it was the best way to handle it but it worked.
So, is there a less verbose workaround for the breakpoint situation other than creating class name variables in advance? Can’t believe no one has created a simple solution to this common situation.
Thanks for the great content but what if we have sth like a color picker in our app and based on the color that user chooses we wanna store that hex value and then use it in another component as the background color, we would need sth like this: bg-${[color]} but this doesn't work either. that's an issue that I have,
We faced a similar issue where we needed to get the classes from a CMS system. We basically dynamically generated the tailwind config with whitelisted class names.
I hate this about tailwind, makes creating dynamic pattern generation utils impossible. For example, if you have a common string of tailwind utilities, you have to create a static map of it and add it to the content array to be able to use it from an object so you don't have to retype the same patterns all the time (i.e. flex-box classes, responsive spacing, etc) So now, instead of automating mapping patterns using utility functions you have to manually create an object with a string or string array value. If you don't, tailwind ignores your generated strings. How annoying is that? Purging should be more configurable. I want to generate reusable tailwind utilities mapped to a pattern object using utility function. The only option seems to be a custom plugin with your own utilities to create reusable style patterns (basically mixins). Problem is, it's bad practice to use the shorthand tailwind utility classes, you have to write out the actual css using jss . Might as well create stylesheets with layers but then you can't integrate that as well into ts/js components as with cva or tv (I guess css/scss modules would be the way to go but god damn, that's annoying) Do I really have to create a static output of the generated objects and then pull them into tailwind config synchronously for this to work properly? Surprised tailwind doesn't have a way to modify the content purge config
My Professional React & Next.js course is OUT NOW now! Find it here: bytegrad.com/courses/professional-react-nextjs -- this is the #1 resource to master the latest React & Next.js, my absolute best work.
He is the best in addressing all the issues that we run into while using React and Next
The best explanation I have ever seen. I know about the issue for a while, but just now I understood why
I literally lost my mind over this yesterday. Thank you for this!!!!!!!! I tried to chatgpt my way out of this and literally spent 2 hours on it. That was the end of my coding session yesterday, I was raging so hard I just couldn't continue.
THANKS YOU SO MUCH IT WAS THE SAFELIST I HAD THIS ERROR FOR 3 HOURS THANKS YOU SO MUCH
That's the only thing I hate about tw.
the alternative is sending the entirety of tailwind CSS on page load, which is terrible.
@@rakagunarto1261 na you can use tailwind CDN. It can handle dynamic classes.
@@bilalch898 yeah that's sending the entirety of tailwind CSS, all 2000kb of it, which is terrible.
@@rakagunarto1261 nope, CDN doesn't ship code to your build.
@@bilalch898 it does. You can optimize your build with command "npx tailwindcss -o build.css --minify". But I think this option is not available if you use TW CDN.
another option is using the syle attribute. Get hex code of corresponding tailwind class, and use it in style like
ohh finally I got the issue
😅
Thanks man
THanks so much for the video, it was so helpful
Ok... 2:24 WTF
Its crazy
Can't believe this.. An eye opener.
Some best practice is to use class-variance-authority with twMerge. That's basically how shadcn style their component.
Thank you very much for your cristal clear explanation
Amazing content 🤩
damn this channel is a gold mine. thanks
I was searching something for the exact problem where I had some color coming from an api and wanted the background of some cards to change according to the color. But it just wasn't happening and I was incredibly frustrated because of it and left the project midway. Thanks for the video. Now I can work on that project again
For that use case try setting the hex color directly in the html style param
Great explanation, was giving me a headache
you save my day
i am trying to resolve this use from two days... thank you
@4:50, how do you make sure the TW classes in those objects are in the proper order when passed into TW?
That's the Neat Part, You Don't
I remember having to set left margins dynamically, so I made a script which generates ml-[1px] to ml-[10000px] just so that I can reference any of them dynamically.. no idea if it was the best way to handle it but it worked.
good to hear, I'm thinking of a similar solution..3600 classes to represent every minute of the day...
thanks it was usefull
great video, thanks.
wow 😮 Had troubles because of this now i now how to solve em
Tks bro, I've just face this in a couple days ago LOL😂
So, is there a less verbose workaround for the breakpoint situation other than creating class name variables in advance? Can’t believe no one has created a simple solution to this common situation.
They have, it's called CSS
thanks that was helpfull
Super helpful!
Hi, Im curious about how to implement the 'md' function
writing multiple times the same prefix so annoying, thx
what kind of voodo magic is this ?
isn't it problematic that any of the text present in p , h1 tag etc can change the css?!
This y i stopped using tw, u cant conditionally render classnames
Thanks for the great content but what if we have sth like a color picker in our app and based on the color that user chooses we wanna store that hex value and then use it in another component as the background color, we would need sth like this: bg-${[color]} but this doesn't work either. that's an issue that I have,
Interpolación sucks in general, i use maps for that
If I watched the video, I wouldn't be confused as to why my dynamic condition tailwind doesn't work.
I have a dumb classes like this, its dynamically because depth is the depth of recursive function for access an object. Do you have any idea?
You could set a CSS variable for your padding and use the variable inside your tailwind class
We faced a similar issue where we needed to get the classes from a CMS system. We basically dynamically generated the tailwind config with whitelisted class names.
clever
can i see example of your implementation? i have right now same task to do, also to get colors from CMS to have them as tailwind classes
Is this a good example of "it's not a bug, it's a feature"?
I hate this about tailwind, makes creating dynamic pattern generation utils impossible. For example, if you have a common string of tailwind utilities, you have to create a static map of it and add it to the content array to be able to use it from an object so you don't have to retype the same patterns all the time (i.e. flex-box classes, responsive spacing, etc)
So now, instead of automating mapping patterns using utility functions you have to manually create an object with a string or string array value. If you don't, tailwind ignores your generated strings. How annoying is that? Purging should be more configurable. I want to generate reusable tailwind utilities mapped to a pattern object using utility function. The only option seems to be a custom plugin with your own utilities to create reusable style patterns (basically mixins). Problem is, it's bad practice to use the shorthand tailwind utility classes, you have to write out the actual css using jss . Might as well create stylesheets with layers but then you can't integrate that as well into ts/js components as with cva or tv (I guess css/scss modules would be the way to go but god damn, that's annoying)
Do I really have to create a static output of the generated objects and then pull them into tailwind config synchronously for this to work properly? Surprised tailwind doesn't have a way to modify the content purge config
Wow
Wow I didn't know tailwind parsing engine is this dumb...
This is why tailwind is not good.
wow this is so unintuitive
And animations are annoying
this is working for me: bg-${error?"red": "blue"}-600 even when these tokens are not included anywhere