Publishing and Reusing Plugins
Structure a Tailwind plugin as an npm package, configure its options with a function wrapper, and publish it for reuse across multiple projects.
Why Publish a Tailwind Plugin?
Once you have written a useful Tailwind plugin — like a scrollbar utility, a text-shadow family, or a set of ARIA variants — other projects in your organization or the wider community can benefit from it. Publishing the plugin as an npm package makes it installable with a single command and versionable with semantic versioning. Teams stop copying plugin code between projects and instead share a single maintained artifact.
Structuring the Plugin Package
A Tailwind plugin npm package has a minimal structure. Create a directory with a package.json, a main entry file (typically index.js or src/index.js), and a README.md with usage instructions. The main file exports the plugin, which consumers add to their tailwind.config.js plugins array. That is the entire interface — there is no build step required for a simple plugin.
# Directory structure
tailwind-plugin-text-shadow/
index.js # plugin entry
package.json # npm metadata
README.md # usage docs
# package.json
{
'name': 'tailwind-plugin-text-shadow',
'version': '1.0.0',
'description': 'Tailwind CSS text-shadow utilities',
'main': 'index.js',
'keywords': ['tailwindcss', 'tailwind-plugin', 'text-shadow'],
'peerDependencies': {
'tailwindcss': '>=3.0.0'
}
}All lessons in this course
- The Tailwind Plugin API
- Adding Custom Utilities via Plugin
- Adding Custom Variants via Plugin
- Publishing and Reusing Plugins