関連

@forwardルールは対象ファイルに書かれてる内容を現在のファイルAにすべて取り込みます。つまり現在のファイルAを@useして使う場合@forwardしてきたファイルの内容も使えることになります。
JavaScript エンジニアな人なら`export * from '...';のようなものだと考えると分かりやすいかもしれません。

使い方は単に@mixinなどをまとめて定義したファイルのパスに対して@forwardするだけです。

@forward "mixins/button";
@forward "mixins/link";

別名

mixins/_button.scssの中身がこんな感じだとします。

@mixin text {
  color: orange;
}

もし、textという名前の Mixin がmixins/linkでも定義されていて被るのを避けたい時、asと続けて別名を定義することで回避できます。

@forward "mixins/button" as button-*;
@forward "mixins/link" as link-*;

これでmixins/buttontextbutton-textmixins/linkではlink-textという名前で取り込まれます。

カスタマイズして取り込み

@useのように内部で定義した!defaultを付けた変数を取り込み時に上書きできます。

@forward "mixins/button" with ($color: orange);

また違いとしてこちらはwithの中でも!defaultが使えます。これにより上位モジュールから更に変更可能になります。

@forward "mixins/button" with ($color: orange !default);

一部だけ取り込み

showhideを続けると取り込む要素を絞り込めます。show指定した要素だけhide指定した要素以外という意味の違いがあります。

@forward "mixins/button" show $new-color, new-text;
@forward "mixins/button" hide $old-color, old-text;

JavaScript で飯食べたい歴約 8 年、 純( nju33 ) によるノートサイトです。

このサイトではドリンク代や奨学金返済の為、広告などを貼らせて頂いてますがご了承ください。

Change Log