• ⚠️ INFORMATION: SAFETY & SUPPORT Resources here are generally safe, but false positives may occur on Virustotal due to certain coding techniques. Exercise caution and test before use.

javascript How to import SASS file as inlined CSS (not JS) in SvelteKit/Vite

Joined
Dec 31, 2024
Messages
373
Reaction score
7
Points
18
User icon
<svg xmlns="http://www.w3.org/2000/svg" height="14" width="15.75" viewBox="0 0 576 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#63E6BE" d="M309 106c11.4-7 19-19.7 19-34c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 14.4 7.6 27 19 34L209.7 220.6c-9.1 18.2-32.7 23.4-48.6 10.7L72 160c5-6.7 8-15 8-24c0-22.1-17.9-40-40-40S0 113.9 0 136s17.9 40 40 40c.2 0 .5 0 .7 0L86.4 427.4c5.5 30.4 32 52.6 63 52.6l277.2 0c30.9 0 57.4-22.1 63-52.6L535.3 176c.2 0 .5 0 .7 0c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40c0 9 3 17.3 8 24l-89.1 71.3c-15.9 12.7-39.5 7.5-48.6-10.7L309 106z"/></svg>
To import a SASS file as inlined CSS (not JavaScript) in a SvelteKit project using Vite, you can configure the project to directly process the SASS file and include it in the final CSS output without embedding it in JavaScript. Here’s how you can achieve this:


---

Steps:

1. Install Required Dependencies

First, ensure you have the required packages installed:

JavaScript:
npm install sass vite-plugin-sass-dts -D

---

2. Set Up SASS Files

Create your SASS file, for example, src/styles/global.scss:
JavaScript:
// global.scss

body {

  font-family: 'Arial', sans-serif;

  background-color: #f0f0f0;

}



h1 {

  color: #333;

}





---

3. Update vite.config.js

Modify your vite.config.js (or vite.config.ts) to ensure SASS files are processed and included as part of the final CSS build output:

JavaScript:
import { defineConfig } from 'vite';

import svelte from '@sveltejs/vite-plugin-svelte';



export default defineConfig({

  plugins: [svelte()],

  css: {

    preprocessorOptions: {

      scss: {

        additionalData: `@import "src/styles/global.scss";`

      }

    },

  },

});





---

4. Reference the SASS File

Add your SASS file in your Svelte project:

In your src/routes/+layout.svelte or src/app.html:

JavaScript:
<script>

  import '/src/styles/global.scss'; // Vite will inline this CSS directly

</script>





---

Alternative (For Global Styles):

If you want the SASS file directly included in the <head> without importing it into JavaScript, create a src/app.html file and include it manually:

src/app.html:

JavaScript:
<!DOCTYPE html>

<html lang="en">

  <head>

    <meta charset="utf-8" />

    <link rel="stylesheet" href="/src/styles/global.css">

  </head>

  <body>

    <div id="svelte"></div>

  </body>

</html>

Vite will handle converting the SASS file into global.css during the build process.


---

5. Build Your Project

Run your development server or build your SvelteKit project:

JavaScript:
npm run dev

# or

npm run build


---

How It Works:

The css.preprocessorOptions in the Vite config ensures SASS files are correctly processed.

Including the global.scss file directly in the <head> or importing it ensures the styles are treated as inlined CSS, not part of the JavaScript bundle.
 
Top