In My Previous post Style React component with styled-components : Part-1 , I wrote how we can start using styled-components
and we created one Spinner component with it.
Now we can see, how we can pass props to the styled component named StyledSpinner
and change the color/behavior of it.
For this example, I will change the border color by passing prop. So, the styled component will show the color what we pass to it.
Let's use props for the border color.
border: 16px solid ${props => props.color || "red"};
Here, we can see, I changed the border color #f3f3f3;
to ${props => props.color || "red"}
which means if any prop is passed it will use that, otherwise it will use red by default.
Cool!
The implementation of this Styled component will be like this-
const StyledSpinner = styled.div` border: 16px solid ${props => props.color || "red"}; border-radius: 50%; border-top: 16px solid #3498db; width: 120px; height: 120px; -webkit-animation: spin 2s linear infinite; /* Safari */ animation: spin 2s linear infinite; @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } `;
Now we can use this StyledSpinner
in our React Component and pass prop named color
.
<StyledSpinner color="#f3f3f3" />
Now, I want to add another StyledSpinner
without passing any color
prop and it should use the default red color.
render() { return ( <Fragment> <StyledSpinner color="#f3f3f3" /> <hr /> <StyledSpinner /> </Fragment> ); }
Let's see how they look.
Cool, as we expected!
Hope, someone finds this useful.
Cheers!
๐
As I am trying to contribute contents on the Web, you can buy me a coffee for my hours spent on all of these โค๏ธ๐๐ธ
My Blog: https://shahjada.me
Top comments (0)