Документация Material-UI
показывает примеры различных подходов к стилизации, включая пример, показывающий, как использовать styled-components
с Material-UI
.
Вот их пример:
import React from 'react';
import { styled } from '@material-ui/core/styles';
import Button from '@material-ui/core/Button';
const MyButton = styled(Button)({
background: 'linear-gradient(45deg, #FE6B8B 30%, #FF8E53 90%)',
border: 0,
borderRadius: 3,
boxShadow: '0 3px 5px 2px rgba(255, 105, 135, .3)',
color: 'white',
height: 48,
padding: '0 30px',
});
export default function StyledComponents() {
return <MyButton>Styled Components</MyButton>;
}
Другой подход заключается в использовании хука Material-UI
, который использует подход CSS -in- JS и функцию makeStyles
:
import React from 'react';
import { makeStyles } from '@material-ui/core/styles';
import Button from '@material-ui/core/Button';
const useStyles = makeStyles({
root: {
background: 'linear-gradient(45deg, #FE6B8B 30%, #FF8E53 90%)',
border: 0,
borderRadius: 3,
boxShadow: '0 3px 5px 2px rgba(255, 105, 135, .3)',
color: 'white',
height: 48,
padding: '0 30px',
},
});
export default function Hook() {
const classes = useStyles();
return <Button className={classes.root}>Hook</Button>;
}
Также есть способ создать пользовательскую тему в отдельном файле и импортировать ее туда, где это необходимо. Вот пример объекта по умолчанию Theme
и того, что он содержит. Хорошо бы взглянуть и получить представление о том, что можно настроить с помощью createMuiTheme
.
Material-UI
имеет несколько подходов к стилизации, и поначалу это может быть много. Надеюсь, это поможет.