Don't forget the `className` prop!!
So this is normal styled-component stuff:
const RedDiv = styled.div`
color: red;
`
which outputs
<div class='<someClassId>'>
</div>
.someClassId { color: red; }
And then you can wrap that div
const BlueDiv = styled(RedDiv)`
color: blue;
`
which outputs:
<div class='<someClassId>'>
</div>
.someClassId { color: blue; }
And you can also style existing components. If I have the component:
const CoolComponent = (props) => {
render(
<div></div>;
)
};
const PurpleDiv = styled(CoolComponent)`
color: purple;
`
That outputs
<div></div>
It's not purple!!
That's because if you want to style non-styled-component components with styled-components then you have to use the className prop to set the class onto your element.
const CoolComponent = ({className}) => {
render(
<div className={className}></div>;
)
};
Which outputs
<div class='<someClassId>'>
</div>
.someClassId { color: purple; }
Tweet