使用環境
Name | Version |
---|---|
Dart Sass | 1.70.0 |
UIkit | 3.17.11 |
前書き
前回の続きで、今回はSass Variables
です。
現状は、uikit/src/scss/variables.scss
に、各コンポーネントのSass Variables
を集約しています。
uikit/src/scss/components/variables.scss
の一部も、uikit/src/scss/variables.scss
に集約しています。
@import
から@use
や@forward
に置き換えた場合、どうすればいいのか考えました。
準備
scss
ディレクトリ配下に、下記のディレクトリとファイルを作ります。
種類 | 説明 | |
---|---|---|
File | main.scss | |
Directory | uikit |
オリジナル用 |
File | uikit/variables.scss | |
Directory | uikit/components |
|
File | uikit/components/_index.scss | |
File | uikit/components/alert.scss | |
Directory | theme |
カスタムテーマ用 |
File | theme/variables..scss |
uikit/variables.scss
uikit/src/scss/variables.scss
をコピーしてください。
本題
カスタムテーマ用のvariables.scss
で、オリジナルのvariables.scss
をforward
して、with
で変数を再定義します。
theme/variables.scss
@forward '../uikit/variables.scss' with ( $global-color: #999 // オリジナルは、#666 );
uikit/components/alert.scss
@use '../../theme/variables.scss' as *; .uk-accordion-title:hover { color: $accordion-title-hover-color; }
結果
生成されたCSSは、下記の通り。
.uk-accordion-title:hover { color: #999; }
後書き
Sass variables
は、従来どおり再定義する場合を想定して、with
を使う方法で、試しました。
それ以外に、試していないけど、 CSS custom properties
(CSS 変数) を使う方法もあるのかな?と思います。
CSS custom properties
グローバルな変数をCSS custom properties
にすると、Sass
のdarken
やcolor.scale
が使われていると、エラーになります。
round
やmix
のように置き換えたとしても、容易ではなく、たぶん置き換えられない場合もあるかも?