@naparajith/tailwind-helpers
v0.2.3
Published
A small and efficient collection of helper functions and classes that make it easier to work with TailwindCSS, without having to install multiple external dependencies.
Downloads
4
Readme
Tailwind Helpers
A small and efficient collection of helper functions and classes that make it easier to work with TailwindCSS, without having to install multiple external dependencies.
It consists of 3 core utilities:
concat
: Seamlessly construct className strings conditionallymerge
: Efficiently merge Tailwind CSS classes in JS without style conflictsvariants
: Generate type-safe component variants using Tailwind CSS
Getting Started
Installation
npm
npm i @naparajith/tailwind-helpers
pnpm
pnpm i @naparajith/tailwind-helpers
yarn
yarn add @naparajith/tailwind-helpers
bun
bun add @naparajith/tailwind-helpers
Editor Config
To enable the Tailwind CSS LSP for autocompletions, a few additional steps have to be taken. The following setup is for NeoVim users. Feel free to raise an Issue or a PR for an equivalent VSCode configuration.
- Run the following command to install the Tailwind CSS LSP
npm install -g @tailwindcss/language-server
- Add the following configuration to your NeoVim LSP Config
require("lspconfig").tailwindcss.setup({
settings = {
tailwindCSS = {
experimental = {
classRegex = {
{ "variants\\(([^)]*)\\)", "[\"'`]([^\"'`]*).*?[\"'`]" },
{ "concat\\(([^)]*)\\)", "(?:'|\"|`)([^']*)(?:'|\"|`)" }
}
}
}
}
})
Handling Style Conflicts
The main disadvantage with Tailwind CSS is that the core principle of CSS,
cascading styles is not available. This gives rise to style conflicts. To help
alleviate this burden, @naparajith/tailwind-helpers
exports a helper function
cn
, which effortlessly helps you handle style conflicts that might arise.
Alongside the cn
helper function, @naparajith/tailwind-helpers
also exports
the primitives that compose this function, namely the concat
and merge
functions. You can use these primitives as you see fit, even while not working
with Tailwind CSS.
Future Roadmap
- Generate comprehensive documentation for users to access
- Remove all dependencies (currently
tailwind-merge
is the only dependency) - Write unit tests to increase code reliability
- Enable the ability to develop plugins to extend functionality
- Reduce bundle size (current gzipped + minified bundle is at ~7.6KB)
- Document code with JSDoc for hover documentation in editors