Reputation: 3015
I can do this with a styled.div
styled.div`
color: ${props=> props.color || 'black'};
`
How can I do something similar with a styled components css element?
const BlackBGCSS = css`
color: ${props=> props.color || 'black'};
`
For now my solution is to create a factory function
const BlackBGCSS = (props)=> css`
color: ${props=> props.color || 'black'};
`
Upvotes: 14
Views: 12518
Reputation: 1339
Kind of how you have it:
const myCSS = css`
background: ${({ myColor }) => myColor || `black`};
`;
const MyComponent = styled('div')`
${myCSS};
`;
Then
<MyComponent myColor="red">Hello World</MyComponent>
Hope that helps.
Upvotes: 21