Installation
Requirements and the install command for tailess in npm, pnpm, yarn or bun — Tailwind CSS v4, Node 18+, and one runtime dependency.
Requirements
The Node requirement covers the build plugin only, because that is the half which runs inside your bundler and reads your source. The runtime your components import has no Node dependency at all.
| Requirement | Detail |
|---|---|
| Tailwind CSS | v4 — v3 is not supported |
| Node | 18+ (build plugin only; the runtime has no Node dependency) |
| Bundler | anything using @tailwindcss/vite or @tailwindcss/postcss |
| Dependencies | one — tailwind-merge |
Tailwind CSS v4 is a hard requirement, and @tailwindcss/vite and @tailwindcss/postcss are the two surfaces the build plugin hooks into — one of them is what your Setup will use.
Install
npm install tailesspnpm add tailessyarn add tailessbun add tailessAny of the four installs the same thing — one package with one runtime dependency, tailwind-merge — the same package a cn() helper is built on in essentially every Tailwind codebase. If your project already pulls it in, your bundler keeps the single shared copy and adding tailess costs 2.7 kB, not 11.1 kB.
Performance & size has the full breakdown of that number.
What the package ships
The runtime and both build plugins live in the same package on separate subpaths. There is no second install, and no tailess.config to create.
import { ss } from "tailess"; // the runtime — what your components importimport tailess from "tailess/vite"; // the Vite build plugin // "tailess/postcss" // the PostCSS build pluginInstalling is half of it
ss() immediately, but a class with a variant prefix only receives CSS once one of the plugins is registered — Tailwind scans your source for literal class strings, and a prefix built at runtime is never one of them. Registering the plugin is the single line of config on Setup.