In CSS/LESS I would do this:
.button {
&:active, .active {
background-color: #393939;
border-color: #2F2F2F;
box-shadow: inset 0 0 0 1px #3D3D3D,
inset 0 2px 0 #323232;
}
}
Where :active is the style for my button when it's being clicked, and .active is the class I would add to the button when it's active (for toggle-able button).
With styled-components I presently have this:
import styled from 'styled-components';
export default styled.button`
width: 32px;
height: 32px;
border-radius: 5px;
background-color: #535353;
border: 1px solid transparent;
cursor: pointer;
outline: none;
padding: 4px;
&:active, /* what to do here?? */ {
background-color: #393939;
border-color: #2F2F2F;
box-shadow: inset 0 0 0 1px #3D3D3D,
inset 0 2px 0 #323232;
}
`
But I don't know how to re-use all those :active styles based on some property. I know I can access the prop with ${props => prop.active}, but I don't know how to re-use that block of styles without repeating all those styles again.
How would I do this?