#vue.js #colors #nuxt.js #vuetify.js
Вопрос:
Возможно, мой вопрос был простым, но до сих пор я не мог найти никакого решения для этого. Я использую Vuetify в своем приложении Nuxt. Я использовал темную тему этого. в соответствии с конфигурацией темы официального веб-сайта мы можем изменить основной или дополнительный или другие цвета темы с нашими желаемыми цветами. Но когда мы устанавливаем, например, темную тему, цвета текста и фона по умолчанию устанавливаются на белый и черный. Я не мог найти никакого решения, чтобы изменить их. Я знаю, что мы можем установить, например class="primary"
, для элемента, чтобы изменить его цвет фона. Но я хочу установить цвет по умолчанию для текста или фона, как это:
body {
color: var(--v-info-base);
}
/* or */
#app {
color: var(--v-info-base);
}
Где цвета моего веб-сайта были определены в моем nuxt.config.js файл, подобный этому:
vuetify: {
customVariables: ['~/assets/variables.scss'],
theme: {
dark: true,
options: { customProperties: true },
themes: {
dark: {
primary: {
base: "#099b63",
darken1: "#04c279"
},
accent: "#250032",
secondary: "#97812F",
info: {
base: "#1FFFF1",
darken1: "#450b5a",
darken2: "#1125c0",
darken3: "#40bfa4"
},
warning: colors.amber.base,
error: colors.deepOrange.accent4,
success: colors.green.accent3,
anchor: "#1FFFF1"
}
},
}
},
Но это не работает для меня!!!
Ответ №1:
для этого вам нужно переписать переменные sass vuetify, пример использования в документе
так, например, в вашем variables.scss
вы можете иметь следующий код:
$material-dark: (
'background': #464994,
'text': (
'theme': #944646,
)
);
это приведет к переписыванию цветов по умолчанию для фона и цвета текста в темном режиме.
Комментарии:
1. Я добавил ваш код в свой
variables.scss
файл, он изменил весь цвет фона, но текст по-прежнему белый. Я имею в виду, что, например, когда у насv-text-field
в приложении есть a и для этого не задан никакой css, их цветовой текст по умолчанию должен быть, например, #944646, а цвет фона по умолчанию должен быть #464994, который вы установили, но этого не происходит. Я не хочу устанавливать много переменных для каждого «компонента Vuetify» . потому что это похоже на установку css для каждого компонента.2. насколько я знаю, правильный способ изменить стили по умолчанию во всем приложении vuetify-это использовать его API variabla. ( vuetifyjs.com/en/features/sass-variables/#variable-api ). перейдите по этой ссылке и в раскрывающемся списке выберите первый пункт (
$vuetify
), прокрутите вниз, чтобы найти$material-dark
, затем найдите нужный раздел и измените их в соответствии с вашими потребностями. например, у вас есть$material-dark: ('text-fields': ('filled': '#someColor'))
или$material-dark: ('inputs': ('box': '#someColor'))
или .$material-dark: ('text-color': '#someColor')
3. Я считаю, что другим подходом было бы проверить каждый элемент, чтобы найти стили css в инструментах разработки браузера, затем скопировать каждый селектор css и попытаться изменить его с
!important
помощью стилей css, что не является чистым решением и более утомительно. Я предлагаю вам продолжить эксперименты с указанными переменными, чтобы найти те, которые соответствуют вашим потребностям4. Спасибо за ваш ответ, он очень помог мне перекрасить некоторые компоненты моего приложения. Но я ожидал , что когда мы изменим цвет
body
, все компоненты поймут это автоматически, к сожалению, структура Vuetify отличается и не позволяет нам этого сделать.