# Adding TailwindCSS Support
Using TailwindCSS is optional and needs to be configured, if desired. To style your extension popup or options page using Tailwind, you will need to install the required dependencies and configure the webpack build steps.
Below you find the required steps to integrate TailwindCSS to your web extension.
# 1. Installation
# 1. Automatic, via a Vue CLI plugin
You can use a Vue CLI plugin, for example vue-cli-plugin-tailwind or @64robots/vue-cli-plugin-tailwind npm packages.
# 2. Manual installation
Or you can do the installation steps manually.
Install dependency tailwindcss
:
# with npm:
npm install tailwindcss
# using yarn:
yarn add tailwindcss
Then initialize Tailwind by calling ./node_modules/.bin/tailwind init
, it will create a tailwind.config.js
file.
# 2. Configuring PostCSS
You must configure PostCSS by adding the Tailwind's plugin:
// postcss.config.js
module.exports = {
plugins: [
// ...
require('tailwindcss'),
require('autoprefixer'), // if you have installed `autoprefixer`
// ...
]
}
# 3. Controlling File Size
Your generated CSS files can be really big when using Tailwind.
To prevent that when building for production, you must use Tailwind's purge
option to tree-shake unused styles
and optimize your final build size.
// tailwind.config.js
module.exports = {
purge: {
// Specify the paths to all of the template files in your project
content: ['src/**/*.vue'],
// Whitelist selectors by using regular expression
whitelistPatterns: [
/-(leave|enter|appear)(|-(to|from|active))$/, // transitions
/data-v-.*/, // scoped css
],
}
// ...
}
# 4. Usage
To make the Tailwind classes available you need to add the following lines to your src/popup/App.vue
-file:
<style>
/* basic styles */
html {
width: 400px;
height: 400px;
}
/* purgecss start ignore */
@tailwind base;
@tailwind components;
/* purgecss end ignore */
@tailwind utilities;
</style>
In a similar way you can add it to the options page of course.
Now you should be able to use the commonly used Tailwind classes in your web-extension.