ミックスインとは、スタイルを定義しておき、それを任意の場所で呼び出して使用することができる機能です。似たような機能に@extendというものもあります。とりあえず、基本的なミックスインの使い方を紹介します。

ミックスインの使い方

ミックスインを使用するには、「@mixin ミックスイン名」の形式で定義をして、スタイルを記述していきます。

@mixin hoge {
  margin: 10px;
  font-size: 120%;
}

このように、スタイルの指定はCSSと何ら変わりはありません。しかし、このままでは機能はせず、呼び出す必要があります。定義したミックスインを呼び出すには以下のようにします。

//Sass
.example {
  @include hoge;
}

//CSSコンパイル
.example {
  margin: 10px;
  font-size: 120%;
}

このように、「@include ミックスイン名;」の形式で定義したミックスインを呼び出すことができます。ミックスインを使用する場合は、「@mixin」で定義して、「@include」で呼び出すというセット使いになるということです。

@extendとの違いは、複数箇所で使用した場合、@extendはグループ化されてCSSに展開されますが、@mixinはそれぞれ個別にCSSに展開されます。

引数を使用する

ミックスインでは、引数を指定してスタイルの値を変えて使うこともできます。
以下のような引数を定義したとします。

@mixin box($value) {
  padding: $value;
}

この引数を使用するには、以下のようにします。

//Sass
.hoge1 {
  margin-bottom: 10px;
  @include box(10px);
}
.hoge2 {
  margin-bottom: 20px;
  @include box(5px 10px);
}

//CSSコンパイル
.hoge1 {
  margin-bottom: 10px;
  padding: 10px;
}
.hoge2 {
  margin-bottom: 20px;
  padding: 5px 10px;
}

このように同じミックスインを呼び出していますが、それぞれ引数の値を変えて呼び出すことができます。

その他の記事