ESLint plugin to automatically break up long tailwind class strings into multiple lines based on a specified print width or class count. This improves readability and eliminates horizontal scrolling.
It also sorts the classes logically, removes unnecessary whitespaces and groups the classes by their modifiers. It works in jsx, svelte, vue, and html files and is designed to work well with and without prettier.
This project is financed by the community.
If you or your company benefit from this project, please consider becoming a sponsor.
Your contribution will help me maintain and develop the project.
npm i -D eslint-plugin-readable-tailwind
- Check out the Parsers section below to see how to configure the plugin for your specific flavor.
- Read the Rules section to learn about the available rules and how to configure them.
- Read the Utilities section to see which tailwind utilities are supported out of the box and how to extend the default configuration.
- Configure your editor to conveniently auto-fix on save.
Depending on the flavor you are using, you need to install and configure the corresponding parser:
Name | Description | error |
warning |
autofix |
---|---|---|---|---|
multiline | Enforce consistent line wrapping for tailwind classes. | ✔ | ✔ | ✔ |
no-unnecessary-whitespace | Disallow unnecessary whitespace in tailwind classes. | ✔ | ✔ | ✔ |
sort-classes | Enforce a consistent order for tailwind classes. | ✔ | ✔ | ✔ |
This plugin works out of the box with most popular tailwind utilities:
- tailwind merge
- class variance authority
- tailwind variants
- shadcn
- classcat
- class list builder
- clsx
- cnbuilder
- classnames template literals
- obj str
In case an utility is not supported or you have built your own, you can change which literals will get linted for each rule. Read the API documentation to learn how to override or extend the default config.
These rules are intended to automatically fix the tailwind classes. If you have installed the VSCode ESLint plugin, you can configure it to automatically fix the classes on save by adding the following options to your .vscode/settings.json
:
{
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
}
}
No awesome people or organizations have sponsored this project yet.