1. Create your project

    Start by creating a new AdonisJS project if you don’t have one set up already. Choose web for the project structure and y when asked to include Webpack Encore.

    Terminal
    npm init adonis-ts-app@latest my-projectcd my-project
  2. Install Tailwind CSS

    Using npm, install tailwindcss and its peer dependencies, as well as postcss-loader, and then run the init command to generate both tailwind.config.js and postcss.config.js.

    Terminal
    npm install -D tailwindcss postcss postcss-loader autoprefixernpx tailwindcss init -p
  3. Enable PostCSS support

    In your webpack.config.js file, enable the PostCSS loader. See the Webpack Encore documentation for more information.

    webpack.config.js
    /*
    |--------------------------------------------------------------------------
    | CSS loaders
    |--------------------------------------------------------------------------
    |
    | Uncomment one of the following line of code to enable support for
    | PostCSS or CSS.
    |
    */
    // Encore.enablePostCssLoader()
    Encore.enablePostCssLoader();
    // Encore.configureCssLoader(() => {})
    
  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} */
    module.exports = {
      content: [
        "./resources/**/*.{edge,js,ts,jsx,tsx,vue}",
      ],
      theme: {
        extend: {},
      },
      plugins: [],
    }
    
  5. Add the Tailwind directives to your CSS

    Add the @tailwind directives for each of Tailwind’s layers to your ./resources/css/app.css file.

    app.css
    @tailwind base;
    @tailwind components;
    @tailwind utilities;
  6. Start your build process

    Run your build process with npm run dev.

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

    Make sure your compiled CSS is included in the <head> then start using Tailwind’s utility classes to style your content.

    welcome.edge
    <!doctype html>
    <html>
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      @entryPointStyles('app')
    </head>
    <body>
      <h1 class="text-3xl font-bold underline">
        Hello world!
      </h1>
    </body>
    </html>