パーシャルファイルで作成した変数とmapを使ったメディアクエリをstyle.scssに読み込みたいです。
公式推奨であるDartSassではLibSass などで使用されている@importが近い将来(2021年10月頃)使用できなくなるようです。
そのため、個人でsaasファイルを見直してみたのですが、うまく動作できなかったため、相談させていただきました。
使用環境
win10
VSCode(エディター)Ver.1.560
DartJS Sass Compiler and Sass Watcher(コンパイル用拡張機能)v0.7.4
ファイル構成
root
├index.html
├css
|└style.css(コンパイル後のCSS)
└scss
├style.scss
├_mixin.scss(mixin指定ファイル)
└_variables.scss (変数指定ファイル)
参照元
https://www.webcreatorbox.com/tech/dart-sass
https://blog.rhyztech.net/sass_use_and_forward/
試したこと
_variables.scssでメディアクエリのブレイクポイント用の変数を作成
_mixin.scssで_variables.scssを読み込み、mapと@mixinでブレイクポイントを設定
style.scssで読み込み
style.scss > _mixin.scss >_variables.scss
scss
1// _variables.scss 2 3// メディアクエリのブレイクポイント用変数 4$breakpoints: ( 5 'sm': 'screen and (max-width: 414px)', 6 'md': 'screen and (max-width: 768px)', 7 'lg': 'screen and (max-width: 1000px)', 8 'xl': 'screen and (max-width: 1200px)', 9 ) !default;
scss
1//_mixin.scss 2 3@forward 'variables'as v; 4@use "sass:map"; 5@mixin mq(v.$breakpoint: md) { 6 @media #{map.get($breakpoints, $breakpoint)} { 7 @content; 8 } 9 }
scss
1//style.scss 2 3 4@use 'variables'as v; //_variables.scssを読み込みas節でvに定義 5@use 'mixin' as m; //_variables.scssを読み込みas節でvに定義 6@include m.mq(sm) { 7 body { 8 background: v.$gray-color; 9 } 10}
表示されるエラー
Error: _mixin.scss: 2:25 Error: expected "*". ╷ 2 │ @forward 'variables'as v; │ ^ ╵ c:\Users\〇〇\test\scss_mixin.scss 2:25 @use c:\Users\onooo\Desktop\test\scss\style.scss 3:1 root stylesheet
あなたの回答
tips
プレビュー