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.scssor .module.sass extension.
First, install sass ↗:
Terminal
npm install --save-dev sassGood to know: Sass supports two different syntax ↗, each with their own extension. The
.scssextension requires you use the SCSS syntax ↗, while the.sassextension requires you use the Indented Syntax (“Sass”) ↗. If you’re not sure which to choose, start with the.scssextension 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;
}pages/_app.js
import variables from '../styles/variables.module.scss'
export default function MyApp({ Component, pageProps }) {
return (
<Layout color={variables.primaryColor}>
<Component {...pageProps} />
</Layout>
)
}