コンテンツにスキップ

Next.js で Sass を使用する方法

Next.js は、パッケージをインストールした後、.scss および .sass 拡張子の両方を使用して Sass と統合するための組み込みサポートを提供しています。CSS Modules および .module.scss または .module.sass 拡張子を使用して、コンポーネントレベルの Sass を使用できます。

まず、sass をインストールします。

ターミナル
npm install --save-dev sass

知っておくと良いこと:

Sass は2 つの異なる構文 をサポートしており、それぞれに独自の拡張子があります。.scss 拡張子はSCSS 構文 を使用する必要があり、.sass 拡張子はインデント構文("Sass") を使用する必要があります。

どちらを選択するか迷った場合は、CSS のスーパーセットであり、インデント構文("Sass")を学ぶ必要のない .scss 拡張子から始めることをお勧めします。

Sass オプションのカスタマイズ

Sass オプションを設定するには、next.configsassOptions を使用します。

next.config.ts
import type { NextConfig } from 'next'
 
const nextConfig: NextConfig = {
  sassOptions: {
    additionalData: `$var: red;`,
  },
}
 
export default nextConfig

実装

implementation プロパティを使用して、使用する Sass 実装を指定できます。デフォルトでは、Next.js はsass パッケージを使用します。

next.config.ts
import type { NextConfig } from 'next'
 
const nextConfig: NextConfig = {
  sassOptions: {
    implementation: 'sass-embedded',
  },
}
 
export default nextConfig

Sass 変数

Next.js は、CSS モジュールファイルからエクスポートされた Sass 変数をサポートしています。

たとえば、エクスポートされた primaryColor Sass 変数を使用する場合

app/variables.module.scss
$primary-color: #64ff00;
 
:export {
  primaryColor: $primary-color;
}
pages/_app.js
import variables from '../styles/variables.module.scss'
 
export default function MyApp({ Component, pageProps }) {
  return (
    <Layout color={variables.primaryColor}>
      <Component {...pageProps} />
    </Layout>
  )
}