Back to Remotion

TailwindCSS

packages/docs/docs/tailwind.mdx

4.0.4605.2 KB
Original Source

import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import {TailwindSupport} from '../components/TailwindSupport';

Using the CLI

The easiest way to get started with Tailwind is by scaffolding a new video using the CLI and selecting a template that supports adding Tailwind automatically.

<Tabs defaultValue="npm" values={[ { label: 'npm', value: 'npm', }, { label: 'bun', value: 'bun', }, { label: 'pnpm', value: 'pnpm', }, { label: 'yarn', value: 'yarn', }, ] }> <TabItem value="npm">

bash
npx create-video@latest
</TabItem> <TabItem value="pnpm">
bash
pnpm create video
</TabItem> <TabItem value="bun">
bash
bun create video
</TabItem> <TabItem value="yarn">
bash
yarn create video
</TabItem> </Tabs>

The following templates support scaffolding with TailwindCSS: <TailwindSupport />

Installing Tailwind v4 in existing project

from v4.0.256

  1. Install @remotion/tailwind-v4 package and TailwindCSS dependencies.

<Tabs defaultValue="npm" values={[ { label: 'npm', value: 'npm', }, { label: 'yarn', value: 'yarn', }, { label: 'pnpm', value: 'pnpm', }, { label: 'bun', value: 'bun', }, ] }> <TabItem value="npm">

bash
npm i -D @remotion/tailwind-v4 tailwindcss
</TabItem> <TabItem value="yarn">
bash
yarn add -D @remotion/tailwind-v4 tailwindcss
</TabItem> <TabItem value="pnpm">
bash
pnpm i -D @remotion/tailwind-v4 tailwindcss
</TabItem> <TabItem value="bun">
bash
bun i -D @remotion/tailwind-v4 tailwindcss
</TabItem> </Tabs>
  1. Add the Webpack override from @remotion/tailwind-v4 to your config file:
ts
import {Config} from '@remotion/cli/config';
import {enableTailwind} from '@remotion/tailwind-v4';

Config.overrideWebpackConfig((currentConfiguration) => {
  return enableTailwind(currentConfiguration);
});
  1. If you use the bundle() or deploySite() Node.JS API, add the Webpack override to it as well.

  2. Create a file src/index.css with the following content:

css
@import 'tailwindcss';
  1. Import the stylesheet in your src/Root.tsx file. Add to the top of the file:
js
import './index.css';
  1. Ensure your package.json does not have "sideEffects": false set. If it has, declare that CSS files have a side effect:
diff
{
// Only if `"sideEffects": false` exists in your package.json.
-  "sideEffects": false
+  "sideEffects": ["*.css"]
}
  1. Start using TailwindCSS! You can verify that it's working by adding className="bg-red-900" to any element.

Installing Tailwind v3 in existing project

from v3.3.95, see instructions for older versions

  1. Install @remotion/tailwind package and TailwindCSS dependencies.

<Tabs defaultValue="npm" values={[ { label: 'npm', value: 'npm', }, { label: 'yarn', value: 'yarn', }, { label: 'pnpm', value: 'pnpm', }, { label: 'bun', value: 'bun', }, ] }> <TabItem value="npm">

bash
npm i -D @remotion/tailwind
</TabItem> <TabItem value="yarn">
bash
yarn add -D @remotion/tailwind
</TabItem> <TabItem value="pnpm">
bash
pnpm i -D @remotion/tailwind
</TabItem> <TabItem value="bun">
bash
bun i -D @remotion/tailwind
</TabItem> </Tabs>
  1. Add the Webpack override from @remotion/tailwind to your config file:
ts
import {Config} from '@remotion/cli/config';
import {enableTailwind} from '@remotion/tailwind';

Config.overrideWebpackConfig((currentConfiguration) => {
  return enableTailwind(currentConfiguration);
});

:::note Prior to v3.3.39, the option was called Config.Bundling.overrideWebpackConfig(). :::

  1. If you use the bundle() or deploySite() Node.JS API, add the Webpack override to it as well.

  2. Create a file src/style.css with the following content:

css
@tailwind base;
@tailwind components;
@tailwind utilities;
  1. Import the stylesheet in your src/Root.tsx file. Add to the top of the file:
js
import './style.css';
  1. Add a tailwind.config.js file to the root of your project:
js
/* eslint-env node */
module.exports = {
  content: ['./src/**/*.{ts,tsx}'],
  theme: {
    extend: {},
  },
  plugins: [],
};
  1. Ensure your package.json does not have "sideEffects": false set. If it has, declare that CSS files have a side effect:
diff
{
// Only if `"sideEffects": false` exists in your package.json.
-  "sideEffects": false
+  "sideEffects": ["*.css"]
}
  1. Start using TailwindCSS! You can verify that it's working by adding className="bg-red-900" to any element.

:::note Your package manager might show a peer dependency warning. You can safely ignore it or add strict-peer-dependencies=false to your .npmrc to suppress it. :::

See also