Quelle est la meilleure façon de créer des variantes à l'aide de composants stylisés ? Voici ce que je fais actuellement.
const ButtonStyle = styled.button`
padding:8px 20px;
border:none;
outline:none;
font-weight:${props => props.theme.font.headerFontWeight};
font-size:${props => props.theme.font.headerFontSize};
display:block;
&:hover{
cursor:pointer;
}
${({ variant }) =>
variant == 'header' && css`
background-color:${props => props.theme.colors.lightblue};
color:${({ theme }) => theme.colors.white};
&:active{
background-color:${props => props.theme.colors.blue}
}
`
}
${({ variant }) =>
variant == 'white' && css`
background-color:white;
color:${({ theme }) => theme.colors.lightblue};
&:active{
color:${props => props.theme.colors.blue}
}
`
}
`;
Je ne peux pas dire si c'est la manière standard de procéder. J'ai également utilisé d'autres composants comme bases pour créer d'autres composants à partir d'eux, tout en modifiant quelques éléments.
par exemple
const InnerDiv = styled(otherComponent)`
position: unset;
background-color: red;
overflow-x: hidden;
display: flex;
`;
Quelle est la meilleure approche ? Existe-t-il de meilleures alternatives ?