Некоторые переменные должны быть установлены ДО импорта _variables.styl
, потому что они используются для установки других переменных в этом файле.Это работает, потому что Vuetify использует условное присвоение (:=
) в файлах стилуса.
Самый безопасный способ - установить все переменные верхнего уровня перед импортом любых других файлов.
// set these variables before Vuetify does
$body-font-family = Arial
$alert-font-size = 18px
Затем импортируйте _variables.styl
, чтобы можно было переопределить вложенные значения:
@import '~vuetify/src/stylus/settings/_variables'
// now that the $material-dark hash exists, set the background
$material-dark.background = 'green'
Затем импортируйте main.styl
, чтобы создать классы Vuetify CSS:
// import main to set all styles
@import '~vuetify/src/stylus/main'
// override the CSS classes using stylus variables
.display-2
font-size: $headings.h6.size !important
font-family: $headings.h3.font-family !important
Vuetifyиспользует операторы условного присваивания в файлах стилуса.Поэтому, если вы установите переменную до @import
, она сохранится после @import
.Это важно, потому что _variables.styl
ссылается на эти переменные внутри.
В данном случае, в частности, $heading-font-family := $body-font-family
.Затем хэш $headings
устанавливается с использованием значения $heading-font-family
.Это означает, что к тому времени, когда вы устанавливали $body-font-family
, $heading-font-family
уже было установлено в значение по умолчанию.
Переопределение стилей .display-2
не работало, потому что оно еще не существовало.Поэтому, когда вы импортировали main.styl
, он возвращался к значениям по умолчанию.
Вы можете немного почистить его, разбив его на несколько файлов:
src / assets / stylus / variables.styl
// set all top-level variables
$body-font-family = Arial
$alert-font-size = 18px
src / assets / stylus / theme.styl
// set all nested variables
$material-dark.background = 'green'
src /assets / stylus / app.styl
// override CSS styles
.display-2
font-size: $headings.h6.size !important
font-family: $headings.h3.font-family !important
src / assets / stylus / main.styl
// pull it all together
@import 'variables'
@import '~vuetify/src/stylus/settings/_variables'
@import 'theme'
@import '~vuetify/src/stylus/main'
@import 'app`