reactjs - Aký je správny spôsob, ako predefinovať farby pomocou MUI withStyle, TypeScript a next.js?
Mám:
const Button: React.FC<ButtonProps> = ({
label,
size,
variant = 'primary',
disabled = false,
}: ButtonProps) => {
const classes = useStyles();
return (
<MaterialButton
className={`${classes.buttonBase} size-${size}`}
disabled={disabled}
>
{label}
</MaterialButton>
);
};
a
const useStyles = makeStyles(() => ({
buttonBase: {
background:'#000000',
color: '#ffffff',
Avšak, ak je variant secondary, chcem v podstate vymeniť background a color. Ako to môžem urobiť?
Odpoveď č. 1
Môžete to nastaviť vo svojej téme. Nižšie uvedený príklad je pre použitie variant="contained" s color="secondary"
export const theme = createTheme({
components: {
MuiButton: {
styleOverrides: {
containedSecondary: {
backgroundColor: '#808080',
color: '#FFFFFF',
'&:hover': {
backgroundColor: '#565656',
},
},
}
}
}
<Button variant="contained" color="secondary">Test button</Button>
Alebo ak chcete nastaviť štýl vo vašej súčasti, môžete nastaviť variant pre sekundárny takto. Tu je funkčný codesandbox
const useStyles = makeStyles({
primary: {
backgroundColor: "purple",
color: "#FFF"
},
secondary: {
backgroundColor: "red",
color: "#FFF"
}
});
<Button className={classes.secondary}>Secondary</Button>
<Button className={classes.primary}>Primary</Button>
