Sass
Next.js has built-in support for integrating with Sass after the package is installed using both the .scss
and .sass
extensions. You can use component-level Sass via CSS Modules and the .module.scss
or .module.sass
extension.
First, install sass
↗:
Terminal
npm install --save-dev sass
Good to know: Sass supports two different syntaxes ↗, each with their own extension. The
.scss
extension requires you use the SCSS syntax ↗, while the.sass
extension requires you use the Indented Syntax (“Sass”) ↗. If you’re not sure which to choose, start with the.scss
extension which is a superset of CSS, and doesn’t require you learn the Indented Syntax (“Sass”).
Customizing Sass Options
If you want to configure the Sass compiler, use sassOptions
in next.config.js
.
next.config.js
const path = require('path')
module.exports = {
sassOptions: {
includePaths: [path.join(__dirname, 'styles')],
},
}
Sass Variables
Next.js supports Sass variables exported from CSS Module files.
For example, using the exported primaryColor
Sass variable:
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>
}