SCSSで別ファイルを読み込む

SCSSで別ファイルを読み込む

SCSSでは、別ファイルを読み込むために @import ディレクティブや @use ディレクティブを使用します。
それぞれの使い方について説明します。

@import ディレクティブ

@import ディレクティブは、別のSCSSファイルを現在のファイルに読み込むために使用します。
ただし、@import は将来的に廃止される予定があるため、新しいプロジェクトでは @use の使用が推奨されています。

例えば、次のようにファイルを分割することができます:

styles.scss

@import 'variables';
@import 'mixins';
@import 'base';

この例では、styles.scss が variables.scss、mixins.scss、base.scss の3つのファイルを読み込んでいます。
これにより、styles.scss でこれらのファイルのスタイルやミックスイン、変数を利用することができます。

@use ディレクティブ

@use ディレクティブは、@import の代わりに使用されることが推奨されている方法です。
@use は、モジュール化と名前空間の管理をより厳密に行うことができ、複数のファイル間でのスタイルの競合を防ぐ助けになります。

例えば、次のようにファイルを分割することができます:

styles.scss

@use 'variables' as *;
@use 'mixins' as mixins;
@use 'base' as base;

variables.scss

$primary-color: #333;

mixins.scss

@mixin border-radius($radius) {
  border-radius: $radius;
}

base.scss

body {
  color: variables.$primary-color;
  @include mixins.border-radius(5px);
}

この例では、styles.scss で variables.scss、mixins.scss、base.scss をそれぞれ @use しています。
variables からは変数をそのまま使用し、mixins からは mixins という名前空間でミックスインを使用し、base からはスタイルを適用しています。

まとめ

  • @import は古い方法であり、将来的に廃止される予定です。
  • @use は新しい方法であり、より強力なモジュール管理が可能です。
  • @use は名前空間を使用して、スタイルの競合を防ぐことができます。

これらの方法を使って、SCSSファイルを効率的に管理し、保守性を向上させることができます。