~2 min read • Updated Oct 28, 2025
Installing and Using Sass in Next.js
To enable Sass support, install the following package:
npm install --save-dev sassNext.js supports two syntaxes:
- .scss: CSS-like syntax (recommended)
- .sass: Indented syntax
Using CSS Modules with Sass
For component-level styling, use .module.scss or .module.sass files.
Configuring sassOptions in next.config.js
sassOptions: {
additionalData: `$var: red;`,
implementation: 'sass-embedded',
}Using Sass Variables in JavaScript
Example:
// variables.module.scss
$primary-color: #64ff00;
:export {
primaryColor: $primary-color;
}// page.tsx
import variables from './variables.module.scss'
<h1 style={{ color: variables.primaryColor }}>Hello, Next.js!</h1>Loading Scripts with the Script Component
To load a script in a specific layout:
import Script from 'next/script'
<Script src="https://example.com/script.js" />To load a script globally:
// app/layout.tsx
<Script src="https://example.com/script.js" />Script Loading Strategies
- beforeInteractive: Before Next.js loads
- afterInteractive: After hydration (default)
- lazyOnload: During browser idle time
- worker: Load in Web Worker (experimental)
Using Partytown for Web Worker Offloading
Enable in next.config.js:
experimental: {
nextScriptWorkers: true,
}Then install:
npm install @builder.io/partytownAnd use:
<Script src="https://example.com/script.js" strategy="worker" />Inline Scripts
Example:
<Script id="show-banner">
{`document.getElementById('banner').classList.remove('hidden')`}
</Script>Using Event Handlers
In a client component:
'use client'
<Script
src="https://example.com/script.js"
onLoad={() => console.log('Script loaded')}
/>Passing Additional Attributes
Attributes like nonce or data-* are forwarded automatically:
<Script
src="https://example.com/script.js"
id="example-script"
nonce="XUENAJFW"
data-test="script"
/>Conclusion
With Sass and the Script component in Next.js, you can implement modern styling and optimized script loading. These tools give you full control over performance, security, and user experience.
Written & researched by Dr. Shahin Siami