Skip to main content

Troubleshooting

Prefixed classes with no styles, one class missing, a warning while styles work, classes outside the scanned root — and how to verify a fix.

My prefixed classes have no styles

The plugin is not running. In dev you get a console message naming the exact fix. Check that tailess/vite is in vite.config.ts, or that tailess/postcss is listed before @tailwindcss/postcss in postcss.config.*.

postcss.config.mjs
const config = {  plugins: {    "tailess/postcss": {},    "@tailwindcss/postcss": {},  },}; export default config;

Listing it after means Tailwind has already compiled, and the plugin says so in the build output. The full config for each build tool is on the Setup page.

On Vite, use tailess/vite

With @tailwindcss/vite, tailess/postcss cannot work — @tailwindcss/vite compiles CSS in a pretransform that runs before Vite's PostCSS stage, so a PostCSS plugin never reaches it.

One specific class has no styles

It is almost certainly not a literal at the call site. A variable, an interpolated template, a spread or a computed key is not in the source for the scanner to read, and a renamed import hides the helper entirely, because the scanner finds helpers by name.

What the scanner can and cannot see lists every case and the workaround for each — usually writing the full class in a match() lookup, which needs no build integration at all.

I get the warning but my styles work

Something else supplies the CSS — your own safelist, say. Declare the marker to silence the check:

Any CSS you already load
:root { --tailess: 1; }

My classes live outside the scanned root

A monorepo package or a shared UI folder — point content at it.

Scanning a second package
tailess({  content: ["src", "../ui/src"],});

On Vite a relative path resolves against Vite's root; on PostCSS there is no root, so paths resolve against the working directory. See plugin options for the rest.

How do I check for myself?

Build, then search the output CSS with a fixed-string match, because Tailwind escapes the : in selectors — md:text-2xl is written .md\:text-2xl.

Verify a class was emitted
grep -rF 'md\:text-2xl' dist

A class starting with a digit

Those are escaped further: 2xl:flex becomes .\32 xl\:flex — note the space.