Недавно я создал веб-сайт с Material UI и ReactJS. Я быстро понял, что мои описания цветов становятся хаотичными и непоследовательными. Изучив другие варианты, я остановился на этом чистом и эффективном способе определения и использования пользовательской цветовой схемы для всего приложения.
Создать и экспортировать тему
Я определил новый файл MaterialTheme.js
в папке src
, той же папке, в которой находились компоненты моего приложения. Используя createMuiTheme
, мы создаем и экспортируем пользовательский объект Theme. Мой MaterialTheme.js
файл:
Импорт и использование пользовательской темы
Используя MuiThemeProvider из Material UI, мы можем использовать пользовательские объекты Theme при стилизации компонентов. Просто импортируйте свой пользовательский объект темы и оберните свои компоненты JSX тегом MuiThemeProvider
. Передайте импортированную тему в theme
prop MuiThemeProvider.
Компоненты, заключенные в тег <MuiThemeProvider>
, могут получить доступ к цветовым схемам. В этом примере компонент ColoredIcons
содержит два других пользовательских компонента: TweetOptionsMenu
и FlagMenu
. Поскольку оба они заключены в <MuiThemeProvider>
, я могу передать им цвета, которые я ранее определил в MaterialTheme.js
как просто 'primary'
‘secondary’
или ‘blue’
.