Installation
Setting up Tailwind CSS in an Ember.js project.
Start by creating a new Ember.js project if you don't have one set up already. The most common approach is to use Ember CLI.
npx ember-cli new my-project --embroider --no-welcomecd my-project
Using npm, install @tailwindcss/postcss
and its peer dependencies, as well as postcss-loader
.
npm install tailwindcss @tailwindcss/postcss postcss postcss-loader
In your ember-cli-build.js
file, configure PostCSS to process your CSS files.
'use strict';const EmberApp = require('ember-cli/lib/broccoli/ember-app');module.exports = function (defaults) { const app = new EmberApp(defaults, { // Add options here }); const { Webpack } = require('@embroider/webpack'); return require('@embroider/compat').compatBuild(app, Webpack, { skipBabel: [ { package: 'qunit', }, ], packagerOptions: { webpackConfig: { module: { rules: [ { test: /\.css$/i, use: ['postcss-loader'], }, ], }, }, }, });};
Create a postcss.config.mjs
file in the root of your project and add the @tailwindcss/postcss
plugin to your PostCSS configuration.
export default { plugins: { "@tailwindcss/postcss": {}, },}
Create an ./app/app.css
file and add an @import
for Tailwind CSS.
@import "tailwindcss";
Import the newly-created ./app/app.css
file in your ./app/app.js
file.
import Application from '@ember/application';import Resolver from 'ember-resolver';import loadInitializers from 'ember-load-initializers';import config from 'my-project/config/environment';import 'my-project/app.css';export default class App extends Application { modulePrefix = config.modulePrefix; podModulePrefix = config.podModulePrefix; Resolver = Resolver;}loadInitializers(App, config.modulePrefix);
Run your build process with npm run start
.
npm run start
Start using Tailwind's utility classes to style your content.
{{page-title "MyProject"}}<h1 class="text-3xl font-bold underline"> Hello world!</h1>{{outlet}}