- read

5 Different Ways to Add CSS in React

Jayanth babu 11

Different ways to style React Components


Styling is a crucial aspect of any web application’s user interface. In React, there are various methods to apply CSS styles to your components, each with its own advantages and use cases. In this guide, we’ll walk you through different ways to add CSS to your React components, along with code examples for each method.

Let’s dive in and turn your app into a visual masterpiece! Here are the five methods we’ll be covering:

  1. Inline Styles
  2. <style> Tag
  3. CSS Modules
  4. Styled Components
  5. External CSS

Let’s discuss each one with code examples

1. Inline Styles:

Inline styles involve applying styles directly within a component’s JSX code. While this approach offers isolation and dynamic styling, it can become cumbersome for complex styling.

Code Example:

Inline styles involve directly applying styles as JavaScript objects using the style attribute. This method is suitable for simple styles, and it allows you to dynamically generate styles based on component props or state. However, it may become less manageable for complex styling due to the mixing of JSX and style definitions.

2. <style> Tag:

Using the <style> tag directly within your component allows you to write CSS in a familiar way. This method is simple, but it may not provide the same level of isolation and encapsulation as other methods.

Code Example:

The <style> tag method involves writing styles directly within the JSX code using template literals. This method offers a quick way to apply styles without separate files, but it may not provide the same level of separation between HTML and CSS. It can be useful for simple one-off styles.

3. CSS Modules:

CSS Modules enable scoped styling by creating a unique class name for each component. This prevents style conflicts and improves maintainability.

Code Example: Create a styles.module.css file:

Use the CSS module in your component:

CSS Modules provide a way to encapsulate styles by generating unique class names for each component. This prevents style conflicts and allows you to scope styles to specific components. It offers a clean separation of concerns and helps maintainable styling in larger applications.

4. Styled Components:

Styled Components is a library that enables you to write CSS using tagged template literals within your JavaScript code. This promotes encapsulation and dynamic styling.

Code Example: Install the styled-components package:

Use Styled Components in your component:

In this example, we’ve defined a ProductCard styled component that encapsulates the styling for the card. Inside the ProductCard, we've used two more styled components, ProductInfo and Price, to style the product name and price.

Advantages of Styled Components:

Styled Components offer a component-based styling approach, seamlessly blending functionality and style. Styles defined within a component are scoped, preventing clashes with global styles. This method enables dynamic styles based on props or state, improving reusability.

Disadvantages of Styled Components:

Styled Components might have a learning curve, especially for newcomers to CSS-in-JS. They can introduce build complexity due to additional transpilation steps. While encapsulation is encouraged, some prefer separating styles for clarity. The generation of new class names for each render can lead to render overhead in certain cases. Using Styled Components requires the inclusion of the styled-components library, adding to dependencies

5. External CSS:

We can also use traditional external CSS files in React applications. This method is familiar and suitable for global styling.

Code Example: Create an external.css file:

Link the external CSS in your component:

Using traditional external CSS files involves writing styles in separate .css files and then importing them into your components. This method offers familiarity and works well for global styles. However, it may lack encapsulation for component-specific styling, potentially leading to style clashes in larger projects.


Remember, each method we’ve explored comes with its own strengths and ideal use cases. As you venture further into the realm of React development, consider the specific needs of your projects and your personal coding preferences when selecting a styling approach.

Keep building, keep experimenting, and keep crafting stunning React experiences that resonate with your users.

Happy coding!