コンテンツへスキップ

Sass

Next.jsは、パッケージがインストールされた後、.scss.sassの両方の拡張子を使用してSassとの統合を組み込みでサポートしています。CSSモジュールと.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;
}
app/page.js
// maps to root `/` URL
 
import variables from './variables.module.scss'
 
export default function Page() {
  return <h1 style={{ color: variables.primaryColor }}>Hello, Next.js!</h1>
}