1. Getting Started
  2. Install Tailwind CSS with SvelteKit
  1. Create your project

    Start by creating a new SvelteKit project if you don't have one set up already. The most common approach is outlined in the Getting Started with SvelteKit introduction.

    Terminal
    npx sv create my-projectcd my-project
  2. Install Tailwind CSS

    Install tailwindcss and its peer dependencies, then generate your tailwind.config.js and postcss.config.js files.

    Terminal
    npm install -D tailwindcss postcss autoprefixernpx tailwindcss init -p
  3. Enable use of PostCSS in <style> blocks

    In your svelte.config.js file, import vitePreprocess to enable processing <style> blocks as PostCSS.

    svelte.config.js
    import adapter from '@sveltejs/adapter-auto';
    import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
    /** @type {import('@sveltejs/kit').Config} */
    const config = {
      kit: {
        adapter: adapter()
      },
      preprocess: vitePreprocess()
    };
    export default config;
    
  4. Configure your template paths

    Add the paths to all of your template files in your tailwind.config.js file.

    tailwind.config.js
    /** @type {import('tailwindcss').Config} */
    export default {
      content: ['./src/**/*.{html,js,svelte,ts}'],
      theme: {
        extend: {}
      },
      plugins: []
    };
    
  5. Add the Tailwind directives to your CSS

    Create a ./src/app.css file and add the @tailwind directives for each of Tailwind’s layers.

    app.css
    @tailwind base;
    @tailwind components;
    @tailwind utilities;
  6. Import the CSS file

    Create a ./src/routes/+layout.svelte file and import the newly-created app.css file.

    +layout.svelte
    <script>
      import "../app.css";
    </script>
    
    <slot />
  7. Start your build process

    Run your build process with npm run dev.

    Terminal
    npm run dev
  8. Start using Tailwind in your project

    Start using Tailwind’s utility classes to style your content, making sure to set lang="postcss" for any <style> blocks that need to be processed by Tailwind.

    +page.svelte
    <h1 class="text-3xl font-bold underline">
      Hello world!
    </h1>
    
    <style lang="postcss">
      :global(html) {
        background-color: theme(colors.gray.100);
      }
    </style>