本文へ移動

Sassスタイルシートの追加

注:この機能は、react-scripts@2.0.0以降で使用できます。

一般的に、異なるコンポーネント間で同じCSSクラスを再利用しないことをお勧めします。たとえば、<AcceptButton>および<RejectButton>コンポーネントで.Button CSSクラスを使用する代わりに、独自の.Buttonスタイルを持つ<Button>コンポーネントを作成し、<AcceptButton><RejectButton>の両方がレンダリングできることをお勧めします(ただし、継承はしません)。

このルールに従うと、多くの場合、mixinやネストなどの機能がコンポーネントの構成に置き換えられるため、CSSプリプロセッサの有用性が低下します。ただし、必要であればCSSプリプロセッサを統合できます。

Sassを使用するには、まずsassをインストールします。

$ npm install sass
# or
$ yarn add sass

これで、src/App.csssrc/App.scssに名前変更し、src/App.jsを更新してsrc/App.scssをインポートできます。このファイルとその他のファイルは、拡張子が.scssまたは.sassでインポートされている場合、自動的にコンパイルされます。

Sassファイル間で変数を共有するには、Sassの@useルールを使用できます。たとえば、src/App.scssおよびその他のコンポーネントスタイルファイルには、変数定義を含む@use "./shared.scss";を含めることができます。

これにより、次のようなインポートが可能になります。

@use 'styles/_colors.scss'; // assuming a styles directory under src/
@use '~nprogress/nprogress'; // loading a css file from the nprogress node module

注:上記のように、パスに~をプレフィックスとして付けることで、node_modulesからモジュールを解決できます。

sassSASS_PATH変数もサポートしています。

指定したパスを基準としたインポートを使用するには、.envファイルをプロジェクトルートに追加し、SASS_PATH環境変数に指定されたパスを指定します。複数のディレクトリを指定するには、path1:path2:path3のようにコロンで区切ってSASS_PATHに追加します。

注:Windowsオペレーティングシステムでは、パスをセミコロンで区切ります。

SASS_PATH=path1;path2;path3

ヒント:CSSモジュールでもこの機能を使用できます!

注:Flowを使用している場合は、.flowconfigmodule.file_ext設定をオーバーライドして、.sassまたは.scssファイルを認識するようにします。また、.js.jsx.mjs.jsonファイルのmodule.file_extのデフォルト設定を含める必要があります。

[options]
module.file_ext=.js
module.file_ext=.jsx
module.file_ext=.mjs
module.file_ext=.json
module.file_ext=.sass
module.file_ext=.scss

注:LibSassとその上に構築されたパッケージ(Node Sassを含む)は非推奨です。Node Sassのユーザーは、package.jsonファイルでnode-sasssassに置き換えるか、次のコマンドを実行することで、Dart Sassに移行できます。

$ npm uninstall node-sass
$ npm install sass
# or
$ yarn remove node-sass
$ yarn add sass