#reactjs #material-ui
#reactjs #материал-пользовательский интерфейс
Вопрос:
Я использовал этот инструмент для создания темы пользовательского интерфейса, чтобы создать тему MUI, которая мне нравится: mui-theme-creator
Я полагаю, что этот инструмент использует Material UI версии 4, в то время как в моем проекте я использую @mui / material версии 5.2.1, и я пытаюсь выяснить, как я могу «преобразовать» код из создателя темы в версию, совместимую с версией 5.
Теперь, вот код темы от создателя темы:
import { ThemeOptions } from '@material-ui/core/styles/createMuiTheme'
export const themeOptions: ThemeOptions = {
palette: {
type: 'dark',
primary: {
main: '#ff3d00',
},
secondary: {
main: '#2962ff',
},
...........
props: { // Is there a way to do anything like this with Mui v5?
MuiAppBar: {
color: 'inherit',
},
},
overrides: {
MuiAppBar: {
colorInherit: {
backgroundColor: '#303030',
color: '#fff',
},
},
},
};
Скриншот панели приложений с использованием приведенного выше кода ThemeOptions
Теперь, когда я сделал все возможное, чтобы попытаться преобразовать этот код в v5 и воспроизвести его эффекты, у меня возникла одна главная проблема. Это соответствующий код, который у меня есть до сих пор:
import { createTheme } from '@mui/material/styles'
export const theme = createTheme({
mode: 'dark',
palette: {
primary: {
main: '#ff3d00',
},
secondary: {
main: '#2962ff',
},
..............
components: {
MuiAppBar: {
styleOverrides: {
colorPrimary: {
backgroundColor: '#303030',
color: '#ffffff',
},
},
},
},
})
Основная проблема, с которой я сталкиваюсь, заключается в том, что, хотя панель приложений меняет цвет фона, я не могу найти опцию с помощью createTheme, которая изменит цвет дочерних элементов внутри панели приложений.
Если нет способа сделать это, как в версии 4, было бы лучше, если бы я просто создал тему на основе основной темы, которую я уже создал, и использовал ее исключительно для тематизации моего компонента панели навигации?
Комментарии:
1. Реквизиты по умолчанию теперь
components
недоступны, см. mui.com/customization/theme-components/#default-props и переопределения стиля по — прежнему предоставляют acolorInherit
дляAppBar
, см. mui.com/api/app-bar/#css2. когда я переходил на mui версии 5, мне снова пришлось переопределить панель приложений
3. @JacobSmit спасибо за этот совет, установка color=»inherit» для дочерних элементов внутри моей панели приложений работала отлично, большое вам спасибо!
Ответ №1:
В вашем перенесенном стиле отсутствуют реквизиты, в MUI5 вы должны предоставить такие реквизиты
components: {
MuiAppBar: {
styleOverrides: {
colorInherit: {
backgroundColor: "#32302F",
},
},
defaultProps: {
color: "inherit",
},
},
},
Комментарии:
1. Ах, я вижу, большое вам спасибо, это сводило меня с ума, пытаясь разобраться в этом.