5 ms·
What do you need for keeping CSS scoped to React components?
by ithrow 3y ago
What do you need for keeping CSS scoped to React components?
- ggregoire 3y agoSolution 1: You can give a classname to your component and prefix every CSS rule with this classname. e.g. <CustomSelect>, which translates to <div className="custom-select">, which you can style by prefixing every rule with .custom-select. You put that in the index.css inside your folder CustomSelect to be easily editable when you need it. Solution 2: Otherwise you could try to use CSS modules (Vite supports them out-of-the-box I think). Solution 3: Otherwise you could try one of the many "CSS-in-JS" libraries like styled-components. Personally I'm using the solution 1, did for more than a decade, works fine, scales well, nothing to install and learn, just old straightforward CSS.
- bobthepanda 3y agoIn practice, I find keeping your CSS separate from the JSX tends to be cleanest (your solution 1). Separation of concerns with what are essentially totally different markup languages is best when you can. We tolerate it with JSX because there isn't a fantastic first-class declarative way to express an object, a list of objects, or filtering in HTML. (I have seen WebComponents and the MDN tutorial seemed like taking a step back.)
- aidenscott2016 3y agostyled-components
- perk 3y agoPersonally I suck at CSS and avoid writing it like the plague, even after 20+ years of doing it. I use TailwindCSS [1] for all my styling needs and couldn't be happier. If you really want scoped CSS in React this approach [2] can also work, and it makes it easy to use tailwind if you want. [1] https://tailwindcss.com https://tailwindcss.com [2] https://miyauchi.dev/posts/lib-vite-tailwindcss/#css-modules https://miyauchi.dev/posts/lib-vite-tailwindcss/#css-modules