Open In App

How do Styled Components work in terms of styling React components?

Last Updated : 04 Feb, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

Styled Components is a library for React and React Native that allows you to write CSS in your JavaScript code in a more component-oriented way.

Working of Styled Components:

  • Component-Based Styling: Styled Components allow you to write actual CSS directly into your JavaScript files using tagged template literals. This means you can define styles for your React components in the same file where you define the component itself, making it easier to understand and maintain.
  • Tagged Template Literals: Styled Components uses tagged template literals, a feature of ES6, to style components. Tagged template literals allow you to interpolate JavaScript expressions into strings.
  • Dynamic Styling: Since Styled Components are written using JavaScript, you can easily use JavaScript variables and expressions to create dynamic styles based on props, state, or any other data in your application.
  • Automatic Vendor Prefixing: Styled Components automatically adds vendor prefixes to CSS properties, ensuring that your styles work across different browsers without any additional configuration.
  • Global Styles: Styled Components also supports global styles, allowing you to define styles that apply to your entire application.

Example: We define a styled button component using the styled.button syntax. We interpolate JavaScript expressions to create dynamic styles based on the primary prop. Then, we use this styled button component in our MyComponent React component

import styled from 'styled-components';

// Create a styled component
const Button = styled.button`
background-color: ${props => props.primary ? 'blue' : 'white'};
color: ${props => props.primary ? 'white' : 'black'};
font-size: 16px;
padding: 10px 20px;
border-radius: 5px;
border: 2px solid ${props => props.primary ? 'blue' : 'black'};
`;

// Use the styled component in your React component
const MyComponent = () => {
return (
<div>
<Button>Normal Button</Button>
<Button primary>Primary Button</Button>
</div>
);
};

Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads